mVEM

所属分类:matlab编程
开发工具:matlab
文件大小:0KB
下载次数:0
上传日期:2023-10-16 09:51:07
上 传 者sh-1993
说明:  虚拟元方法的MATLAB编程,
(MATLAB Programming for Virtual Element Methods,)

文件列表:
LICENSE (35149, 2023-10-16)
docs/ (0, 2023-10-16)
docs/mVEM.pdf (2433663, 2023-10-16)
examples/ (0, 2023-10-16)
examples/main_Poisson/ (0, 2023-10-16)
examples/main_Poisson/main_PoissonVEM.m (1447, 2023-10-16)
examples/main_Poisson/main_PoissonVEM_NC.m (1455, 2023-10-16)
examples/main_Poisson/main_PoissonVEM_NCb.m (1771, 2023-10-16)
examples/main_Poisson/main_PoissonVEM_vec.m (2141, 2023-10-16)
examples/main_Poisson/main_PoissonVEMk2.m (1495, 2023-10-16)
examples/main_Poisson/main_PoissonVEMk2_vec.m (2151, 2023-10-16)
examples/main_Poisson/main_PoissonVEMk3.m (1493, 2023-10-16)
examples/main_Poisson/main_PoissonVEMk3_vec.m (2143, 2023-10-16)
examples/main_avem/ (0, 2023-10-16)
examples/main_avem/main_Poisson_avem.m (1563, 2023-10-16)
examples/main_elasticity/ (0, 2023-10-16)
examples/main_elasticity/main_Fourth_order_Singular_Perturbation_C0VEM.m (2217, 2023-10-16)
examples/main_elasticity/main_PlateBending_C0VEM.m (1634, 2023-10-16)
examples/main_elasticity/main_PlateBending_C1VEM.m (1544, 2023-10-16)
examples/main_elasticity/main_PlateBending_MorleyVEM.m (1346, 2023-10-16)
examples/main_elasticity/main_elasticityVEM.m (1451, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_CookMembrane.m (1527, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_KouhiaStenberg.m (1510, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_NC.m (1499, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_NCUniformReducedIntegration.m (1647, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_NCb.m (1500, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_NCreducedIntegration.m (1624, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_Navier.m (1307, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_NavierNC.m (1363, 2023-10-16)
examples/main_elasticity/main_elasticityVEM_reducedIntegration.m (1522, 2023-10-16)
examples/main_mesh/ (0, 2023-10-16)
examples/main_mesh/main_CookMembrane.m (1105, 2023-10-16)
examples/main_mesh/main_EdgePolyMesher.m (450, 2023-10-16)
examples/main_mesh/main_PolyMesh3Simple.m (731, 2023-10-16)
examples/main_mesh/main_PolyMeshRefine.m (689, 2023-10-16)
examples/main_mesh/main_dualMesh.m (882, 2023-10-16)
examples/main_mesh/main_interfacePolyMesher.m (1035, 2023-10-16)
examples/main_mesh/main_nonConvexMesh.m (113, 2023-10-16)
examples/main_mesh/test_PolyMeshRefine.m (1549, 2023-10-16)
... ...

# MATLAB Programming for Virtual Element Methods If you have any problems (**I mean bugs you encountered**), please contact me via the email: terenceyuyue@sjtu.edu.cn mVEM is a MATLAB software package containing efficient and easy-following codes for various virtual element methods (VEMs) published in the literature. -------------- ## MESH - We present some basic functions to show the polygonal meshes, including marking of the nodes, elements and (boundary) edges. - For the convenience of computation, some auxiliary mesh data are introduced. The idea stems from the treatment of triangulation in iFEM, which is generalized to polygonal meshes with certain modifications. - We also provide a boundary setting function to identify the Neumann and Dirichlet boundaries (See setboundary.m). - The mesh generation algorithms are also described in detail. - We present an efficient implementation of the mesh refinement for polygonal meshes. To the best of our knowledge, this is the first publicly available implementation of the polygonal mesh refinement algorithms. We remove the small edges by requiring the one-hanging-node rule. - nonConvexMesh: generates a typical nonconvex polygonal mesh - gunelveMesh: generates the Gunelve mesh used in the Cook's membrane problem - dualMesh: Generate polygonal mesh by establishing the dual mesh of a given Delaunay triangulation. ------------------------- ## Conforming Virtual Element Methods ### Poisson equation (k <= 3) We describe the details of designing the codes of conforming VEMs for Poisson equation with k up to 3, including the computation of elliptic projection and L2 projection, the matrix form of the approximated variational problems as well as the treatment of boundary conditions. We also show how the errors under L2,H1 and energy norms can be computed using the numerical d.o.f.s. ### Linear elasticity problems (lowest order k = 1) The VEM of lowest order for linear elasticity problems is introduced for both the displacement-type (or Navier-type) and tensor-type bilinear forms. ### Plate bending problems (lowest order k = 2) Three VEMs involved in the literature are described in detail, i.e., the C1, C0 and Morley-type elements. ### Fourth-order singular perturbation problems This problem combines the techniques in Poisson equation and plate bending problems. --------------- ## Nonconforming Virtual Element Methods ### Poisson equation - Standard nonconforming VEM in the lowest order case - The nonconforming VEM with a continuous treatment on the boundary of the domain ### Linear elasticity For linear elasticity problems, we mainly consider the (locking-free) virtual elements in the lowest order case. - conforming and nonconforming VEMs for the Navier/displacement form - conforming and nonconforming VEMs for the tensor form - nonconforming VEMs for a continuous treatment of the domain boundary - locking-free VEMs: Kouhia-Stenberg VEM (Vnc \times Vc), reduced integration technique based VEMs - a standard benchmark: Cook's membrane problem ------------------ ## Mixed Virtual Element Methods - Mixed vem for Darcy problem in the lowest order H(div)-conforming virtual element - Mixed vem for Darcy problem in the lowest order lifting H(div)-conforming virtual element - Divergence-free mixed vem for Stokes problem in the lowest order ------------------ ## Adaptive Virtual Element Methods - Mesh refinement of polygonal meshes - Adaptive VEM for Poisson equation in the lowest order ------------------ ## Variational Inequalities We provide the implementation of the the virtual element method for a simplified friction problem, which is a typical elliptic variational inequality of the second kind. The discrete problem is solved by using the Uzawa iteration algorithm, hence the implentation is reduced to that of Poisson equation in each iteration. ------------------ ## 3-D Linear Virtual Element Methods We present a simple and efficient implementation of the linear virtual element method for the three dimensional Poisson equation. The design ideas can be directly generalized to higher-order cases. ------------------- ## Vectorized Implementation - The vectorized implementatioin for conforming VEMs of Poisson equation has been accomplished in a unified way. - The current realization may be less straighforward compared to the FEMs. - Only the calculation of projection matrices is vectorized, and the assembly procedure is still implemented by looping over the elements ------------------- ## Acknowlegement The author would like to thank Sen Lin and Fang Feng, my schoolmates in Shanghai Jiao Tong University for many helpful discussions. The author thanks Postdoc Dohyun for pointing out the bugs in PolyMeshRefine.m and provide another version PolyMeshRefine1.m. Detailed credits can be found in the M-lint of several m files. ----------------- ## Citation If you feel it is helpful for your research, please acknowledge your use by citing: Y. Yu, mVEM: MATLAB Programming for Virtual Element Methods, https://github.com/Terenceyuyue/mVEM, Shanghai Jiao Tong University, 2019-2022. @misc{mvem, title = { {mVEM: MATLAB Programming for Virtual Element Methods} }, url = {https://github.com/Terenceyuyue/mVEM}, author = {Yu, Y.} institution = {Shanghai Jiao Tong University}, year = {2019-2022}, } PS: 程序对区域、边界条件等的处理都较为一般,可容易地移植到其他问题。 编程过程完全遵循有限元的思路。 相比网上有的程序,过程更加清晰,充分使用了 MATLAB 的向量运算。 在计算各种投影的边界项时,部分程序中使用有限元载荷向量的装配技巧避免了繁琐的人为处理。 TO DO: - Vectorized implementation - Time-dependent problems and nonlinear problems - Various applications: Cahn–Hilliard problem, Stokes–Darcy problem, Navier-Stokes, etc. - Mesh generation in 3-D

近期下载者

相关文件


收藏者