10 #ifdef MOOSE_MFEM_ENABLED 21 params.
addParam<std::string>(
"device",
"Run app on the chosen device.");
22 MooseEnum assembly_levels(
"legacy full element partial none",
"legacy",
true);
23 params.
addParam<
MooseEnum>(
"assembly_level", assembly_levels,
"Matrix assembly level.");
29 std::vector<std::shared_ptr<Moose::MFEM::ProblemOperatorBase>> & problem_operators)
31 _mfem_problem(dynamic_cast<
MFEMProblem &>(_problem)),
32 _problem_operators(problem_operators)
49 bool converged =
true;
76 problem_operator->Solve();
bool isUltimateMaster() const
Whether or not this app is the ultimate master app.
std::vector< std::shared_ptr< Moose::MFEM::ProblemOperatorBase > > & _problem_operators
virtual bool solve() override
Solve routine provided by this object.
virtual void preSolve()
Override this for actions that should take place before execution, called by FixedPointSolve.
virtual void updateActiveObjects()
Update the active objects in the warehouses.
const ExecFlagType EXEC_MULTIAPP_FIXED_POINT_END
virtual void onTimestepEnd() override
const ExecFlagType EXEC_TIMESTEP_END
void displaceMesh()
Displace the mesh, if mesh displacement is enabled.
std::optional< MooseEnum > getComputeDevice() const
Get the device accelerated computations are supposed to be running on.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
virtual void execute(const ExecFlagType &exec_type)
Convenience function for performing execution of MOOSE systems.
Executioner & _executioner
Executioner used to construct this.
const ExecFlagType EXEC_TIMESTEP_BEGIN
MFEMProblem & _mfem_problem
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Executioners are objects that do the actual work of solving your problem.
static InputParameters validParams()
MooseApp & _app
The MOOSE application this is associated with.
void backupMultiApps(ExecFlagType type)
Backup the MultiApps associated with the ExecFlagType.
virtual void postSolve()
Override this for actions that should take place after execution, called by FixedPointSolve.
const ExecFlagType EXEC_MULTIAPP_FIXED_POINT_BEGIN
MFEMProblemSolve(Executioner &ex, std::vector< std::shared_ptr< Moose::MFEM::ProblemOperatorBase >> &problem_operators)
void setMFEMDevice(const std::string &device_string, Moose::PassKey< MFEMProblemSolve >)
Create/configure the MFEM device with the provided device_string.
bool execMultiApps(ExecFlagType type, bool auto_advance=true)
Execute the MultiApps associated with the ExecFlagType.
virtual void outputStep(ExecFlagType type)
Output the current step.
void execTransfers(ExecFlagType type)
Execute the Transfers associated with the ExecFlagType.