Version 3.3 of MFEM, a lightweight, general, scalable C++ library for finite element methods, is now available.
The goal of MFEM is to enable high-performance scalable finite element discretization research and application development on a wide variety of platforms, ranging from laptops to exascale supercomputers.
It has many features, including:
- 2D and 3D, arbitrary order H1, H(curl), H(div), L2, NURBS elements.
- Parallel version scalable to hundreds of thousands of MPI cores.
- Conforming/nonconforming adaptive mesh refinement (AMR), including anisotropic refinement, derefinement and parallel load balancing.
- Galerkin, mixed, isogeometric, discontinuous Galerkin, hybridized, and DPG discretizations.
- Support for triangular, quadrilateral, tetrahedral and hexahedral elements, including arbitrary order curvilinear meshes.
- Scalable algebraic multigrid, time integrators, and eigensolvers.
- Lightweight interactive OpenGL visualization with the MFEM-based GLVis tool.
Some of the new additions in version 3.3 are:
- Comprehensive support for the linear and nonlinear solvers, preconditioners, time integrators and other features from the PETSc and SUNDIALS suites.
- Linear system interface for action-only linear operators including support for matrix-free preconditioning and low-order-refined spaces.
- General quadrature and nodal finite element basis types.
- Scalable parallel mesh format.
- Thirty-six new integrators for common families of operators.
- Sixteen new serial and parallel example codes.
- Support for CMake, on-the-fly compression of file streams, and HDF5-based output following the Conduit mesh blueprint specification.
MFEM is being developed in CASC, LLNL and is freely available under LGPL 2.1.
For more details, see the interactive documentation and the full CHANGELOG.