Connects MFEMProblem's MOOSE solver objects to EquationSystem's mathematics. More...
#include <ProblemOperatorBase.h>
Public Member Functions | |
| ProblemOperatorBase (MFEMProblem &problem) | |
| virtual | ~ProblemOperatorBase ()=default |
| virtual void | SetGridFunctions () |
| virtual void | SetTrialVariablesFromTrueVectors () |
| virtual void | Init (mfem::BlockVector &X) |
| virtual void | Solve ()=0 |
Public Attributes | |
| mfem::Array< int > | _block_true_offsets_test |
| mfem::Array< int > | _block_true_offsets_trial |
| mfem::BlockVector | _true_x |
| mfem::BlockVector | _true_rhs |
Protected Member Functions | |
| 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. More... | |
| 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. More... | |
Protected Attributes | |
| MFEMProblem & | _problem |
| Reference to the current problem. More... | |
| 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 during solve. More... | |
| std::vector< std::string > | _test_var_names |
| std::vector< mfem::ParGridFunction * > | _trial_variables |
| std::vector< mfem::ParGridFunction * > | _test_variables |
| mfem::Vector * | _trial_true_vector = nullptr |
Connects MFEMProblem's MOOSE solver objects to EquationSystem's mathematics.
Three distinct layers collaborate to run an MFEM solve inside MOOSE:
Definition at line 52 of file ProblemOperatorBase.h.
| Moose::MFEM::ProblemOperatorBase::ProblemOperatorBase | ( | MFEMProblem & | problem | ) |
Definition at line 19 of file ProblemOperatorBase.C.
|
virtualdefault |
|
virtual |
Reimplemented in Moose::MFEM::TimeDependentEquationSystemProblemOperator.
Definition at line 49 of file ProblemOperatorBase.C.
Referenced by Moose::MFEM::TimeDependentEquationSystemProblemOperator::Init().
|
virtual |
Reimplemented in Moose::MFEM::EquationSystemProblemOperator, Moose::MFEM::TimeDependentEquationSystemProblemOperator, Moose::MFEM::ComplexEquationSystemProblemOperator, Moose::MFEM::TimeDependentProblemOperator, and Moose::MFEM::ProblemOperator.
Definition at line 25 of file ProblemOperatorBase.C.
Referenced by Moose::MFEM::ProblemOperator::SetGridFunctions(), and Moose::MFEM::TimeDependentProblemOperator::SetGridFunctions().
|
virtual |
Definition at line 66 of file ProblemOperatorBase.C.
Referenced by Moose::MFEM::TimeDependentEquationSystemProblemOperator::Solve().
|
pure virtual |
|
protected |
Solve the current system operator using the configured nonlinear and linear solvers.
Definition at line 78 of file ProblemOperatorBase.C.
Referenced by Moose::MFEM::TimeDependentEquationSystemProblemOperator::ImplicitSolve(), Moose::MFEM::ComplexEquationSystemProblemOperator::Solve(), Moose::MFEM::EquationSystemProblemOperator::Solve(), and SolveWithOperator().
|
inlineprotected |
Solve the current system operator using system_operator.GetGradient(x) as the linear operator.
Definition at line 77 of file ProblemOperatorBase.h.
| mfem::Array<int> Moose::MFEM::ProblemOperatorBase::_block_true_offsets_test |
Definition at line 63 of file ProblemOperatorBase.h.
Referenced by Moose::MFEM::ProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentProblemOperator::SetGridFunctions(), Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), and SetGridFunctions().
| mfem::Array<int> Moose::MFEM::ProblemOperatorBase::_block_true_offsets_trial |
Definition at line 64 of file ProblemOperatorBase.h.
Referenced by Init(), Moose::MFEM::ProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentProblemOperator::SetGridFunctions(), Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), and SetGridFunctions().
|
protected |
Reference to the current problem.
Definition at line 83 of file ProblemOperatorBase.h.
Referenced by Moose::MFEM::TimeDependentEquationSystemProblemOperator::Init(), and Moose::MFEM::TimeDependentEquationSystemProblemOperator::Solve().
|
protected |
Definition at line 84 of file ProblemOperatorBase.h.
Referenced by Moose::MFEM::ComplexEquationSystemProblemOperator::ComplexEquationSystemProblemOperator(), Moose::MFEM::EigenproblemESProblemOperator::EigenproblemESProblemOperator(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::ImplicitSolve(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::Init(), Moose::MFEM::EigenproblemESProblemOperator::RecoverEigenproblemSolution(), Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), SetGridFunctions(), Moose::MFEM::EigenproblemESProblemOperator::Solve(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::Solve(), and SolveWithOperator().
|
protected |
Definition at line 89 of file ProblemOperatorBase.h.
Referenced by Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::SetGridFunctions(), Moose::MFEM::EquationSystemProblemOperator::SetGridFunctions(), and SetGridFunctions().
|
protected |
Definition at line 91 of file ProblemOperatorBase.h.
Referenced by Moose::MFEM::ProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentProblemOperator::SetGridFunctions(), and SetGridFunctions().
|
protected |
Definition at line 92 of file ProblemOperatorBase.h.
Referenced by Init(), SetTrialVariablesFromTrueVectors(), and Moose::MFEM::TimeDependentEquationSystemProblemOperator::Solve().
|
protected |
Vector of names of state gridfunctions used in formulation, ordered by appearance in block vector during solve.
Definition at line 88 of file ProblemOperatorBase.h.
Referenced by Moose::MFEM::EigenproblemESProblemOperator::RecoverEigenproblemSolution(), Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::SetGridFunctions(), Moose::MFEM::EquationSystemProblemOperator::SetGridFunctions(), SetGridFunctions(), and Moose::MFEM::TimeDependentEquationSystemProblemOperator::Solve().
|
protected |
Definition at line 90 of file ProblemOperatorBase.h.
Referenced by Init(), Moose::MFEM::ProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentProblemOperator::SetGridFunctions(), SetGridFunctions(), and SetTrialVariablesFromTrueVectors().
| mfem::BlockVector Moose::MFEM::ProblemOperatorBase::_true_rhs |
Definition at line 66 of file ProblemOperatorBase.h.
Referenced by Moose::MFEM::TimeDependentEquationSystemProblemOperator::FormEquationSystemOperator(), Moose::MFEM::EquationSystemProblemOperator::FormEquationSystemOperator(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::ImplicitSolve(), Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), SetGridFunctions(), Moose::MFEM::ComplexEquationSystemProblemOperator::Solve(), and Moose::MFEM::EquationSystemProblemOperator::Solve().
| mfem::BlockVector Moose::MFEM::ProblemOperatorBase::_true_x |
Definition at line 66 of file ProblemOperatorBase.h.
Referenced by Moose::MFEM::EigenproblemESProblemOperator::FormEquationSystemOperator(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::FormEquationSystemOperator(), Moose::MFEM::EquationSystemProblemOperator::FormEquationSystemOperator(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::ImplicitSolve(), Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), SetGridFunctions(), Moose::MFEM::ComplexEquationSystemProblemOperator::Solve(), and Moose::MFEM::EquationSystemProblemOperator::Solve().
1.8.14