Class to store weak form components for time dependent PDEs. More...
#include <EquationSystem.h>
Public Member Functions | |
TimeDependentEquationSystem () | |
void | AddTrialVariableNameIfMissing (const std::string &trial_var_name) override |
Add trial variable to EquationSystem. More... | |
virtual void | SetTimeStep (double dt) |
virtual void | UpdateEquationSystem () |
virtual void | AddKernel (std::shared_ptr< MFEMKernel > kernel) override |
Add kernels. More... | |
virtual void | BuildBilinearForms () override |
virtual void | FormLegacySystem (mfem::OperatorHandle &op, mfem::BlockVector &truedXdt, mfem::BlockVector &trueRHS) override |
virtual void | FormSystem (mfem::OperatorHandle &op, mfem::BlockVector &truedXdt, mfem::BlockVector &trueRHS) override |
const std::vector< std::string > & | TrialVarTimeDerivativeNames () const |
virtual void | AddTestVariableNameIfMissing (const std::string &test_var_name) |
Add test variable to EquationSystem. More... | |
virtual void | AddIntegratedBC (std::shared_ptr< MFEMIntegratedBC > kernel) |
virtual void | AddEssentialBC (std::shared_ptr< MFEMEssentialBC > bc) |
virtual void | ApplyEssentialBCs () |
virtual void | Init (Moose::MFEM::GridFunctions &gridfunctions, const Moose::MFEM::FESpaces &fespaces, mfem::AssemblyLevel assembly_level) |
Build forms. More... | |
virtual void | BuildLinearForms () |
virtual void | BuildMixedBilinearForms () |
virtual void | BuildEquationSystem () |
virtual void | FormLinearSystem (mfem::OperatorHandle &op, mfem::BlockVector &trueX, mfem::BlockVector &trueRHS) |
Form linear system, with essential boundary conditions accounted for. More... | |
virtual void | BuildJacobian (mfem::BlockVector &trueX, mfem::BlockVector &trueRHS) |
Build linear system, with essential boundary conditions accounted for. More... | |
void | Mult (const mfem::Vector &u, mfem::Vector &residual) const override |
Compute residual y = Mu. More... | |
mfem::Operator & | GetGradient (const mfem::Vector &u) const override |
Compute J = M + grad_H(u) More... | |
virtual void | RecoverFEMSolution (mfem::BlockVector &trueX, Moose::MFEM::GridFunctions &gridfunctions) |
Update variable from solution vector after solve. More... | |
const std::vector< std::string > & | TrialVarNames () const |
const std::vector< std::string > & | TestVarNames () const |
Public Attributes | |
std::vector< mfem::Array< int > > | _ess_tdof_lists |
Protected Member Functions | |
void | DeleteAllBlocks () |
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... | |
bool | VectorContainsName (const std::vector< std::string > &the_vector, const std::string &name) const |
template<class FormType > | |
void | ApplyDomainBLFIntegrators (const std::string &trial_var_name, const std::string &test_var_name, std::shared_ptr< FormType > form, Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel >>>> &kernels_map) |
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, Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel >>>> &kernels_map) |
template<class FormType > | |
void | ApplyBoundaryBLFIntegrators (const std::string &trial_var_name, const std::string &test_var_name, std::shared_ptr< FormType > form, Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< std::vector< std::shared_ptr< MFEMIntegratedBC >>>> &integrated_bc_map) |
void | ApplyBoundaryLFIntegrators (const std::string &test_var_name, std::shared_ptr< mfem::ParLinearForm > form, Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< std::vector< std::shared_ptr< MFEMIntegratedBC >>>> &integrated_bc_map) |
Protected Attributes | |
mfem::ConstantCoefficient | _dt_coef |
Coefficient for timestep scaling. More... | |
std::vector< std::string > | _trial_var_time_derivative_names |
Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel > > > > | _td_kernels_map |
Moose::MFEM::NamedFieldsMap< mfem::ParBilinearForm > | _td_blfs |
Container to store contributions to weak form of the form (F du/dt, v) More... | |
std::vector< std::string > | _trial_var_names |
Names of all variables corresponding to gridfunctions. More... | |
Moose::MFEM::GridFunctions | _trial_variables |
Pointers to trial variables. 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... | |
Moose::MFEM::NamedFieldsMap< mfem::ParBilinearForm > | _blfs |
Moose::MFEM::NamedFieldsMap< mfem::ParLinearForm > | _lfs |
Moose::MFEM::NamedFieldsMap< mfem::ParNonlinearForm > | _nlfs |
Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< mfem::ParMixedBilinearForm > > | _mblfs |
std::vector< std::unique_ptr< mfem::ParGridFunction > > | _xs |
Gridfunctions for setting Dirichlet BCs. More... | |
std::vector< std::unique_ptr< mfem::ParGridFunction > > | _dxdts |
mfem::Array2D< const mfem::HypreParMatrix * > | _h_blocks |
Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel > > > > | _kernels_map |
Arrays to store kernels to act on each component of weak form. More... | |
Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< std::vector< std::shared_ptr< MFEMIntegratedBC > > > > | _integrated_bc_map |
Arrays to store integrated BCs to act on each component of weak form. More... | |
Moose::MFEM::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::AssemblyLevel | _assembly_level |
Class to store weak form components for time dependent PDEs.
Definition at line 283 of file EquationSystem.h.
Moose::MFEM::TimeDependentEquationSystem::TimeDependentEquationSystem | ( | ) |
Definition at line 403 of file EquationSystem.C.
|
virtualinherited |
Definition at line 104 of file EquationSystem.C.
|
virtualinherited |
Definition at line 81 of file EquationSystem.C.
|
overridevirtual |
Add kernels.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 435 of file EquationSystem.C.
|
virtualinherited |
Add test variable to EquationSystem.
Definition at line 49 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::AddEssentialBC(), Moose::MFEM::EquationSystem::AddIntegratedBC(), Moose::MFEM::EquationSystem::AddKernel(), and AddKernel().
|
overridevirtual |
Add trial variable to EquationSystem.
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 406 of file EquationSystem.C.
Referenced by AddKernel().
|
protectedinherited |
Definition at line 230 of file EquationSystem.h.
|
inlineprotectedinherited |
Definition at line 256 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::BuildLinearForms().
|
protectedinherited |
Template method for applying BilinearFormIntegrators on domains from kernels to a BilinearForm, or MixedBilinearForm.
Definition at line 182 of file EquationSystem.h.
|
inlineprotectedinherited |
Definition at line 206 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::BuildLinearForms().
|
virtualinherited |
Definition at line 117 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::BuildLinearForms().
|
overridevirtual |
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 464 of file EquationSystem.C.
Referenced by UpdateEquationSystem().
|
virtualinherited |
Definition at line 396 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystemProblemOperator::Init(), and Moose::MFEM::TimeDomainEquationSystemProblemOperator::Init().
|
virtualinherited |
Build linear system, with essential boundary conditions accounted for.
Definition at line 254 of file EquationSystem.C.
Referenced by Moose::MFEM::TimeDomainEquationSystemProblemOperator::BuildEquationSystemOperator(), and Moose::MFEM::EquationSystemProblemOperator::Solve().
|
virtualinherited |
Definition at line 314 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::BuildEquationSystem(), and UpdateEquationSystem().
|
virtualinherited |
Definition at line 358 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::BuildEquationSystem(), and UpdateEquationSystem().
|
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 21 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::FormLegacySystem(), FormLegacySystem(), and Moose::MFEM::EquationSystem::~EquationSystem().
|
overridevirtual |
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 514 of file EquationSystem.C.
|
virtualinherited |
Form linear system, with essential boundary conditions accounted for.
Definition at line 150 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::BuildJacobian().
|
overridevirtual |
Reimplemented from Moose::MFEM::EquationSystem.
Definition at line 555 of file EquationSystem.C.
|
overrideinherited |
Compute J = M + grad_H(u)
Definition at line 270 of file EquationSystem.C.
|
virtualinherited |
Build forms.
Definition at line 288 of file EquationSystem.C.
|
overrideinherited |
Compute residual y = Mu.
Definition at line 262 of file EquationSystem.C.
|
virtualinherited |
Update variable from solution vector after solve.
Definition at line 276 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystemProblemOperator::Solve().
|
virtual |
Definition at line 420 of file EquationSystem.C.
Referenced by Moose::MFEM::TimeDomainEquationSystemProblemOperator::BuildEquationSystemOperator().
|
inlineinherited |
Definition at line 87 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystemProblemOperator::SetGridFunctions(), and Moose::MFEM::TimeDomainEquationSystemProblemOperator::SetGridFunctions().
|
inlineinherited |
Definition at line 86 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystemProblemOperator::SetGridFunctions(), and Moose::MFEM::TimeDomainEquationSystemProblemOperator::SetGridFunctions().
|
inline |
Definition at line 316 of file EquationSystem.h.
|
virtual |
Definition at line 592 of file EquationSystem.C.
Referenced by Moose::MFEM::TimeDomainEquationSystemProblemOperator::BuildEquationSystemOperator().
|
protectedinherited |
Definition at line 30 of file EquationSystem.C.
Referenced by Moose::MFEM::EquationSystem::AddTestVariableNameIfMissing(), Moose::MFEM::EquationSystem::AddTrialVariableNameIfMissing(), and AddTrialVariableNameIfMissing().
|
protectedinherited |
Definition at line 177 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::FormLinearSystem(), and Moose::MFEM::EquationSystem::Init().
|
protectedinherited |
Definition at line 116 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EquationSystem::FormLegacySystem(), FormLegacySystem(), Moose::MFEM::EquationSystem::FormSystem(), FormSystem(), and SetTimeStep().
|
protected |
Coefficient for timestep scaling.
Definition at line 306 of file EquationSystem.h.
Referenced by BuildBilinearForms(), FormLegacySystem(), FormSystem(), and SetTimeStep().
|
protectedinherited |
Definition at line 158 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::Init().
|
inherited |
Definition at line 84 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::EquationSystem::FormLegacySystem(), FormLegacySystem(), Moose::MFEM::EquationSystem::FormSystem(), and FormSystem().
|
protectedinherited |
Arrays to store essential BCs to act on each component of weak form.
Named according to test variable.
Definition at line 173 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::AddEssentialBC(), and Moose::MFEM::EquationSystem::ApplyEssentialBCs().
|
protectedinherited |
Definition at line 160 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::DeleteAllBlocks(), Moose::MFEM::EquationSystem::FormLegacySystem(), and FormLegacySystem().
|
protectedinherited |
Arrays to store integrated BCs to act on each component of weak form.
Named according to test and trial variables.
Definition at line 170 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::AddIntegratedBC(), Moose::MFEM::EquationSystem::BuildBilinearForms(), BuildBilinearForms(), and Moose::MFEM::EquationSystem::BuildLinearForms().
|
mutableprotectedinherited |
Definition at line 175 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::BuildJacobian(), Moose::MFEM::EquationSystem::GetGradient(), and Moose::MFEM::EquationSystem::Mult().
|
protectedinherited |
Arrays to store kernels to act on each component of weak form.
Named according to test and trial variables.
Definition at line 165 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::AddKernel(), Moose::MFEM::EquationSystem::BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildLinearForms(), and Moose::MFEM::EquationSystem::BuildMixedBilinearForms().
|
protectedinherited |
Definition at line 117 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::BuildLinearForms(), Moose::MFEM::EquationSystem::FormLegacySystem(), FormLegacySystem(), Moose::MFEM::EquationSystem::FormSystem(), and FormSystem().
|
protectedinherited |
Definition at line 120 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), and Moose::MFEM::EquationSystem::FormLegacySystem().
|
protectedinherited |
Definition at line 118 of file EquationSystem.h.
|
protected |
Container to store contributions to weak form of the form (F du/dt, v)
Definition at line 312 of file EquationSystem.h.
Referenced by BuildBilinearForms(), FormLegacySystem(), and FormSystem().
|
protected |
Definition at line 310 of file EquationSystem.h.
Referenced by AddKernel(), and BuildBilinearForms().
|
protectedinherited |
Pointers to finite element spaces associated with test variables.
Definition at line 113 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::EquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildLinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::FormLegacySystem(), and Moose::MFEM::EquationSystem::Init().
|
protectedinherited |
Names of all test variables corresponding to linear forms in this equation system.
Definition at line 111 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::AddTestVariableNameIfMissing(), Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::EquationSystem::BuildBilinearForms(), BuildBilinearForms(), Moose::MFEM::EquationSystem::BuildLinearForms(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::FormLegacySystem(), FormLegacySystem(), Moose::MFEM::EquationSystem::FormLinearSystem(), Moose::MFEM::EquationSystem::FormSystem(), FormSystem(), Moose::MFEM::EquationSystem::Init(), SetTimeStep(), and Moose::MFEM::EquationSystem::TestVarNames().
|
protectedinherited |
Names of all variables corresponding to gridfunctions.
This may differ from test_var_names when time derivatives are present.
Definition at line 107 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::AddTrialVariableNameIfMissing(), AddTrialVariableNameIfMissing(), Moose::MFEM::EquationSystem::BuildMixedBilinearForms(), Moose::MFEM::EquationSystem::FormLegacySystem(), Moose::MFEM::EquationSystem::FormLinearSystem(), Moose::MFEM::EquationSystem::RecoverFEMSolution(), and Moose::MFEM::EquationSystem::TrialVarNames().
|
protected |
Definition at line 307 of file EquationSystem.h.
Referenced by AddTrialVariableNameIfMissing(), and TrialVarTimeDerivativeNames().
|
protectedinherited |
Pointers to trial variables.
Definition at line 109 of file EquationSystem.h.
Referenced by FormLegacySystem(), FormSystem(), and Moose::MFEM::EquationSystem::Init().
|
protectedinherited |
Gridfunctions for setting Dirichlet BCs.
Definition at line 157 of file EquationSystem.h.
Referenced by Moose::MFEM::EquationSystem::ApplyEssentialBCs(), Moose::MFEM::EquationSystem::FormLegacySystem(), FormLegacySystem(), Moose::MFEM::EquationSystem::FormSystem(), FormSystem(), and Moose::MFEM::EquationSystem::Init().