MFEM

MFEM is an open-source C++ library for solving partial differential equations using the finite element method, developed and maintained by researchers at the Lawrence Livermore National Laboratory and the MFEM open-source community on GitHub. MFEM is free software released under a BSD license.

The library consists of C++ classes that serve as building blocks for developing finite element solvers applicable to problems of fluid dynamics, structural mechanics, electromagnetics, radiative transfer and many other.

Features
Some of the features of MFEM include


 * Arbitrary high order finite elements with curved boundaries.
 * H1, H(curl) and H(div) conforming, discontinuous (L2), and NURBS finite element spaces.
 * Local mesh refinement, both conforming (simplex meshes) and non-conforming (quadrilateral/hexahedral meshes).
 * Highly scalable MPI-based parallelism and GPU acceleration.
 * Wide variety of finite element discretization approaches, including Galerkin, discontinuous Galerkin, mixed, high-order and isogeometric analysis methods.
 * Tight integration with the Hypre parallel linear algebra library.
 * Many built-in solvers and interfaces to external libraries such as PETSc, SuiteSparse, Gmsh, etc.
 * Accurate and flexible visualization with VisIt and ParaView.
 * Lightweight design and conservative use of C++ templating.
 * Documentation in the form of examples and mini-applications.