MFEMExecutioner

Summary

Virtual base class for executioners used to solve MFEM FE problems.

Overview

MFEMExecutioner is a purely virtual base class used to control the execution of MFEM FE problems. Importantly, use of an MFEMExecutioner derived Executioner 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]
  type = MFEMSteady
  device = cpu
[]
(test/tests/kernels/diffusion.i)
[Executioner]
  type = MFEMSteady
  assembly_level = partial
[]
(test/tests/kernels/diffusion_partial.i)