10 #ifdef MOOSE_MFEM_ENABLED 30 _mfem_problem(dynamic_cast<
MFEMProblem &>(feProblem())),
31 _mfem_problem_data(_mfem_problem.getProblemData()),
32 _mfem_problem_solve(*this, getProblemOperators()),
33 _system_time(getParam<
Real>(
"time")),
34 _time_step(_mfem_problem.timeStep()),
36 _last_solve_converged(
false)
39 if (getProblemOperators().empty())
41 _mfem_problem_data.eqn_system = std::make_shared<Moose::MFEM::EquationSystem>();
42 auto problem_operator =
43 std::make_shared<Moose::MFEM::EquationSystemProblemOperator>(_mfem_problem);
44 addProblemOperator(std::move(problem_operator));
58 getParam<MooseEnum>(
"assembly_level").getEnum<mfem::AssemblyLevel>());
62 problem_operator->SetGridFunctions();
72 _console <<
"\nCannot recover steady solves!\nExiting...\n" << std::endl;
100 TIME_SECTION(
"final", 1,
"Executing Final Objects")
virtual void preExecute()
Override this for actions that should take place before execution.
void timestepSetup() override
registerMooseObject("MooseApp", MFEMSteady)
virtual Real & time() const
virtual void postExecute()
Method called at the end of the simulation.
virtual bool solve() override
Solve routine provided by this object.
MFEMProblemData & _mfem_problem_data
virtual void computeMarkers()
virtual std::vector< std::shared_ptr< ProblemOperatorBase > > & getProblemOperators()
Returns a pointer to the operator's equation system.
MFEMSteady(const InputParameters ¶ms)
const ExecFlagType EXEC_TIMESTEP_END
MFEMProblem & _mfem_problem
Moose::MFEM::FESpaces fespaces
virtual void advanceState()
Advance all of the state holding vectors / datastructures so that we can move to the next timestep...
virtual void execute(const ExecFlagType &exec_type)
Convenience function for performing execution of MOOSE systems.
static InputParameters validParams()
static InputParameters validParams()
const ExecFlagType EXEC_PRE_MULTIAPP_SETUP
virtual void computeIndicators()
virtual void postExecute()
Override this for actions that should take place after execution.
virtual void initialSetup() override
Executioners are objects that do the actual work of solving your problem.
static InputParameters validParams()
MooseApp & _app
The MOOSE application this is associated with.
std::shared_ptr< Moose::MFEM::EquationSystem > eqn_system
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MFEMProblemSolve _mfem_problem_solve
virtual void init() override
Initialize the executioner.
virtual void execute() override
Pure virtual execute function MUST be overridden by children classes.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
bool execMultiApps(ExecFlagType type, bool auto_advance=true)
Execute the MultiApps associated with the ExecFlagType.
Moose::MFEM::GridFunctions gridfunctions
bool _last_solve_converged
Flag showing if the last solve converged.
bool isRecovering() const
Whether or not this is a "recover" calculation.
const ExecFlagType EXEC_FINAL
virtual void outputStep(ExecFlagType type)
Output the current step.
const ExecFlagType EXEC_INITIAL