FreeFEM Documentation on GitHub

stars - forks

Version 4: new features

Hash Matrix

A new internal managment of matrix inside the FreeFEM core have been introduced in FreeFEM 4.0, for better performance.

Surface Finite Element

The surface finite element method is available since FreeFEM V4.2.1. | Some examples in examples/3dSurf.

Abstract about Surface FEM in FreeFEM.

  • new meshS type, refer to the section The type meshS in 3 dimension

    • new type of surface mesh: meshS

    • the functionalities on the meshS type, it is necessary to load the plugin ”msh3”.

    • generator of meshS square3, sphere, ellipsoide or from a mesh using the command movemesh23.

    • the old surface mesh3 object is removed and replaced by meshS type

    • two possibilities to define a meshS :

      • the considered domain is a 3D surface, so naturally the FreeFEM type is a meshS
      • let Th3 be a volume mesh (mesh3) and its border \(\Gamma\). FreeFEM allows to define the volume part with a mesh3 type, and can extract and generate the entire border surface domain with meshS ThS=Th3.Gamma or specific borders with meshS ThS=extract(Th3,label=llabs).

      It is possible to build the underlying meshS from a mesh3 with the function buildSurface: Th3=buildSurface(Th3) builds the surface domain associated to the mesh3 Th3.

    • link with the mesh3 type

      • by the command meshS ThS=Th3. Gamma
      • operator on meshS type such as movemeshS, trunc, change
      • operator in relation mesh3 / meshS such as extract, buildSurface, gluing of meshS with the operator +
      • tetg allows to tetrahedralize the interior of the surface mesh with tetgen
  • new FESpace with surface finite element type, see the section surface Lagrangian Finite Elements

  • FESpace P0 P1, P2, P1b Lagrange finite elements
  • as in the standard 2d or 3d case, the variational problem associated to surface PDE can be defined by using the keywords
    • problem
    • varf to access to matrix and RHS vector
    • available operators are int1d, int2d, on
  • visualisation tools
    • plot with plot of ffglut, medit meshes meshS and surface solutions
    • loading, saving of meshes and solution at freefem’s format
      • “.mesh” mesh format file of Medit (P. Frey LJLL)
      • “.msh” for mesh and “.sol” data solution at freefem format
      • “.msh” data file of Gmsh (Mesh generator) (load “gmsh”)
      • vtk format for meshes and solutions (load “iovtk”)


Since the release 4.2.1, the surface mesh3 object (list of vertices and border elements, without tetahedra elements) is remplaced by meshS type. For a FreeFEM V3 script working with surface meshes, try to change mesh3 by meshS.


A compilation process using CMake is under development

Table of content