Introduction to finite element using FreeFEM

FreeFEM is one of the tools we use a lot in TuxRiders, a powerful open-source PDE solver which is actually a domain-specific language (DSL) for finite element computation. It also includes nice interfaces to a wide variety of scientific computing libraries and tools. In this series, we cover the FreeFEM basic concepts.

Source Codes

Codes and models required to follow the videos and reproduce the output, grouped for different episodes, can be found in this GitHub repository.


  1. Introduction to FreeFEM: language syntax and environment presentation

  2. 2D mesh generation in FreeFEM presentation

  3. 3D mesh generation in FreeFEM presentation

  4. Finite element spaces and function approximation in FreeFEM presentation

  5. Implementing weak formulation to solve partial differential equations in FreeFEM presentation

  6. Adaptive mesh generation in FreeFEM presentation

  7. Visualization and input/output (IO) operations in FreeFEM presentation

  8. Regions and sub-domains to define variable material properties and initial conditions presentation

  9. Solvers and preconditioners for the linear system of equations: PETSc, MUMPS, & UMFPACK presentation

  10. Parallel programming and Message Passing Interface (MPI) presentation

  11. Domain decomposition and high-performance finite element simulations presentation