Owns the weak-form mathematics of a MOOSE MFEM problem. More...
#include <EquationSystem.h>
Public Member Functions | |
| EquationSystem ()=default | |
| ~EquationSystem () override | |
| virtual void | AddKernel (std::shared_ptr< MFEMKernel > kernel) |
| Add kernels. More... | |
| virtual void | AddIntegratedBC (std::shared_ptr< MFEMIntegratedBC > kernel) |
| virtual void | AddEssentialBC (std::shared_ptr< MFEMEssentialBC > bc) |
| Add BC associated with essentially constrained DoFs on boundaries. More... | |
| virtual void | Init (GridFunctions &gridfunctions, ComplexGridFunctions &cmplx_gridfunctions, mfem::AssemblyLevel assembly_level) |
| Initialise. More... | |
| void | FormSystem (mfem::BlockVector &trueX, mfem::BlockVector &trueRHS) |
| Build all weak-form components via BuildEquationSystem(), form the constrained linear part of the system, and populate the true-DoF vectors used by the solve. More... | |
| void | Mult (const mfem::Vector &u, mfem::Vector &residual) const override |
| Compute residual y = Mu. More... | |
| virtual void | ComputeNonlinearResidual (const mfem::Vector &u, mfem::Vector &residual) const |
| Compute the contribution to the residual from nonlinear forms only. More... | |
| mfem::Operator & | GetGradient (const mfem::Vector &u) const override |
| Get Jacobian at the provided vector of true DoFs of trial variables. More... | |
| mfem::OperatorHandle & | GetLinearOperator () const |
| Get operator handle for linear component of system operator. More... | |
| virtual void | SetTrialVariablesFromTrueVectors (const mfem::BlockVector &trueX) const |
| Update variable from solution vector after solve. More... | |
| void | SetGradientRequired (bool requires_gradient) |
| Set whether an external object (such as a nonlinear solver) requires Jacobian information for this EquationSystem. More... | |
| void | SetCoefficientManager (CoefficientManager &coefficients) |
| Set the coefficient manager to notify when trial variables are updated, so that stored projections of solution-dependent coefficients are invalidated. More... | |
| const std::vector< std::string > & | GetTrialVarNames () const |
| const std::vector< std::string > & | GetTestVarNames () const |
| const mfem::Array< int > & | GetBlockOffsets () const |
| Getter for block true offsets associated with the EquationSystem operator. More... | |
| mfem::ParBilinearForm & | GetBilinearForm (const std::string &test_var_name) |
| mfem::ParGridFunction & | GetGridFunction (const std::string &trial_var_name) |
| bool | Nonlinear () const |
| const mfem::Vector & | GetLinearizationPoint () const |
| The true-DoF vector used for the most recent Jacobian linearization. More... | |
| std::shared_ptr< mfem::ParBilinearForm > | BuildBilinearFormForFESpace (const std::string &var_name, mfem::ParFiniteElementSpace &fespace, mfem::AssemblyLevel assembly_level) |
| Build a fresh ParBilinearForm on the given FESpace using the same kernels as the main system's bilinear form for var_name. More... | |
| std::shared_ptr< mfem::ParNonlinearForm > | BuildNonlinearFormForFESpace (const std::string &var_name, mfem::ParFiniteElementSpace &fespace, mfem::AssemblyLevel assembly_level) |
| Build a fresh ParNonlinearForm on the given FESpace using the same kernels as the main system's nonlinear form for var_name. More... | |
| mfem::Array< int > & | GetEssentialBoundaryMarkers (const std::string &var_name) |
| Return the essential boundary attribute marker array for a given trial variable. More... | |
| virtual bool | IsComplex () const |
| virtual bool | IsEigen () const |
| virtual bool | IsTimeDependent () const |
| bool | IsMultivariate () const |
| bool | IsNonlinear () const |
| virtual void | BuildEquationSystem () |
| Build all forms comprising this EquationSystem. More... | |
Protected Member Functions | |
| virtual void | AddCoupledVariableNameIfMissing (const std::string &coupled_var_name) |
| Add coupled variable to EquationSystem. More... | |
| virtual void | AddEliminatedVariableNameIfMissing (const std::string &eliminated_var_name) |
| Add eliminated variable to EquationSystem. More... | |
| virtual void | AddTestVariableNameIfMissing (const std::string &test_var_name) |
| Add test variable to EquationSystem. More... | |
| virtual void | SetTrialVariableNames () |
| Set trial variable names from subset of coupled variables that have an associated test variable. More... | |
| void | DeleteHBlocks () |
| Deletes the HypreParMatrix associated with any pointer stored in _h_blocks, and then proceeds to delete all dynamically allocated memory for _h_blocks itself, resetting all dimensions to zero. More... | |
| void | DeleteJacobianBlocks () |
| Deletes the HypreParMatrix associated with any pointer stored in _jacobian_blocks, and then proceeds to delete all dynamically allocated memory for _jacobian_blocks itself, resetting all dimensions to zero. More... | |
| bool | VectorContainsName (const std::vector< std::string > &the_vector, const std::string &name) const |
| virtual void | ApplyEssentialBC (const std::string &var_name, mfem::ParGridFunction &trial_gf, mfem::Array< int > &global_ess_markers) |
| Apply essential BC(s) associated with var_name to set true DoFs of trial_gf and update markers of all essential boundaries. More... | |
| virtual void | ApplyEssentialBCs () |
| Update all essentially constrained true DoF markers and values on boundaries. More... | |
| virtual void | EliminateCoupledVariables () |
| Perform trivial eliminations of coupled variables lacking corresponding test variables. More... | |
| virtual void | BuildLinearForms () |
| Build linear forms and eliminate constrained DoFs. More... | |
| virtual void | BuildNonlinearForms () |
| Build non-linear action forms. More... | |
| virtual void | BuildBilinearForms () |
| Build bilinear forms (diagonal Jacobian contributions) More... | |
| virtual void | BuildMixedBilinearForms () |
| Build mixed bilinear forms (off-diagonal Jacobian contributions) More... | |
| virtual void | FormLinearSystem (mfem::OperatorHandle &op, mfem::BlockVector &trueX, mfem::BlockVector &trueRHS) |
| Form linear components of system based on on- and off-diagonal bilinear form contributions, populate solution and RHS vectors of true DoFs, and apply constraints. More... | |
| virtual void | FormSystemOperator (mfem::OperatorHandle &op, mfem::BlockVector &trueX, mfem::BlockVector &trueRHS) |
| Form matrix-free representation of linear components of system operator. More... | |
| virtual void | FormSystemMatrix (mfem::OperatorHandle &op, mfem::BlockVector &trueX, mfem::BlockVector &trueRHS) |
| Form matrix representation of linear components of system operator as a HypreParMatrix. More... | |
| void | FormJacobianMatrix (const mfem::Vector &u) |
| Compute Jacobian matrix at the provided vector of true DoFs of trial variables. More... | |
| template<class FormType > | |
| void | ApplyDomainBLFIntegrators (const std::string &trial_var_name, const std::string &test_var_name, std::shared_ptr< FormType > form, NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel >>>> &kernels_map, std::optional< mfem::real_t > scale_factor=std::nullopt) |
| Template method for applying BilinearFormIntegrators on domains from kernels to a BilinearForm, or MixedBilinearForm. More... | |
| void | ApplyDomainLFIntegrators (const std::string &test_var_name, std::shared_ptr< mfem::ParLinearForm > form, NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel >>>> &kernels_map) |
| Apply domain LinearFormIntegrators from kernels to the linear form associated with the supplied test variable. More... | |
| void | ApplyDomainNLFIntegrators (const std::string &test_var_name, std::shared_ptr< mfem::ParNonlinearForm > form, NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel >>>> &kernels_map, std::optional< mfem::real_t > scale_factor=std::nullopt) |
| Apply domain NonlinearFormIntegrators from kernels to the nonlinear form associated with the supplied test variable. More... | |
| template<class FormType > | |
| void | ApplyBoundaryBLFIntegrators (const std::string &trial_var_name, const std::string &test_var_name, std::shared_ptr< FormType > form, NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMIntegratedBC >>>> &integrated_bc_map, std::optional< mfem::real_t > scale_factor=std::nullopt) |
| Template method for applying BilinearFormIntegrators on boundaries from integrated boundary conditions to a BilinearForm, or MixedBilinearForm. More... | |
| void | ApplyBoundaryLFIntegrators (const std::string &test_var_name, std::shared_ptr< mfem::ParLinearForm > form, NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMIntegratedBC >>>> &integrated_bc_map) |
| Apply boundary LinearFormIntegrators from integrated boundary conditions to the linear form associated with the supplied test variable. More... | |
| void | ApplyBoundaryNLFIntegrators (const std::string &test_var_name, std::shared_ptr< mfem::ParNonlinearForm > form, NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMIntegratedBC >>>> &integrated_bc_map, std::optional< mfem::real_t > scale_factor=std::nullopt) |
| Apply boundary NonlinearFormIntegrators from integrated boundary conditions to the nonlinear form associated with the supplied test variable. More... | |
Protected Attributes | |
| std::vector< std::string > | _coupled_var_names |
| Names of all trial variables of kernels and boundary conditions added to this EquationSystem. More... | |
| std::vector< std::string > | _trial_var_names |
| Subset of _coupled_var_names of all variables corresponding to gridfunctions with degrees of freedom that comprise the state vector of this EquationSystem. More... | |
| std::vector< std::string > | _eliminated_var_names |
| Names of all coupled variables without a corresponding test variable. More... | |
| Moose::MFEM::GridFunctions | _eliminated_variables |
| Pointers to coupled variables not part of the reduced EquationSystem. More... | |
| std::vector< std::string > | _test_var_names |
| Names of all test variables corresponding to linear forms in this equation system. More... | |
| std::vector< mfem::ParFiniteElementSpace * > | _test_pfespaces |
| Pointers to finite element spaces associated with test variables. More... | |
| std::vector< mfem::ParFiniteElementSpace * > | _coupled_pfespaces |
| Pointers to finite element spaces associated with coupled variables. More... | |
| NamedFieldsMap< mfem::ParBilinearForm > | _blfs |
| NamedFieldsMap< mfem::ParLinearForm > | _lfs |
| NamedFieldsMap< mfem::ParNonlinearForm > | _nlfs |
| NamedFieldsMap< NamedFieldsMap< mfem::ParMixedBilinearForm > > | _mblfs |
| std::vector< std::unique_ptr< mfem::ParGridFunction > > | _var_ess_constraints |
| Gridfunctions holding essential constraints from Dirichlet BCs. More... | |
| std::vector< mfem::Array< int > > | _ess_tdof_lists |
| std::vector< mfem::Array< int > > | _ess_markers |
| mfem::Array2D< const mfem::HypreParMatrix * > | _h_blocks |
| mfem::Array2D< const mfem::HypreParMatrix * > | _jacobian_blocks |
| NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel > > > > | _kernels_map |
| Arrays to store kernels to act on each component of weak form. More... | |
| NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMIntegratedBC > > > > | _integrated_bc_map |
| Arrays to store integrated BCs to act on each component of weak form. More... | |
| NamedFieldsMap< std::vector< std::shared_ptr< MFEMEssentialBC > > > | _essential_bc_map |
| Arrays to store essential BCs to act on each component of weak form. More... | |
| mfem::OperatorHandle | _jacobian |
| mfem::OperatorHandle | _linear_operator |
| mfem::AssemblyLevel | _assembly_level |
| Moose::MFEM::GridFunctions * | _gfuncs |
| mfem::Array< int > | _block_true_offsets |
| const mfem::Vector * | _linearization_point = nullptr |
| bool | _non_linear = false |
| bool | _gradient_required = false |
| CoefficientManager * | _coefficient_manager = nullptr |
Owns the weak-form mathematics of a MOOSE MFEM problem.
An EquationSystem stores weak-form components (bilinear, linear, mixed-bilinear, and nonlinear forms) contributed by kernels and boundary conditions. It forms the constrained linear part, keeps nonlinear action forms for residual/Jacobian evaluation, and exposes the solve interface as an mfem::Operator. It is responsible for applying essential-DoF constraints and propagating either itself or the assembled linear operator (and bilinear form, for LOR) to the configured solver tree.
EquationSystem is not responsible for grid-function bookkeeping, time stepping, or solver selection - those belong to the ProblemOperator layer.
Definition at line 44 of file EquationSystem.h.
|
default |
|
override |
Definition at line 20 of file EquationSystem.C.
|
protectedvirtual |
Add coupled variable to EquationSystem.
Definition at line 57 of file EquationSystem.C.
Referenced by Moose::MFEM::ComplexEquationSystem::AddComplexIntegratedBC(), Moose::MFEM::ComplexEquationSystem::AddComplexKernel(), AddIntegratedBC(), and AddKernel().
|
protectedvirtual |
Add eliminated variable to EquationSystem.
Definition at line 64 of file EquationSystem.C.
Referenced by Moose::MFEM::TimeDependentEquationSystem::AddKernel().
|
virtual |
Add BC associated with essentially constrained DoFs on boundaries.
Definition at line 139 of file EquationSystem.C.
Referenced by MFEMProblem::addBoundaryCondition().
|
virtual |
Definition at line 116 of file EquationSystem.C.
Referenced by MFEMProblem::addBoundaryCondition().
|
virtual |
Add kernels.
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 93 of file EquationSystem.C.
Referenced by Moose::MFEM::TimeDependentEquationSystem::AddKernel(), and MFEMProblem::addKernel().
|
protectedvirtual |
Add test variable to EquationSystem.
Definition at line 71 of file EquationSystem.C.
Referenced by Moose::MFEM::ComplexEquationSystem::AddComplexEssentialBCs(), Moose::MFEM::ComplexEquationSystem::AddComplexIntegratedBC(), Moose::MFEM::ComplexEquationSystem::AddComplexKernel(), AddEssentialBC(), AddIntegratedBC(), Moose::MFEM::TimeDependentEquationSystem::AddKernel(), and AddKernel().
|
protected |
Template method for applying BilinearFormIntegrators on boundaries from integrated boundary conditions to a BilinearForm, or MixedBilinearForm.
Definition at line 385 of file EquationSystem.h.
|
protected |
Apply boundary LinearFormIntegrators from integrated boundary conditions to the linear form associated with the supplied test variable.
Definition at line 649 of file EquationSystem.C.
Referenced by BuildLinearForms().
|
protected |
Apply boundary NonlinearFormIntegrators from integrated boundary conditions to the nonlinear form associated with the supplied test variable.
Definition at line 674 of file EquationSystem.C.
Referenced by BuildNonlinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), and BuildNonlinearForms().
|
protected |
Template method for applying BilinearFormIntegrators on domains from kernels to a BilinearForm, or MixedBilinearForm.
Definition at line 357 of file EquationSystem.h.
|
protected |
Apply domain LinearFormIntegrators from kernels to the linear form associated with the supplied test variable.
Definition at line 594 of file EquationSystem.C.
Referenced by BuildLinearForms().
|
protected |
Apply domain NonlinearFormIntegrators from kernels to the nonlinear form associated with the supplied test variable.
Definition at line 617 of file EquationSystem.C.
Referenced by BuildNonlinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), and BuildNonlinearForms().
|
protectedvirtual |
Apply essential BC(s) associated with var_name to set true DoFs of trial_gf and update markers of all essential boundaries.
Definition at line 204 of file EquationSystem.C.
Referenced by ApplyEssentialBCs().
|
protectedvirtual |
Update all essentially constrained true DoF markers and values on boundaries.
Reimplemented in Moose::MFEM::ComplexEquationSystem, and Moose::MFEM::EigenproblemEquationSystem.
Definition at line 222 of file EquationSystem.C.
Referenced by BuildLinearForms().
| std::shared_ptr< mfem::ParBilinearForm > Moose::MFEM::EquationSystem::BuildBilinearFormForFESpace | ( | const std::string & | var_name, |
| mfem::ParFiniteElementSpace & | fespace, | ||
| mfem::AssemblyLevel | assembly_level | ||
| ) |
Build a fresh ParBilinearForm on the given FESpace using the same kernels as the main system's bilinear form for var_name.
Caller owns the returned form.
Definition at line 716 of file EquationSystem.C.
|
protectedvirtual |
Build bilinear forms (diagonal Jacobian contributions)
Reimplemented in Moose::MFEM::ComplexEquationSystem, and Moose::MFEM::TimeDependentEquationSystem.
Definition at line 525 of file EquationSystem.C.
Referenced by BuildEquationSystem().
|
virtual |
Build all forms comprising this EquationSystem.
Reimplemented in Moose::MFEM::ComplexEquationSystem.
Definition at line 585 of file EquationSystem.C.
Referenced by Moose::MFEM::EigenproblemESProblemOperator::FormEquationSystemOperator(), and FormSystem().
|
protectedvirtual |
Build linear forms and eliminate constrained DoFs.
Reimplemented in Moose::MFEM::ComplexEquationSystem.
Definition at line 482 of file EquationSystem.C.
Referenced by BuildEquationSystem().
|
protectedvirtual |
Build mixed bilinear forms (off-diagonal Jacobian contributions)
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 546 of file EquationSystem.C.
Referenced by BuildEquationSystem().
| std::shared_ptr< mfem::ParNonlinearForm > Moose::MFEM::EquationSystem::BuildNonlinearFormForFESpace | ( | const std::string & | var_name, |
| mfem::ParFiniteElementSpace & | fespace, | ||
| mfem::AssemblyLevel | assembly_level | ||
| ) |
Build a fresh ParNonlinearForm on the given FESpace using the same kernels as the main system's nonlinear form for var_name.
Caller owns the returned form.
Definition at line 729 of file EquationSystem.C.
|
protectedvirtual |
Build non-linear action forms.
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 509 of file EquationSystem.C.
Referenced by BuildEquationSystem().
|
virtual |
Compute the contribution to the residual from nonlinear forms only.
Definition at line 400 of file EquationSystem.C.
Referenced by Mult().
|
protected |
Deletes the HypreParMatrix associated with any pointer stored in _h_blocks, and then proceeds to delete all dynamically allocated memory for _h_blocks itself, resetting all dimensions to zero.
Definition at line 27 of file EquationSystem.C.
Referenced by Moose::MFEM::ComplexEquationSystem::FormSystemMatrix(), FormSystemMatrix(), and ~EquationSystem().
|
protected |
Deletes the HypreParMatrix associated with any pointer stored in _jacobian_blocks, and then proceeds to delete all dynamically allocated memory for _jacobian_blocks itself, resetting all dimensions to zero.
Definition at line 40 of file EquationSystem.C.
Referenced by FormJacobianMatrix(), and ~EquationSystem().
|
protectedvirtual |
Perform trivial eliminations of coupled variables lacking corresponding test variables.
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 246 of file EquationSystem.C.
Referenced by BuildLinearForms(), and Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables().
|
protected |
Compute Jacobian matrix at the provided vector of true DoFs of trial variables.
Definition at line 419 of file EquationSystem.C.
Referenced by GetGradient().
|
protectedvirtual |
Form linear components of system based on on- and off-diagonal bilinear form contributions, populate solution and RHS vectors of true DoFs, and apply constraints.
Definition at line 259 of file EquationSystem.C.
Referenced by FormSystem().
| void Moose::MFEM::EquationSystem::FormSystem | ( | mfem::BlockVector & | trueX, |
| mfem::BlockVector & | trueRHS | ||
| ) |
Build all weak-form components via BuildEquationSystem(), form the constrained linear part of the system, and populate the true-DoF vectors used by the solve.
For nonlinear problems, nonlinear forms are registered here but are not folded into the assembled linear operator. Their residual action is evaluated by Mult(), and any Jacobian contribution is formed at the current nonlinear iterate by GetGradient().
This is the single public entry point for callers that want the equation system prepared for a solve. Subclasses customize the form-building step by overriding BuildEquationSystem().
Definition at line 367 of file EquationSystem.C.
Referenced by Moose::MFEM::TimeDependentEquationSystemProblemOperator::FormEquationSystemOperator(), and Moose::MFEM::EquationSystemProblemOperator::FormEquationSystemOperator().
|
protectedvirtual |
Form matrix representation of linear components of system operator as a HypreParMatrix.
Used when EquationSystem assembly level is set to 'LEGACY'.
Reimplemented in Moose::MFEM::ComplexEquationSystem.
Definition at line 303 of file EquationSystem.C.
Referenced by FormLinearSystem().
|
protectedvirtual |
Form matrix-free representation of linear components of system operator.
Used when EquationSystem assembly level is set to 'FULL', 'ELEMENT', 'PARTIAL', or 'NONE'.
Reimplemented in Moose::MFEM::ComplexEquationSystem.
Definition at line 273 of file EquationSystem.C.
Referenced by FormLinearSystem().
|
inline |
Definition at line 106 of file EquationSystem.h.
|
inline |
Getter for block true offsets associated with the EquationSystem operator.
Definition at line 101 of file EquationSystem.h.
| mfem::Array< int > & Moose::MFEM::EquationSystem::GetEssentialBoundaryMarkers | ( | const std::string & | var_name | ) |
Return the essential boundary attribute marker array for a given trial variable.
The returned array has size == pmesh.bdr_attributes.Max() with 1 at essential boundaries.
Definition at line 740 of file EquationSystem.C.
|
override |
Get Jacobian at the provided vector of true DoFs of trial variables.
Definition at line 450 of file EquationSystem.C.
|
inline |
Definition at line 114 of file EquationSystem.h.
| const mfem::Vector & Moose::MFEM::EquationSystem::GetLinearizationPoint | ( | ) | const |
The true-DoF vector used for the most recent Jacobian linearization.
Definition at line 708 of file EquationSystem.C.
|
inline |
Get operator handle for linear component of system operator.
Definition at line 80 of file EquationSystem.h.
|
inline |
Definition at line 98 of file EquationSystem.h.
Referenced by Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::SetGridFunctions(), and Moose::MFEM::EquationSystemProblemOperator::SetGridFunctions().
|
inline |
Definition at line 97 of file EquationSystem.h.
Referenced by Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::SetGridFunctions(), and Moose::MFEM::EquationSystemProblemOperator::SetGridFunctions().
|
virtual |
Initialise.
Reimplemented in Moose::MFEM::ComplexEquationSystem.
Definition at line 153 of file EquationSystem.C.
|
inlinevirtual |
Reimplemented in Moose::MFEM::ComplexEquationSystem.
Definition at line 152 of file EquationSystem.h.
|
inlinevirtual |
Reimplemented in Moose::MFEM::EigenproblemEquationSystem.
Definition at line 154 of file EquationSystem.h.
|
inline |
Definition at line 158 of file EquationSystem.h.
|
inline |
Definition at line 160 of file EquationSystem.h.
|
inlinevirtual |
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 156 of file EquationSystem.h.
|
override |
Compute residual y = Mu.
Definition at line 382 of file EquationSystem.C.
|
inline |
|
inline |
Set the coefficient manager to notify when trial variables are updated, so that stored projections of solution-dependent coefficients are invalidated.
Definition at line 90 of file EquationSystem.h.
|
inline |
Set whether an external object (such as a nonlinear solver) requires Jacobian information for this EquationSystem.
Definition at line 86 of file EquationSystem.h.
|
protectedvirtual |
Set trial variable names from subset of coupled variables that have an associated test variable.
Definition at line 78 of file EquationSystem.C.
Referenced by Moose::MFEM::ComplexEquationSystem::Init(), and Init().
|
virtual |
Update variable from solution vector after solve.
Reimplemented in Moose::MFEM::ComplexEquationSystem.
Definition at line 468 of file EquationSystem.C.
Referenced by ComputeNonlinearResidual().
|
protected |
Definition at line 50 of file EquationSystem.C.
Referenced by AddCoupledVariableNameIfMissing(), AddEliminatedVariableNameIfMissing(), AddTestVariableNameIfMissing(), EliminateCoupledVariables(), and SetTrialVariableNames().
|
protected |
Definition at line 334 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), Moose::MFEM::ComplexEquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), BuildMixedBilinearForms(), FormLinearSystem(), GetGradient(), Moose::MFEM::ComplexEquationSystem::Init(), and Init().
|
protected |
Definition at line 309 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EigenproblemEquationSystem::FormEigenproblemMatrix(), FormSystemMatrix(), FormSystemOperator(), and GetBilinearForm().
|
protected |
Definition at line 339 of file EquationSystem.h.
Referenced by ComputeNonlinearResidual(), FormJacobianMatrix(), FormSystem(), and GetBlockOffsets().
|
protected |
Definition at line 348 of file EquationSystem.h.
Referenced by SetCoefficientManager(), Moose::MFEM::ComplexEquationSystem::SetTrialVariablesFromTrueVectors(), and SetTrialVariablesFromTrueVectors().
|
protected |
Pointers to finite element spaces associated with coupled variables.
Definition at line 306 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), BuildMixedBilinearForms(), Moose::MFEM::ComplexEquationSystem::Init(), and Init().
|
protected |
Names of all trial variables of kernels and boundary conditions added to this EquationSystem.
Definition at line 292 of file EquationSystem.h.
Referenced by AddCoupledVariableNameIfMissing(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), BuildMixedBilinearForms(), Moose::MFEM::ComplexEquationSystem::Init(), Init(), and SetTrialVariableNames().
|
protected |
Names of all coupled variables without a corresponding test variable.
Definition at line 298 of file EquationSystem.h.
Referenced by AddEliminatedVariableNameIfMissing(), Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables(), EliminateCoupledVariables(), Moose::MFEM::ComplexEquationSystem::Init(), Init(), and SetTrialVariableNames().
|
protected |
Pointers to coupled variables not part of the reduced EquationSystem.
Definition at line 300 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables(), EliminateCoupledVariables(), and Init().
|
protected |
Definition at line 317 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), Moose::MFEM::ComplexEquationSystem::ApplyEssentialBCs(), ApplyEssentialBCs(), Moose::MFEM::EigenproblemEquationSystem::FormEigenproblemMatrix(), Moose::MFEM::EigenproblemEquationSystem::FormMassMatrix(), and GetEssentialBoundaryMarkers().
|
protected |
Definition at line 316 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), Moose::MFEM::ComplexEquationSystem::ApplyEssentialBCs(), ApplyEssentialBCs(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), BuildNonlinearForms(), Moose::MFEM::ComplexEquationSystem::FormSystemMatrix(), FormSystemMatrix(), Moose::MFEM::ComplexEquationSystem::FormSystemOperator(), and FormSystemOperator().
|
protected |
Arrays to store essential BCs to act on each component of weak form.
Named according to test variable.
Definition at line 328 of file EquationSystem.h.
Referenced by AddEssentialBC(), and ApplyEssentialBC().
|
protected |
Definition at line 337 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), ApplyEssentialBCs(), GetGridFunction(), Init(), and SetTrialVariablesFromTrueVectors().
|
protected |
Definition at line 345 of file EquationSystem.h.
Referenced by ApplyBoundaryNLFIntegrators(), ApplyDomainNLFIntegrators(), and SetGradientRequired().
|
protected |
Definition at line 319 of file EquationSystem.h.
Referenced by DeleteHBlocks(), DeleteJacobianBlocks(), FormJacobianMatrix(), Moose::MFEM::ComplexEquationSystem::FormSystemMatrix(), and FormSystemMatrix().
|
protected |
Arrays to store integrated BCs to act on each component of weak form.
Named according to test and trial variables.
Definition at line 325 of file EquationSystem.h.
Referenced by AddIntegratedBC(), BuildBilinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), BuildBilinearForms(), BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), BuildNonlinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), and BuildNonlinearForms().
|
mutableprotected |
Definition at line 331 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::FormEigenproblemMatrix(), FormJacobianMatrix(), GetGradient(), and Moose::MFEM::EigenproblemEquationSystem::PrepareEigensolver().
|
protected |
Definition at line 319 of file EquationSystem.h.
Referenced by DeleteHBlocks(), DeleteJacobianBlocks(), and FormJacobianMatrix().
|
protected |
Arrays to store kernels to act on each component of weak form.
Named according to test and trial variables.
Definition at line 322 of file EquationSystem.h.
Referenced by AddKernel(), BuildBilinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), BuildBilinearForms(), BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), BuildMixedBilinearForms(), BuildNonlinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), and BuildNonlinearForms().
|
protected |
Definition at line 310 of file EquationSystem.h.
Referenced by BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables(), EliminateCoupledVariables(), FormSystemMatrix(), and FormSystemOperator().
|
mutableprotected |
Definition at line 333 of file EquationSystem.h.
Referenced by FormSystem(), GetGradient(), GetLinearOperator(), Moose::MFEM::ComplexEquationSystem::Mult(), and Mult().
|
mutableprotected |
Definition at line 341 of file EquationSystem.h.
Referenced by GetGradient(), and GetLinearizationPoint().
|
protected |
Definition at line 312 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), BuildMixedBilinearForms(), EliminateCoupledVariables(), and FormSystemMatrix().
|
protected |
Definition at line 311 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), BuildNonlinearForms(), ComputeNonlinearResidual(), and FormJacobianMatrix().
|
protected |
Definition at line 343 of file EquationSystem.h.
Referenced by ApplyBoundaryNLFIntegrators(), ApplyDomainNLFIntegrators(), ComputeNonlinearResidual(), GetGradient(), IsNonlinear(), Mult(), and Nonlinear().
|
protected |
Pointers to finite element spaces associated with test variables.
Definition at line 304 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), Moose::MFEM::ComplexEquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::ComplexEquationSystem::BuildLinearForms(), BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), BuildMixedBilinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), BuildNonlinearForms(), Moose::MFEM::EigenproblemEquationSystem::FormMassMatrix(), FormSystemMatrix(), Moose::MFEM::ComplexEquationSystem::Init(), and Init().
|
protected |
Names of all test variables corresponding to linear forms in this equation system.
Definition at line 302 of file EquationSystem.h.
Referenced by AddTestVariableNameIfMissing(), Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), Moose::MFEM::ComplexEquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EigenproblemEquationSystem::BuildEigenproblemJacobian(), Moose::MFEM::ComplexEquationSystem::BuildLinearForms(), BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), BuildMixedBilinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), BuildNonlinearForms(), ComputeNonlinearResidual(), Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables(), EliminateCoupledVariables(), Moose::MFEM::EigenproblemEquationSystem::FormEigenproblemMatrix(), FormJacobianMatrix(), FormLinearSystem(), Moose::MFEM::ComplexEquationSystem::FormSystemMatrix(), FormSystemMatrix(), Moose::MFEM::ComplexEquationSystem::FormSystemOperator(), FormSystemOperator(), GetTestVarNames(), Moose::MFEM::ComplexEquationSystem::Init(), Init(), IsMultivariate(), and SetTrialVariableNames().
|
protected |
Subset of _coupled_var_names of all variables corresponding to gridfunctions with degrees of freedom that comprise the state vector of this EquationSystem.
This will differ from _coupled_var_names when time derivatives or other eliminated variables are present.
Definition at line 296 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), Moose::MFEM::ComplexEquationSystem::ApplyEssentialBCs(), ApplyEssentialBCs(), Moose::MFEM::EigenproblemEquationSystem::BuildEigenproblemJacobian(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), FormJacobianMatrix(), FormLinearSystem(), FormSystem(), Moose::MFEM::ComplexEquationSystem::FormSystemMatrix(), FormSystemMatrix(), FormSystemOperator(), GetEssentialBoundaryMarkers(), GetTrialVarNames(), Init(), SetTrialVariableNames(), Moose::MFEM::ComplexEquationSystem::SetTrialVariablesFromTrueVectors(), and SetTrialVariablesFromTrueVectors().
|
protected |
Gridfunctions holding essential constraints from Dirichlet BCs.
Definition at line 315 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), ApplyEssentialBCs(), FormSystemMatrix(), FormSystemOperator(), and Init().
1.8.14