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())
39 auto problem_operator =
40 std::make_shared<Moose::MFEM::TimeDependentEquationSystemProblemOperator>(
_mfem_problem);
54 "\" is not supported by MFEMTransient Executioner.");
66 getParam<MooseEnum>(
"assembly_level").getEnum<mfem::AssemblyLevel>());
70 problem_operator->SetGridFunctions();
113 _console <<
"Aborting as solve did not converge" << std::endl;
registerMooseObject("MooseApp", MFEMTransient)
const ExecFlagType EXEC_TIMESTEP_END
const ExecFlagType EXEC_TIMESTEP_BEGIN
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
void execTransfers(ExecFlagType type)
Execute the Transfers associated with the ExecFlagType.
bool execMultiApps(ExecFlagType type, bool auto_advance=true)
Execute the MultiApps associated with the ExecFlagType.
void timestepSetup() override
virtual void onTimestepBegin() override
virtual void execute(const ExecFlagType &exec_type)
Convenience function for performing execution of MOOSE systems.
static InputParameters validParams()
static InputParameters validParams()
MFEMTransient(const InputParameters ¶ms)
MFEMProblemData & _mfem_problem_data
virtual void init() override
Initialize the executioner.
virtual void takeStep(Real input_dt=-1.0) override
Do whatever is necessary to advance one step.
MFEMProblem & _mfem_problem
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
virtual std::vector< std::shared_ptr< ProblemOperatorBase > > & getProblemOperators()
Returns a pointer to the operator's equation system.
virtual void addProblemOperator(std::shared_ptr< ProblemOperatorBase > problem_operator)
Add an MFEM problem operator. Takes ownership.
virtual bool converged() const
If the time step converged.
virtual void rejectStep()
This gets called when time step is rejected.
virtual void acceptStep()
This gets called when time step is accepted.
virtual void step()
Take a time step.
Base class for transient executioners that use a FixedPointSolve solve object for multiapp-main app i...
bool & _last_solve_converged
Whether or not the last solve converged.
FEProblemBase & _problem
Here for backward compatibility.
Moose::TimeIntegratorType getTimeScheme() const
Get the time scheme used.
Real & _time_old
Previous time.
virtual bool lastSolveConverged() const override
Whether or not the last solve converged.
Real & _time
Current time.
virtual Real computeConstrainedDT()
TimeStepper * _time_stepper
static InputParameters validParams()
virtual void init() override
Initialize the executioner.
Real & _dt
Current delta t... or timestep size.
std::shared_ptr< Moose::MFEM::EquationSystem > eqn_system
Moose::MFEM::TimeDerivativeMap time_derivative_map
Moose::MFEM::CoefficientManager coefficients
Moose::MFEM::ComplexGridFunctions cmplx_gridfunctions
mfem::BlockVector true_solution
Persistent true-DoF solution vector backing trial grid functions after problem operator init.
std::shared_ptr< Moose::MFEM::NonlinearSolverBase > nonlinear_solver
Moose::MFEM::GridFunctions gridfunctions