MFEMSolverBase

Summary

Base class for mfem::Solver objects to use in MFEM problems.

Overview

Classes derived from MFEMSolverBase can usually be used as preconditioners or linear solvers; the constructSolver method should be overridden to construct a unique_ptr to an mfem::Solver derived object. The getSolver method returns a reference to the underlying mfem::Solver for use during a solve.

Problem-specific information - such as finite element spaces used in the set-up of some preconditioners - can be passed to the mfem::Solver at construction time.

Most solvers have the option of being used as a Low-Order-Refined (LOR) preconditioner, by setting their respective low_order_refined parameter to true. LOR solvers work by taking a problem and casting it onto a spectrally equivalent one with lower polynomial order and more refined mesh. Due to the scaling properties of the computing time with respect to polynomial order and mesh size, this change will often result in a significant performance improvement, which tends to be more pronounced at higher polynomial orders. More details can be found here.

commentnote