VEMLab: a MATLAB library for the virtual element method

Features

Free and open source MATLAB library for the virtual element method.

  • Two-dimensional linear elastostatics (plane strain and plane stress) and two-dimensional Poisson problem.
  • Solution methods: Linear VEM (polygonal elements), FEM (3-node triangles, 4-node quadrilateral).
  • Boundary conditions: Dirichlet, Neumann on boundary edges; can be a constant or a function.
  • Meshers: PolyMesher, distmesh2d, quad4mesh; PolyMesher is customized for rectangular domain, wrench domain and plate with a hole domain; distmesh2d and quad4mesh are customized for rectangular domain only. Domains can be extended for any of the meshers, but it requires adjustments to some interface functions (see the instructions that are available in functions create_polygonal_mesh.m, create_quadrilateral_mesh.m and create_triangular_mesh.m in folder “mesher”).
  • Meshes need to be generated separately and saved to folder “test/mesh_files.”
  • Meshes must be generated with the functions “create_” located in the folder “mesher.” Then, the files containing the generated meshes will be automatically saved to folder “test/mesh_files” for their use.
  • Solutions can be plotted to MATLAB figures, text files, GiD files and VTK files.

Author

Alejandro Ortiz-Bernardin – Assistant Professor, Department of Mechanical Engineering, Universidad de Chile.

Running VEMLab

VEMLab is a library. You need to create a main .m file and place it inside the folder “test.” The main file has the typical structure of a FEM simulation. Simply follow the test problems (they are given with detailed comments) that are provided inside the folder “test” to write your own .m files or modify the ones provided. Alternatively, you can read the manual that is available in the folder ‘doc.’

License

This project is licensed under the GPL3 License. This program is free software; it can be redistributed or modified under the terms of the GNU General Public License 3 as published by the Free Software Foundation.

Download

>>  Latest stable version of VEMLab (17-MAY-2018):  VEMLab v2.1 

>>  Download:     Source code (zip)   |    Source code (tar.gz)    |    VEMLab Primer (PDF manual)

>>  From VEMLab v2.0.2 to VEMLab v2.1:

  • Add customized wrench domain (for PolyMesher mesh generator only).
  • Add customized plate with a hole domain (for PolyMesher mesh generator only).
  • Add the following test: “square_plate_with_source2_poisson2d.m” in test folder.
  • Add the following test: “plate_with_hole_linelast2d.m” in test folder.
  • Add the following test: “wrench_linelast2d.m” in test folder.
  • Fix iteration counter in PolyMesher function.

>>  From VEMLab v2.0.1 to VEMLab v2.0.2:

  • Fix several bugs when using vemlab_method=’FEM2DQ4′ and vemlab_method=’FEM2DT3′.
  • Add a control variable in config.m that permits to explicitly set the number of Gauss points to integrate the FEM2DQ4 stiffness matrix and body force vector.

>>  From VEMLab v2.0 to VEMLab v2.0.1: the following features have been added

  • More detailed manual in folder “doc.”
  • Improvement to the plotting of axis and fonts in MATLAB figures.

>>  From VEMLab v1.0 to VEMLab v2.0: the following features have been added

  • Two-dimensional Poisson problem
  • Setup of plot and output options in function “plot_and_output_options” located in folder “config”.
  • Additional plotting options (stresses, strains, fluxes and gradients) to MATLAB figures, text files and GiD files.
  • Option to plot solutions to VTK files.

>>  VEMLab 1.0: (Initial release of code)

  • Two-dimensional linear elastostatics (plane strain and plane stress)
  • Solution methods: VEM (polygonal elements), FEM (3-node triangles, 4-node quadrilateral)
  • Boundary conditions: Dirichlet, Neumann on boundary edges; can be a constant or a function.
  • Meshers: PolyMesher [1], distmesh2d [2], quad4mesh; customized for rectangular domains only (requires adjustments for other domain types)
  • Meshes need to be generated separately and stored inside folder ‘mesh_files’ located in the folder ‘test.’
  • Meshes must be generated with the functions ‘create_’ located in the folder ‘mesher.’
  • Solutions can be plotted to MATLAB figures, text files and GiD files.

Browse the source code on GitHub



————————————–
Counter stats since 17 FEB 2018

Recent News

All news

Recent Publications

All publications