{"title":"Matlab 中任意空间维度的高效 P1-FEM","authors":"Stefanie Beuter, Stefan A. Funken","doi":"10.1515/cmam-2022-0239","DOIUrl":null,"url":null,"abstract":"This paper deals with the efficient implementation of the finite element method with continuous piecewise linear functions (P1-FEM) in <jats:inline-formula> <jats:alternatives> <m:math xmlns:m=\"http://www.w3.org/1998/Math/MathML\"> <m:msup> <m:mi mathvariant=\"double-struck\">R</m:mi> <m:mi>d</m:mi> </m:msup> </m:math> <jats:inline-graphic xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"graphic/j_cmam-2022-0239_ineq_0001.png\" /> <jats:tex-math>\\mathbb{R}^{d}</jats:tex-math> </jats:alternatives> </jats:inline-formula> (<jats:inline-formula> <jats:alternatives> <m:math xmlns:m=\"http://www.w3.org/1998/Math/MathML\"> <m:mrow> <m:mi>d</m:mi> <m:mo>∈</m:mo> <m:mi mathvariant=\"double-struck\">N</m:mi> </m:mrow> </m:math> <jats:inline-graphic xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"graphic/j_cmam-2022-0239_ineq_0002.png\" /> <jats:tex-math>d\\in\\mathbb{N}</jats:tex-math> </jats:alternatives> </jats:inline-formula>). Although at present there does not seem to be a very high practical demand for finite element methods that use higher-dimensional simplicial partitions, there are some advantages in studying the efficient implementation of the method independent of the dimension. For instance, it provides additional insights into necessary data structures and the complexity of implementations. Throughout, the focus is on an efficient realization using <jats:sc>Matlab</jats:sc> built-in functions and vectorization. The fast and vectorized <jats:sc>Matlab</jats:sc> function can be easily implemented in many other vector languages and is provided in Julia, too. The complete implementation of the adaptive FEM is given, including assembling stiffness matrix, building load vector, error estimation, and adaptive mesh-refinement. Numerical experiments underline the efficiency of our freely available code which is observed to be of a slightly more than linear complexity with respect to the number of elements when memory limits are not exceeded.","PeriodicalId":48751,"journal":{"name":"Computational Methods in Applied Mathematics","volume":"7 1","pages":""},"PeriodicalIF":1.0000,"publicationDate":"2024-01-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Efficient P1-FEM for Any Space Dimension in Matlab\",\"authors\":\"Stefanie Beuter, Stefan A. Funken\",\"doi\":\"10.1515/cmam-2022-0239\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"This paper deals with the efficient implementation of the finite element method with continuous piecewise linear functions (P1-FEM) in <jats:inline-formula> <jats:alternatives> <m:math xmlns:m=\\\"http://www.w3.org/1998/Math/MathML\\\"> <m:msup> <m:mi mathvariant=\\\"double-struck\\\">R</m:mi> <m:mi>d</m:mi> </m:msup> </m:math> <jats:inline-graphic xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xlink:href=\\\"graphic/j_cmam-2022-0239_ineq_0001.png\\\" /> <jats:tex-math>\\\\mathbb{R}^{d}</jats:tex-math> </jats:alternatives> </jats:inline-formula> (<jats:inline-formula> <jats:alternatives> <m:math xmlns:m=\\\"http://www.w3.org/1998/Math/MathML\\\"> <m:mrow> <m:mi>d</m:mi> <m:mo>∈</m:mo> <m:mi mathvariant=\\\"double-struck\\\">N</m:mi> </m:mrow> </m:math> <jats:inline-graphic xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xlink:href=\\\"graphic/j_cmam-2022-0239_ineq_0002.png\\\" /> <jats:tex-math>d\\\\in\\\\mathbb{N}</jats:tex-math> </jats:alternatives> </jats:inline-formula>). Although at present there does not seem to be a very high practical demand for finite element methods that use higher-dimensional simplicial partitions, there are some advantages in studying the efficient implementation of the method independent of the dimension. For instance, it provides additional insights into necessary data structures and the complexity of implementations. Throughout, the focus is on an efficient realization using <jats:sc>Matlab</jats:sc> built-in functions and vectorization. The fast and vectorized <jats:sc>Matlab</jats:sc> function can be easily implemented in many other vector languages and is provided in Julia, too. The complete implementation of the adaptive FEM is given, including assembling stiffness matrix, building load vector, error estimation, and adaptive mesh-refinement. Numerical experiments underline the efficiency of our freely available code which is observed to be of a slightly more than linear complexity with respect to the number of elements when memory limits are not exceeded.\",\"PeriodicalId\":48751,\"journal\":{\"name\":\"Computational Methods in Applied Mathematics\",\"volume\":\"7 1\",\"pages\":\"\"},\"PeriodicalIF\":1.0000,\"publicationDate\":\"2024-01-24\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Computational Methods in Applied Mathematics\",\"FirstCategoryId\":\"100\",\"ListUrlMain\":\"https://doi.org/10.1515/cmam-2022-0239\",\"RegionNum\":4,\"RegionCategory\":\"数学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"MATHEMATICS, APPLIED\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computational Methods in Applied Mathematics","FirstCategoryId":"100","ListUrlMain":"https://doi.org/10.1515/cmam-2022-0239","RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"MATHEMATICS, APPLIED","Score":null,"Total":0}
引用次数: 0
摘要
本文论述了在 R d \mathbb{R}^{d} (d ∈ N din\mathbb{N} )中高效实现连续片断线性函数有限元方法(P1-FEM)。虽然目前对使用高维简单分区的有限元方法的实际需求似乎并不高,但研究独立于维数的方法的有效实现还是有一些优势的。例如,它为必要的数据结构和实现的复杂性提供了额外的见解。在整个过程中,重点是使用 Matlab 内置函数和矢量化来高效实现。快速的矢量化 Matlab 函数可以很容易地在许多其他矢量语言中实现,Julia 中也有提供。本文给出了自适应有限元的完整实现方法,包括装配刚度矩阵、构建载荷向量、误差估计和自适应网格细化。数值实验强调了我们免费提供的代码的效率,据观察,在不超过内存限制的情况下,该代码的复杂度略高于元素数量的线性关系。
Efficient P1-FEM for Any Space Dimension in Matlab
This paper deals with the efficient implementation of the finite element method with continuous piecewise linear functions (P1-FEM) in Rd\mathbb{R}^{d} (d∈Nd\in\mathbb{N}). Although at present there does not seem to be a very high practical demand for finite element methods that use higher-dimensional simplicial partitions, there are some advantages in studying the efficient implementation of the method independent of the dimension. For instance, it provides additional insights into necessary data structures and the complexity of implementations. Throughout, the focus is on an efficient realization using Matlab built-in functions and vectorization. The fast and vectorized Matlab function can be easily implemented in many other vector languages and is provided in Julia, too. The complete implementation of the adaptive FEM is given, including assembling stiffness matrix, building load vector, error estimation, and adaptive mesh-refinement. Numerical experiments underline the efficiency of our freely available code which is observed to be of a slightly more than linear complexity with respect to the number of elements when memory limits are not exceeded.
期刊介绍:
The highly selective international mathematical journal Computational Methods in Applied Mathematics (CMAM) considers original mathematical contributions to computational methods and numerical analysis with applications mainly related to PDEs.
CMAM seeks to be interdisciplinary while retaining the common thread of numerical analysis, it is intended to be readily readable and meant for a wide circle of researchers in applied mathematics.
The journal is published by De Gruyter on behalf of the Institute of Mathematics of the National Academy of Science of Belarus.