10 #ifdef MOOSE_MFEM_ENABLED 30 ode_solver = std::make_unique<mfem::BackwardEulerSolver>();
31 ode_solver->Init(*(
this));
33 SetImplicitVariableType(STATE);
45 gfs.GetRef(tdm.getTimeDerivativeName(trial_var_name)) = gfs.GetRef(trial_var_name);
56 (gfs.GetRef(tdm.getTimeDerivativeName(trial_var_name)) -= gfs.GetRef(trial_var_name)) /= -dt;
68 mooseError(
"LOR solve is only supported for single-variable systems");
std::vector< std::string > _test_var_names
virtual Real & time() const
MFEMProblemData & _problem_data
std::vector< std::string > _trial_var_names
Vector of names of state gridfunctions used in formulation, ordered by appearance in block vector dur...
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
std::shared_ptr< mfem::IterativeSolver > nonlinear_solver
virtual void SetTrialVariablesFromTrueVectors()
virtual void Init(mfem::BlockVector &X) override
std::unique_ptr< mfem::ODESolver > ode_solver
void BuildEquationSystemOperator(mfem::real_t dt)
Add kernels/bcs and assemble the linear part of the equation system.
std::vector< mfem::Array< int > > _ess_tdof_lists
Moose::MFEM::CoefficientManager coefficients
void FormSystem(mfem::BlockVector &trueX, mfem::BlockVector &trueRHS)
Assemble the linear part of the operator, assemble the right-hand side, apply essential and eliminate...
mfem::Vector * _trial_true_vector
virtual void SetGridFunctions() override
virtual void SetTimeStep(mfem::real_t &dt)
mfem::BlockVector _true_x
void setTime(const mfem::real_t time)
virtual void BuildEquationSystem()
Build all forms comprising this EquationSystem.
virtual void SetGridFunctions() override
mfem::BlockVector _true_rhs
virtual Moose::MFEM::TimeDependentEquationSystem * GetEquationSystem() const override
Returns a pointer to the operator's equation system.
MFEMProblem & _problem
Reference to the current problem.
virtual void Init(mfem::BlockVector &X)
const std::vector< std::string > & GetTrialVarNames() const
const std::vector< std::string > & GetTestVarNames() const
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).
virtual void ImplicitSolve(const mfem::real_t, const mfem::Vector &, mfem::Vector &) override
Moose::MFEM::GridFunctions gridfunctions
virtual Real & dt() const
virtual void Solve() override
Moose::MFEM::TimeDerivativeMap time_derivative_map
std::shared_ptr< MFEMSolverBase > jacobian_solver