Version 3.1 of MFEM, a lightweight, general, scalable C++ library for finite element methods, is now available.
The goal of MFEM is to enable research and development of scalable finite element discretization and solver algorithms through general finite element abstractions, accurate and flexible visualization, and tight integration with the hypre linear solvers library. It has many features, including:
- 2D and 3D, arbitrary high-order H1, H(curl), H(div), L2 and NURBS elements.
- Parallel version scalable to hundreds of thousands of MPI cores.
- Conforming or nonconforming adaptive mesh refinement (AMR), including anisotropic refinement.
- Galerkin, mixed, isogeometric, DG and DPG discretizations.
- Support for triangular, quadrilateral, tetrahedral and hexahedral elements with curved boundaries.
- Lightweight interactive OpenGL visualization with GLVis.
Some of the new additions in version 3.1 are:
- Substantially improved non-conforming adaptive mesh refinement, which now works also in parallel.
- General finite element spaces and solvers on surfaces and mesh skeletons.
- Support for hybridization and static condensation, with a new FEM <-> linear system interface.
- New eigensolvers and improved linear solvers and preconditioners.
- Visualization of non-conforming meshes and grid functions, and vector fields on surface meshes.
- Six new examples codes for parallel AMR, eigenvalue problems and DG diffusion.
- Five new electromagnetic and meshing miniapps.
MFEM is freely available under LGPL 2.1.
For more details, see the interactive documentation and the full description of the changes.