Panzer
Version of the Day
|
#include <Panzer_ExplicitModelEvaluator.hpp>
Public Member Functions | |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | getNominalValues () const |
Build the nominal values, modifies the underlying models in args slightly. More... | |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | createInArgs () const |
Build the in args, modifies the underlying models in args slightly. More... | |
Thyra::ModelEvaluatorBase::OutArgs < Scalar > | createOutArgs () const |
Build the out args, modifies the underlying models in args slightly. More... | |
Teuchos::RCP < panzer::ModelEvaluator < Scalar > > | getPanzerUnderlyingModel () |
Get the underlying panzer::ModelEvaluator. More... | |
virtual void | applyInverseMassMatrix (const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > input, const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > output) const |
virtual void | applyMassMatrix (const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > input, const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > output) const |
Public Member Functions inherited from panzer::MassMatrixModelEvaluator< Scalar > | |
void | setApplyMassInverse (const bool applyMassInverse) const |
Private Member Functions | |
void | applyDirichletBCs (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &f) const |
void | buildInverseMassMatrix (const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs) const |
void | buildArgsPrototypes () |
Build prototype in/out args. More... | |
void | setOneTimeDirichletBeta (double beta, const Thyra::ModelEvaluator< Scalar > &me) const |
ExplicitModelEvaluator () | |
Private Attributes | |
bool | constantMassMatrix_ |
Is the mass matrix constant. More... | |
bool | massLumping_ |
Use mass lumping, or a full solve. More... | |
Teuchos::RCP< const panzer::ModelEvaluator< Scalar > > | panzerModel_ |
Access to the panzer model evaluator pointer (thyra version) More... | |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | mass_ |
Teuchos::RCP< const Thyra::LinearOpBase< Scalar > > | invMassMatrix_ |
Teuchos::RCP < Thyra::VectorBase< Scalar > > | scrap_f_ |
Teuchos::RCP < Thyra::VectorBase< Scalar > > | zero_ |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | prototypeInArgs_ |
Thyra::ModelEvaluatorBase::OutArgs < Scalar > | prototypeOutArgs_ |
Constructors/Initializers/Accessors | |
ExplicitModelEvaluator (const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model, bool constantMassMatrix, bool useLumpedMass, bool applyMassInverse=true) | |
Private functions overridden from ModelEvaulatorDelegatorBase. | |
void | evalModelImpl (const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const |
Evaluation of model, applies the mass matrix to the RHS. More... | |
Additional Inherited Members | |
Protected Attributes inherited from panzer::MassMatrixModelEvaluator< Scalar > | |
bool | applyMassInverse_ |
Apply mass matrix inverse within the evaluator. More... | |
This is a model evaluator decorator that will take an implicit model evaluator and make it explicit. If the model evaluator is not a panzer model evaluator then there may be problems with constructing the dirichlet conditions in the mass matrix. However, for a pzner model evaluator this has been taken care of.
Definition at line 35 of file Panzer_ExplicitModelEvaluator.hpp.
panzer::ExplicitModelEvaluator< Scalar >::ExplicitModelEvaluator | ( | const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > & | model, |
bool | constantMassMatrix, | ||
bool | useLumpedMass, | ||
bool | applyMassInverse = true |
||
) |
Take in a Thyra model evaluator and then turn it into an explicit model evaluator. Assume the mass matrix is constant unless the user specifies otherwise.
Definition at line 28 of file Panzer_ExplicitModelEvaluator_impl.hpp.
|
private |
Thyra::ModelEvaluatorBase::InArgs< Scalar > panzer::ExplicitModelEvaluator< Scalar >::getNominalValues | ( | ) | const |
Build the nominal values, modifies the underlying models in args slightly.
Definition at line 57 of file Panzer_ExplicitModelEvaluator_impl.hpp.
Thyra::ModelEvaluatorBase::InArgs< Scalar > panzer::ExplicitModelEvaluator< Scalar >::createInArgs | ( | ) | const |
Build the in args, modifies the underlying models in args slightly.
Definition at line 69 of file Panzer_ExplicitModelEvaluator_impl.hpp.
Thyra::ModelEvaluatorBase::OutArgs< Scalar > panzer::ExplicitModelEvaluator< Scalar >::createOutArgs | ( | ) | const |
Build the out args, modifies the underlying models in args slightly.
Definition at line 76 of file Panzer_ExplicitModelEvaluator_impl.hpp.
Teuchos::RCP< panzer::ModelEvaluator< Scalar > > panzer::ExplicitModelEvaluator< Scalar >::getPanzerUnderlyingModel | ( | ) |
Get the underlying panzer::ModelEvaluator.
Definition at line 83 of file Panzer_ExplicitModelEvaluator_impl.hpp.
|
inlinevirtual |
Implements panzer::MassMatrixModelEvaluator< Scalar >.
Definition at line 65 of file Panzer_ExplicitModelEvaluator.hpp.
|
inlinevirtual |
Implements panzer::MassMatrixModelEvaluator< Scalar >.
Definition at line 70 of file Panzer_ExplicitModelEvaluator.hpp.
|
inlineprivate |
Apply the dirichlet boundary conditions to the vector "f" using the "x" values as the current solution.
Definition at line 80 of file Panzer_ExplicitModelEvaluator.hpp.
|
private |
This method builds the inverse mass matrix from the underlying model evaluator. Not that this is constant method that modifies a mutable member.
Definition at line 137 of file Panzer_ExplicitModelEvaluator_impl.hpp.
|
private |
Build prototype in/out args.
Definition at line 206 of file Panzer_ExplicitModelEvaluator_impl.hpp.
|
private |
Evaluation of model, applies the mass matrix to the RHS.
Definition at line 90 of file Panzer_ExplicitModelEvaluator_impl.hpp.
|
private |
Set one time dirichlet beta using the underlying model evaluator. If this model evaluator is a MEDelegator then this method is called recursively, until the call succeeds (finding a panzer::ME) or fails because a delegator is no longer used. If it fails an exception is thrown. Note: The me used in this recursion is constant. This is consistent with the one time dirichlet beta call in the model evaluators.
Definition at line 226 of file Panzer_ExplicitModelEvaluator_impl.hpp.
|
private |
Is the mass matrix constant.
Definition at line 118 of file Panzer_ExplicitModelEvaluator.hpp.
|
private |
Use mass lumping, or a full solve.
Definition at line 121 of file Panzer_ExplicitModelEvaluator.hpp.
|
private |
Access to the panzer model evaluator pointer (thyra version)
Definition at line 124 of file Panzer_ExplicitModelEvaluator.hpp.
|
mutableprivate |
Definition at line 131 of file Panzer_ExplicitModelEvaluator.hpp.
|
mutableprivate |
Definition at line 132 of file Panzer_ExplicitModelEvaluator.hpp.
|
mutableprivate |
Definition at line 133 of file Panzer_ExplicitModelEvaluator.hpp.
|
mutableprivate |
Definition at line 134 of file Panzer_ExplicitModelEvaluator.hpp.
|
private |
Definition at line 137 of file Panzer_ExplicitModelEvaluator.hpp.
|
private |
Definition at line 138 of file Panzer_ExplicitModelEvaluator.hpp.