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 shared_ptr to an mfem::Solver derived object, and the getSolver method should return the shared_ptr 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 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