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())
37 std::string
name =
"__DefaultWeakFormProblemComposer";
53 "\" is not supported by MFEMTransient Executioner.");
67 getParam<MooseEnum>(
"assembly_level").getEnum<mfem::AssemblyLevel>());
72 problem_operator->SetGridFunctions();
114 _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.
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.
InputParameters getValidParams(const std::string &name) const
Get valid parameters for the object.
static InputParameters validParams()
std::shared_ptr< MFEMProblemComposer > & getProblemComposer()
Method to get the Problem Composer(s).
void addMFEMProblemComposer(const std::string &user_object_name, const std::string &name, InputParameters ¶meters)
Method called in AddMFEMProblemComposerAction which will create the problem composer.
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
const std::string & name() const
Get the name of the class.
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.
Factory & _factory
The Factory associated with the MooseApp.
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::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