MFEMProblemSolve
Summary
Virtual base class for executioners used to solve MFEM FE problems.
Overview
MFEMProblemSolve is a SolveObject used to control the execution of MFEM FE problems. Importantly, MFEMProblemSolve is used in Executioner classes intended for the solution of problems using the MFEM FE backend, such as MFEMTransient and MFEMSteady, by executing their corresponding ProblemOperators. MFEMProblemSolve also allows for selection of the desired device and assembly strategy to use for the FE problem.
Provided MFEM and its dependencies have been built with support for GPU backends (e.g. cuda or hip), they may be selected here to enable use of GPUs for solvers and during assembly.
Selection of partial assembly levels is also supported to improve performance on GPUs; full description of the various assembly levels supported is available here.
By default, legacy assembly of the FE problem on CPUs will be selected for robustness.
Example Input File Syntax
[Executioner<<<{"href": "../../../syntax/Executioner/index.html"}>>>]
type = MFEMSteady
device = cpu
[](test/tests/mfem/kernels/diffusion.i)[Executioner<<<{"href": "../../../syntax/Executioner/index.html"}>>>]
type = MFEMTransient
device = cpu
assembly_level = legacy
dt = 2.0
start_time = 0.0
end_time = 6.0
[](test/tests/mfem/kernels/heattransfer.i)