MFEM is a lightweight, scalable C++ library for finite element discretizations of partial differential equations on unstructured grids, with particular emphasis on high-order methods and applications. The goal of the project is to enable high-performance finite element discretization research and application development on a wide variety of platforms, ranging from laptops to exascale supercomputers. It has a number of unique features including: support for arbitrary order finite element meshes and spaces with both conforming and nonconforming adaptive mesh refinement; advanced finite element spaces and discretizations, such as mixed methods, DG (discontinuous Galerkin), DPG (discontinuous Petrov-Galerkin) and Isogeometric Analysis (IGA) on NURBS (Non-Uniform Rational B-Splines) meshes; and a large number of well-documented example codes and miniapps that can be used as tutorials/starting points for user applications. MFEM also has native support for the FASTMath packages hypre, PETSc, SUNDIALS, SuperLU, Mesquite, and PUMI.
Usage and applications: MFEM has been applied successfully to a variety of applications, including high-order ALE shock hydrodynamics, radiation-diffusion, linear and non-linear elasticity, time- and frequency-domain electromagnetics, Stokes/Darcy flow, topology optimization, reaction-diffusion, DG advection, heart modeling, additive manufacturing, and more. It is a main component of the ECP co-design Center for Efficient Exascale Discretizations (CEED).