VEMLab: a MATLAB library for the virtual element method
Version : 2.1
Language : MATLAB
Date : May 17, 2018
License : GNU GPL3
Web :

Description: 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.

Delynoi: an object-oriented C++ library for the generation of polygonal meshes
Version : 1.0
Language : C++
Date : September 9, 2017
License : GNU GPL3
Web :

Description: free and open source C++ library for the generation of polygonal meshes on arbitrary domains, based on the constrained Voronoi diagram.

  • The meshes are generated on arbitrary domains, created from user defined points. Domains have no restrictions on convexity.
  • It allows the inclusion of completely contained or intersecting holes, which are processed if required.
  • The meshes are generated from seed points, which can be read either directly from a text file, included one by one,
    or created from a number of generation rules included in the library. New generation rules can be easily included.
  • Meshes can be stored in OFF-style text files, or used directly in another program.
  • To generate the meshes, the library first computes the conforming Delaunay triangulation using Triangle; the triangulation
    is considered as a mesh that is left available for use if needed. Then, it computes the constrained Voronoi diagram.

Veamy: an extensible object-oriented C++ library for the virtual element method
Version    : 2.0
Language : C++
Date          : January 23, 2018
License     : GNU GPL3
Web          :

Description: free and open source C++ library that implements the virtual element method. The first release of this library allows the solution of 2D linear elastostatic problems.

  • Includes its own mesher based on the computation of the constrained Voronoi diagram. The meshes can be created in arbitrary domains, with or without holes, with procedurally generated points.
  • Meshes can also be read from OFF-style text files (an example can be found in the test folder).
  • Allows easy input of boundary conditions by constraining domain segments and nodes.
  • The results of the computation can be either written into a file or used directly.
  • PolyMesher meshes and boundary conditions can be read straightforwardly in Veamer to solve 2D linear elastostatic problems.

Author     : Alejandro Ortiz-Bernardin
Version    : 1.0 / Updates: 1.0.1 (See change log below)
Language : C++
Date          : September 23, 2009 / Updates: October 9, 2009
License     : GNU LGPL
Download : MeshFree++_v1.0.1_win, MeshFree++_v1.0.1_linux, MeshFree++_change_log, Older versions

Description: a C++ class that provides a unified meshfree basis function computation. Its capabilities include the computation of first order maximum entropy (maxent) basis functions and first order moving least square (mls) basis functions along with their derivatives. It is a generic code in the sense that it can compute the aforementioned basis functions in one, two and three dimensions with just one single code.

Maxent basis functions for Matlab
Author     : Alejandro Ortiz-Bernardin
Version    : 3.4
Language : Matlab
Date          : March 14, 2012
License     : GNU GPL
Download : maxent for Matlab

Description: Small code to compute MAXENT basis functions in Matlab.

Author     : Alejandro Ortiz-Bernardin
Version    : 1.0
Language : C++
Date          : September 23, 2009
License     : GNU LGPL
Download : MathVec++_v1.0_win, MeshFree++_v1.0_linux

Description: template header that simplifies matrix-vector operations. Matrix-vector operations are designed for small matrices since it uses direct implementations. However, it can solve large sparse linear systems very efficiently due to its interface to TAUCS library.

A test of three methods to perform finite element assembly in Matlab
Author     : Alejandro Ortiz-Bernardin
Language : Matlab
Date          : February 7, 2010
Download : assembly

Description: three distinct methods for finite element assembly are compared in order to find out the more efficient one.  Complete details with my findings are provided in my blog at iMechanica.

NOTE: If you find a bug or have any comment with respect to the above codes, please drop me an e-mail at I will try to fix the problems and post updates when needed.

Recent News

All news

Recent Publications

All publications