#include <ComplexEquationSystem.h>
Public Member Functions | |
| ComplexEquationSystem ()=default | |
| ~ComplexEquationSystem ()=default | |
| virtual void | Init (GridFunctions &gridfunctions, ComplexGridFunctions &cmplx_gridfunctions, mfem::AssemblyLevel assembly_level) override |
| Initialise. More... | |
| virtual void | Mult (const mfem::Vector &x, mfem::Vector &y) const override |
| Nonlinear Mult (Used by Newton-solver not necessarily nonlinear) More... | |
| virtual void | BuildEquationSystem () override |
| Build all forms comprising this EquationSystem. More... | |
| virtual void | BuildLinearForms () override |
| Build linear forms and eliminate constrained DoFs. More... | |
| virtual void | BuildBilinearForms () override |
| Build bilinear forms (diagonal Jacobian contributions) More... | |
| virtual void | ApplyComplexEssentialBC (const std::string &var_name, mfem::ParComplexGridFunction &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 () override |
| Update all essentially constrained true DoF markers and values on boundaries. More... | |
| void | AddComplexKernel (std::shared_ptr< MFEMComplexKernel > kernel) |
| Add complex kernels. More... | |
| void | AddComplexIntegratedBC (std::shared_ptr< MFEMComplexIntegratedBC > bc) |
| Add complex integrated BCs. More... | |
| void | AddComplexEssentialBCs (std::shared_ptr< MFEMComplexEssentialBC > bc) |
| Add complex essential BCs. More... | |
| virtual void | FormSystemOperator (mfem::OperatorHandle &op, mfem::BlockVector &trueX, mfem::BlockVector &trueRHS) override |
| Form matrix-free representation of system operator. More... | |
| virtual void | FormSystemMatrix (mfem::OperatorHandle &op, mfem::BlockVector &trueX, mfem::BlockVector &trueRHS) override |
| Form matrix representation of system operator as a HypreParMatrix. More... | |
| virtual void | SetTrialVariablesFromTrueVectors (const mfem::BlockVector &trueX) const override |
| Update variable from solution vector after solve. 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< MFEMComplexKernel >>>> &kernels_map) |
| Template method for applying BilinearFormIntegrators on domains from kernels to a SesquilinearForm. More... | |
| void | ApplyDomainLFIntegrators (const std::string &test_var_name, std::shared_ptr< mfem::ParComplexLinearForm > form, NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMComplexKernel >>>> &kernels_map) |
| Method for applying LinearFormIntegrators on domains from kernels to a ParComplexLinearForm. 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< MFEMComplexIntegratedBC >>>> &integrated_bc_map) |
| Template method for applying BilinearFormIntegrators on boudaries from kernels to a SesquilinearForm. More... | |
| void | ApplyBoundaryLFIntegrators (const std::string &test_var_name, std::shared_ptr< mfem::ParComplexLinearForm > form, NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMComplexIntegratedBC >>>> &integrated_bc_map) |
| Method for applying LinearFormIntegrators on boundaries from kernels to a ParComplexLinearForm. More... | |
| bool | IsComplex () const 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... | |
| 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... | |
| 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... | |
| 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 | IsEigen () const |
| virtual bool | IsTimeDependent () const |
| bool | IsMultivariate () const |
| bool | IsNonlinear () const |
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 | EliminateCoupledVariables () |
| Perform trivial eliminations of coupled variables lacking corresponding test variables. More... | |
| virtual void | BuildNonlinearForms () |
| Build non-linear action forms. 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... | |
| 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 | |
| NamedFieldsMap< mfem::ParSesquilinearForm > | _slfs |
| NamedFieldsMap< mfem::ParComplexLinearForm > | _clfs |
| NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMComplexKernel > > > > | _cmplx_kernels_map |
| NamedFieldsMap< NamedFieldsMap< std::vector< std::shared_ptr< MFEMComplexIntegratedBC > > > > | _cmplx_integrated_bc_map |
| NamedFieldsMap< std::vector< std::shared_ptr< MFEMComplexEssentialBC > > > | _cmplx_essential_bc_map |
| ComplexGridFunctions | _cmplx_eliminated_variables |
| Pointers to coupled variables not part of the reduced EquationSystem. More... | |
| std::vector< std::unique_ptr< mfem::ParComplexGridFunction > > | _cmplx_var_ess_constraints |
| Complex Gridfunctions holding essential constraints from Dirichlet BCs. More... | |
| Moose::MFEM::ComplexGridFunctions * | _complex_gfuncs |
| 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 |
Definition at line 19 of file ComplexEquationSystem.h.
|
default |
|
default |
| void Moose::MFEM::ComplexEquationSystem::AddComplexEssentialBCs | ( | std::shared_ptr< MFEMComplexEssentialBC > | bc | ) |
Add complex essential BCs.
Definition at line 195 of file ComplexEquationSystem.C.
Referenced by MFEMProblem::addBoundaryCondition().
| void Moose::MFEM::ComplexEquationSystem::AddComplexIntegratedBC | ( | std::shared_ptr< MFEMComplexIntegratedBC > | bc | ) |
Add complex integrated BCs.
Definition at line 172 of file ComplexEquationSystem.C.
Referenced by MFEMProblem::addBoundaryCondition().
| void Moose::MFEM::ComplexEquationSystem::AddComplexKernel | ( | std::shared_ptr< MFEMComplexKernel > | kernel | ) |
Add complex kernels.
Definition at line 149 of file ComplexEquationSystem.C.
Referenced by MFEMProblem::addKernel().
|
protectedvirtualinherited |
Add coupled variable to EquationSystem.
Definition at line 57 of file EquationSystem.C.
Referenced by AddComplexIntegratedBC(), AddComplexKernel(), Moose::MFEM::EquationSystem::AddIntegratedBC(), and Moose::MFEM::EquationSystem::AddKernel().
|
protectedvirtualinherited |
Add eliminated variable to EquationSystem.
Definition at line 64 of file EquationSystem.C.
Referenced by Moose::MFEM::TimeDependentEquationSystem::AddKernel().
|
virtualinherited |
Add BC associated with essentially constrained DoFs on boundaries.
Definition at line 139 of file EquationSystem.C.
Referenced by MFEMProblem::addBoundaryCondition().
|
virtualinherited |
Definition at line 116 of file EquationSystem.C.
Referenced by MFEMProblem::addBoundaryCondition().
|
virtualinherited |
Add kernels.
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 93 of file EquationSystem.C.
Referenced by Moose::MFEM::TimeDependentEquationSystem::AddKernel(), and MFEMProblem::addKernel().
|
protectedvirtualinherited |
Add test variable to EquationSystem.
Definition at line 71 of file EquationSystem.C.
Referenced by AddComplexEssentialBCs(), AddComplexIntegratedBC(), AddComplexKernel(), Moose::MFEM::EquationSystem::AddEssentialBC(), Moose::MFEM::EquationSystem::AddIntegratedBC(), Moose::MFEM::TimeDependentEquationSystem::AddKernel(), and Moose::MFEM::EquationSystem::AddKernel().
| void Moose::MFEM::ComplexEquationSystem::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< MFEMComplexIntegratedBC >>>> & | integrated_bc_map | ||
| ) |
Template method for applying BilinearFormIntegrators on boudaries from kernels to a SesquilinearForm.
Definition at line 186 of file ComplexEquationSystem.h.
|
protectedinherited |
Template method for applying BilinearFormIntegrators on boundaries from integrated boundary conditions to a BilinearForm, or MixedBilinearForm.
Definition at line 385 of file EquationSystem.h.
|
inline |
Method for applying LinearFormIntegrators on boundaries from kernels to a ParComplexLinearForm.
Definition at line 214 of file ComplexEquationSystem.h.
Referenced by BuildLinearForms().
|
protectedinherited |
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 Moose::MFEM::EquationSystem::BuildLinearForms().
|
protectedinherited |
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 Moose::MFEM::EquationSystem::BuildNonlinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), and Moose::MFEM::EquationSystem::BuildNonlinearForms().
|
virtual |
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 107 of file ComplexEquationSystem.C.
Referenced by ApplyEssentialBCs().
| void Moose::MFEM::ComplexEquationSystem::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< MFEMComplexKernel >>>> & | kernels_map | ||
| ) |
Template method for applying BilinearFormIntegrators on domains from kernels to a SesquilinearForm.
Definition at line 134 of file ComplexEquationSystem.h.
|
protectedinherited |
Template method for applying BilinearFormIntegrators on domains from kernels to a BilinearForm, or MixedBilinearForm.
Definition at line 357 of file EquationSystem.h.
|
inline |
Method for applying LinearFormIntegrators on domains from kernels to a ParComplexLinearForm.
Definition at line 160 of file ComplexEquationSystem.h.
Referenced by BuildLinearForms().
|
protectedinherited |
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 Moose::MFEM::EquationSystem::BuildLinearForms().
|
protectedinherited |
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 Moose::MFEM::EquationSystem::BuildNonlinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), and Moose::MFEM::EquationSystem::BuildNonlinearForms().
|
protectedvirtualinherited |
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 Moose::MFEM::EquationSystem::ApplyEssentialBCs().
|
overridevirtual |
Update all essentially constrained true DoF markers and values on boundaries.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 125 of file ComplexEquationSystem.C.
Referenced by BuildLinearForms().
|
inherited |
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.
|
overridevirtual |
Build bilinear forms (diagonal Jacobian contributions)
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 85 of file ComplexEquationSystem.C.
Referenced by BuildEquationSystem().
|
overridevirtual |
Build all forms comprising this EquationSystem.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 54 of file ComplexEquationSystem.C.
|
overridevirtual |
Build linear forms and eliminate constrained DoFs.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 61 of file ComplexEquationSystem.C.
Referenced by BuildEquationSystem().
|
protectedvirtualinherited |
Build mixed bilinear forms (off-diagonal Jacobian contributions)
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 546 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::BuildEquationSystem().
|
inherited |
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.
|
protectedvirtualinherited |
Build non-linear action forms.
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 509 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::BuildEquationSystem().
|
virtualinherited |
Compute the contribution to the residual from nonlinear forms only.
Definition at line 400 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::Mult().
|
protectedinherited |
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 FormSystemMatrix(), Moose::MFEM::EquationSystem::FormSystemMatrix(), and Moose::MFEM::EquationSystem::~EquationSystem().
|
protectedinherited |
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 Moose::MFEM::EquationSystem::FormJacobianMatrix(), and Moose::MFEM::EquationSystem::~EquationSystem().
|
protectedvirtualinherited |
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 Moose::MFEM::EquationSystem::BuildLinearForms(), and Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables().
|
protectedinherited |
Compute Jacobian matrix at the provided vector of true DoFs of trial variables.
Definition at line 419 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::GetGradient().
|
protectedvirtualinherited |
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 Moose::MFEM::EquationSystem::FormSystem().
|
inherited |
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().
|
overridevirtual |
Form matrix representation of system operator as a HypreParMatrix.
Used when EquationSystem assembly level is set to 'LEGACY'.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 236 of file ComplexEquationSystem.C.
|
overridevirtual |
Form matrix-free representation of system operator.
Used when EquationSystem assembly level is set to 'FULL', 'ELEMENT', 'PARTIAL', or 'NONE'.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 209 of file ComplexEquationSystem.C.
|
inlineinherited |
Definition at line 106 of file EquationSystem.h.
|
inlineinherited |
Getter for block true offsets associated with the EquationSystem operator.
Definition at line 101 of file EquationSystem.h.
|
inherited |
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.
|
overrideinherited |
Get Jacobian at the provided vector of true DoFs of trial variables.
Definition at line 450 of file EquationSystem.C.
|
inlineinherited |
Definition at line 114 of file EquationSystem.h.
|
inherited |
The true-DoF vector used for the most recent Jacobian linearization.
Definition at line 708 of file EquationSystem.C.
|
inlineinherited |
Get operator handle for linear component of system operator.
Definition at line 80 of file EquationSystem.h.
|
inlineinherited |
Definition at line 98 of file EquationSystem.h.
Referenced by Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::SetGridFunctions(), and Moose::MFEM::EquationSystemProblemOperator::SetGridFunctions().
|
inlineinherited |
Definition at line 97 of file EquationSystem.h.
Referenced by Moose::MFEM::ComplexEquationSystemProblemOperator::SetGridFunctions(), Moose::MFEM::TimeDependentEquationSystemProblemOperator::SetGridFunctions(), and Moose::MFEM::EquationSystemProblemOperator::SetGridFunctions().
|
overridevirtual |
Initialise.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 11 of file ComplexEquationSystem.C.
|
inlineoverridevirtual |
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 106 of file ComplexEquationSystem.h.
|
inlinevirtualinherited |
Reimplemented in Moose::MFEM::EigenproblemEquationSystem.
Definition at line 154 of file EquationSystem.h.
|
inlineinherited |
Definition at line 158 of file EquationSystem.h.
|
inlineinherited |
Definition at line 160 of file EquationSystem.h.
|
inlinevirtualinherited |
Reimplemented in Moose::MFEM::TimeDependentEquationSystem.
Definition at line 156 of file EquationSystem.h.
|
overridevirtual |
Nonlinear Mult (Used by Newton-solver not necessarily nonlinear)
Definition at line 279 of file ComplexEquationSystem.C.
|
inlineinherited |
|
inlineinherited |
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.
|
inlineinherited |
Set whether an external object (such as a nonlinear solver) requires Jacobian information for this EquationSystem.
Definition at line 86 of file EquationSystem.h.
|
protectedvirtualinherited |
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 Init(), and Moose::MFEM::EquationSystem::Init().
|
overridevirtual |
Update variable from solution vector after solve.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 287 of file ComplexEquationSystem.C.
|
protectedinherited |
Definition at line 50 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::AddCoupledVariableNameIfMissing(), Moose::MFEM::EquationSystem::AddEliminatedVariableNameIfMissing(), Moose::MFEM::EquationSystem::AddTestVariableNameIfMissing(), Moose::MFEM::EquationSystem::EliminateCoupledVariables(), and Moose::MFEM::EquationSystem::SetTrialVariableNames().
|
protectedinherited |
Definition at line 334 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildBilinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::FormLinearSystem(), Moose::MFEM::EquationSystem::GetGradient(), Init(), and Moose::MFEM::EquationSystem::Init().
|
protectedinherited |
Definition at line 309 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildBilinearForms(), Moose::MFEM::EigenproblemEquationSystem::FormEigenproblemMatrix(), Moose::MFEM::EquationSystem::FormSystemMatrix(), Moose::MFEM::EquationSystem::FormSystemOperator(), and Moose::MFEM::EquationSystem::GetBilinearForm().
|
protectedinherited |
Definition at line 339 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::ComputeNonlinearResidual(), Moose::MFEM::EquationSystem::FormJacobianMatrix(), Moose::MFEM::EquationSystem::FormSystem(), and Moose::MFEM::EquationSystem::GetBlockOffsets().
|
protected |
Definition at line 111 of file ComplexEquationSystem.h.
Referenced by BuildLinearForms(), FormSystemMatrix(), and FormSystemOperator().
|
protected |
Pointers to coupled variables not part of the reduced EquationSystem.
Definition at line 123 of file ComplexEquationSystem.h.
Referenced by Init().
|
protected |
Definition at line 120 of file ComplexEquationSystem.h.
Referenced by AddComplexEssentialBCs(), and ApplyComplexEssentialBC().
|
protected |
Definition at line 117 of file ComplexEquationSystem.h.
Referenced by AddComplexIntegratedBC(), BuildBilinearForms(), and BuildLinearForms().
|
protected |
Definition at line 115 of file ComplexEquationSystem.h.
Referenced by AddComplexKernel(), BuildBilinearForms(), and BuildLinearForms().
|
protected |
Complex Gridfunctions holding essential constraints from Dirichlet BCs.
Definition at line 126 of file ComplexEquationSystem.h.
Referenced by ApplyEssentialBCs(), FormSystemMatrix(), FormSystemOperator(), and Init().
|
protectedinherited |
Definition at line 348 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::SetCoefficientManager(), SetTrialVariablesFromTrueVectors(), and Moose::MFEM::EquationSystem::SetTrialVariablesFromTrueVectors().
|
protected |
Definition at line 129 of file ComplexEquationSystem.h.
Referenced by ApplyEssentialBCs(), Init(), and SetTrialVariablesFromTrueVectors().
|
protectedinherited |
Pointers to finite element spaces associated with coupled variables.
Definition at line 306 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Init(), and Moose::MFEM::EquationSystem::Init().
|
protectedinherited |
Names of all trial variables of kernels and boundary conditions added to this EquationSystem.
Definition at line 292 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::AddCoupledVariableNameIfMissing(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Init(), Moose::MFEM::EquationSystem::Init(), and Moose::MFEM::EquationSystem::SetTrialVariableNames().
|
protectedinherited |
Names of all coupled variables without a corresponding test variable.
Definition at line 298 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::AddEliminatedVariableNameIfMissing(), Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables(), Moose::MFEM::EquationSystem::EliminateCoupledVariables(), Init(), Moose::MFEM::EquationSystem::Init(), and Moose::MFEM::EquationSystem::SetTrialVariableNames().
|
protectedinherited |
Pointers to coupled variables not part of the reduced EquationSystem.
Definition at line 300 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables(), Moose::MFEM::EquationSystem::EliminateCoupledVariables(), and Moose::MFEM::EquationSystem::Init().
|
protectedinherited |
Definition at line 317 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), ApplyEssentialBCs(), Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::EigenproblemEquationSystem::FormEigenproblemMatrix(), Moose::MFEM::EigenproblemEquationSystem::FormMassMatrix(), and Moose::MFEM::EquationSystem::GetEssentialBoundaryMarkers().
|
protectedinherited |
Definition at line 316 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), ApplyEssentialBCs(), Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), Moose::MFEM::EquationSystem::BuildNonlinearForms(), FormSystemMatrix(), Moose::MFEM::EquationSystem::FormSystemMatrix(), FormSystemOperator(), and Moose::MFEM::EquationSystem::FormSystemOperator().
|
protectedinherited |
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 Moose::MFEM::EquationSystem::AddEssentialBC(), and Moose::MFEM::EquationSystem::ApplyEssentialBC().
|
protectedinherited |
Definition at line 337 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::EquationSystem::GetGridFunction(), Moose::MFEM::EquationSystem::Init(), and Moose::MFEM::EquationSystem::SetTrialVariablesFromTrueVectors().
|
protectedinherited |
Definition at line 345 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::ApplyBoundaryNLFIntegrators(), Moose::MFEM::EquationSystem::ApplyDomainNLFIntegrators(), and Moose::MFEM::EquationSystem::SetGradientRequired().
|
protectedinherited |
Definition at line 319 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::DeleteHBlocks(), Moose::MFEM::EquationSystem::DeleteJacobianBlocks(), Moose::MFEM::EquationSystem::FormJacobianMatrix(), FormSystemMatrix(), and Moose::MFEM::EquationSystem::FormSystemMatrix().
|
protectedinherited |
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 Moose::MFEM::EquationSystem::AddIntegratedBC(), Moose::MFEM::EquationSystem::BuildBilinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::BuildNonlinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), and Moose::MFEM::EquationSystem::BuildNonlinearForms().
|
mutableprotectedinherited |
|
protectedinherited |
Definition at line 319 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::DeleteHBlocks(), Moose::MFEM::EquationSystem::DeleteJacobianBlocks(), and Moose::MFEM::EquationSystem::FormJacobianMatrix().
|
protectedinherited |
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 Moose::MFEM::EquationSystem::AddKernel(), Moose::MFEM::EquationSystem::BuildBilinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::BuildNonlinearFormForFESpace(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), and Moose::MFEM::EquationSystem::BuildNonlinearForms().
|
protectedinherited |
Definition at line 310 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables(), Moose::MFEM::EquationSystem::EliminateCoupledVariables(), Moose::MFEM::EquationSystem::FormSystemMatrix(), and Moose::MFEM::EquationSystem::FormSystemOperator().
|
mutableprotectedinherited |
Definition at line 333 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::FormSystem(), Moose::MFEM::EquationSystem::GetGradient(), Moose::MFEM::EquationSystem::GetLinearOperator(), Mult(), and Moose::MFEM::EquationSystem::Mult().
|
mutableprotectedinherited |
Definition at line 341 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::GetGradient(), and Moose::MFEM::EquationSystem::GetLinearizationPoint().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Definition at line 343 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::ApplyBoundaryNLFIntegrators(), Moose::MFEM::EquationSystem::ApplyDomainNLFIntegrators(), Moose::MFEM::EquationSystem::ComputeNonlinearResidual(), Moose::MFEM::EquationSystem::GetGradient(), Moose::MFEM::EquationSystem::IsNonlinear(), Moose::MFEM::EquationSystem::Mult(), and Moose::MFEM::EquationSystem::Nonlinear().
|
protected |
Definition at line 110 of file ComplexEquationSystem.h.
Referenced by BuildBilinearForms(), FormSystemMatrix(), and FormSystemOperator().
|
protectedinherited |
Pointers to finite element spaces associated with test variables.
Definition at line 304 of file EquationSystem.h.
Referenced by Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildBilinearForms(), BuildLinearForms(), Moose::MFEM::EquationSystem::BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), Moose::MFEM::EquationSystem::BuildNonlinearForms(), Moose::MFEM::EigenproblemEquationSystem::FormMassMatrix(), Moose::MFEM::EquationSystem::FormSystemMatrix(), Init(), and Moose::MFEM::EquationSystem::Init().
|
protectedinherited |
Names of all test variables corresponding to linear forms in this equation system.
Definition at line 302 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::AddTestVariableNameIfMissing(), Moose::MFEM::TimeDependentEquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildBilinearForms(), Moose::MFEM::EigenproblemEquationSystem::BuildEigenproblemJacobian(), BuildLinearForms(), Moose::MFEM::EquationSystem::BuildLinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Moose::MFEM::TimeDependentEquationSystem::BuildNonlinearForms(), Moose::MFEM::EquationSystem::BuildNonlinearForms(), Moose::MFEM::EquationSystem::ComputeNonlinearResidual(), Moose::MFEM::TimeDependentEquationSystem::EliminateCoupledVariables(), Moose::MFEM::EquationSystem::EliminateCoupledVariables(), Moose::MFEM::EigenproblemEquationSystem::FormEigenproblemMatrix(), Moose::MFEM::EquationSystem::FormJacobianMatrix(), Moose::MFEM::EquationSystem::FormLinearSystem(), FormSystemMatrix(), Moose::MFEM::EquationSystem::FormSystemMatrix(), FormSystemOperator(), Moose::MFEM::EquationSystem::FormSystemOperator(), Moose::MFEM::EquationSystem::GetTestVarNames(), Init(), Moose::MFEM::EquationSystem::Init(), Moose::MFEM::EquationSystem::IsMultivariate(), and Moose::MFEM::EquationSystem::SetTrialVariableNames().
|
protectedinherited |
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(), ApplyEssentialBCs(), Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::EigenproblemEquationSystem::BuildEigenproblemJacobian(), Moose::MFEM::TimeDependentEquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::FormJacobianMatrix(), Moose::MFEM::EquationSystem::FormLinearSystem(), Moose::MFEM::EquationSystem::FormSystem(), FormSystemMatrix(), Moose::MFEM::EquationSystem::FormSystemMatrix(), Moose::MFEM::EquationSystem::FormSystemOperator(), Moose::MFEM::EquationSystem::GetEssentialBoundaryMarkers(), Moose::MFEM::EquationSystem::GetTrialVarNames(), Moose::MFEM::EquationSystem::Init(), Moose::MFEM::EquationSystem::SetTrialVariableNames(), SetTrialVariablesFromTrueVectors(), and Moose::MFEM::EquationSystem::SetTrialVariablesFromTrueVectors().
|
protectedinherited |
Gridfunctions holding essential constraints from Dirichlet BCs.
Definition at line 315 of file EquationSystem.h.
Referenced by Moose::MFEM::EigenproblemEquationSystem::ApplyEssentialBCs(), Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::EquationSystem::FormSystemMatrix(), Moose::MFEM::EquationSystem::FormSystemOperator(), and Moose::MFEM::EquationSystem::Init().
1.8.14