10 #ifdef MOOSE_MFEM_ENABLED 60 virtual void Init(mfem::BlockVector & X);
61 virtual void Solve() = 0;
71 mfem::Operator & linear_operator,
72 const mfem::Vector & rhs,
77 SolveWithOperator(mfem::Operator & system_operator,
const mfem::Vector & rhs, mfem::Vector & x)
79 return SolveWithOperator(system_operator, system_operator.GetGradient(x), rhs, x);
std::vector< std::string > _test_var_names
Base problem data struct.
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...
ProblemOperatorBase(MFEMProblem &problem)
void SolveWithOperator(mfem::Operator &system_operator, mfem::Operator &linear_operator, const mfem::Vector &rhs, mfem::Vector &x)
Solve the current system operator using the configured nonlinear and linear solvers.
virtual void SetTrialVariablesFromTrueVectors()
virtual void SetGridFunctions()
mfem::Array< int > _block_true_offsets_test
std::vector< mfem::ParGridFunction * > _test_variables
mfem::Array< int > _block_true_offsets_trial
Connects MFEMProblem's MOOSE solver objects to EquationSystem's mathematics.
mfem::Vector * _trial_true_vector
mfem::BlockVector _true_x
void SolveWithOperator(mfem::Operator &system_operator, const mfem::Vector &rhs, mfem::Vector &x)
Solve the current system operator using system_operator.GetGradient(x) as the linear operator...
std::vector< mfem::ParGridFunction * > _trial_variables
virtual ~ProblemOperatorBase()=default
mfem::BlockVector _true_rhs
MFEMProblem & _problem
Reference to the current problem.
virtual void Init(mfem::BlockVector &X)
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).