Panzer Version of the Day
Loading...
Searching...
No Matches
List of all members
panzer::ExplicitModelEvaluator< Scalar > Class Template Reference

#include <Panzer_ExplicitModelEvaluator.hpp>

Inheritance diagram for panzer::ExplicitModelEvaluator< Scalar >:
Inheritance graph
[legend]

Private functions overridden from ModelEvaulatorDelegatorBase.

bool constantMassMatrix_
 Is the mass matrix constant.
 
bool massLumping_
 Use mass lumping, or a full solve.
 
Teuchos::RCP< const panzer::ModelEvaluator< Scalar > > panzerModel_
 Access to the panzer model evaluator pointer (thyra version)
 
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_
 
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.
 
void setOneTimeDirichletBeta (double beta, const Thyra::ModelEvaluator< Scalar > &me) const
 
 ExplicitModelEvaluator ()
 

Constructors/Initializers/Accessors

 ExplicitModelEvaluator (const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model, bool constantMassMatrix, bool useLumpedMass, bool applyMassInverse=true)
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues () const
 Build the nominal values, modifies the underlying models in args slightly.
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs () const
 Build the in args, modifies the underlying models in args slightly.
 
Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgs () const
 Build the out args, modifies the underlying models in args slightly.
 
Teuchos::RCP< panzer::ModelEvaluator< Scalar > > getPanzerUnderlyingModel ()
 Get the underlying panzer::ModelEvaluator.
 
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
 
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.
 

Additional Inherited Members

- Public Member Functions inherited from panzer::MassMatrixModelEvaluator< Scalar >
void setApplyMassInverse (const bool applyMassInverse) const
 
- Protected Attributes inherited from panzer::MassMatrixModelEvaluator< Scalar >
bool applyMassInverse_
 Apply mass matrix inverse within the evaluator.
 

Detailed Description

template<typename Scalar>
class panzer::ExplicitModelEvaluator< Scalar >

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 67 of file Panzer_ExplicitModelEvaluator.hpp.

Constructor & Destructor Documentation

◆ ExplicitModelEvaluator() [1/2]

template<typename Scalar >
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 59 of file Panzer_ExplicitModelEvaluator_impl.hpp.

◆ ExplicitModelEvaluator() [2/2]

template<typename Scalar >
panzer::ExplicitModelEvaluator< Scalar >::ExplicitModelEvaluator ( )
private

Member Function Documentation

◆ getNominalValues()

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > panzer::ExplicitModelEvaluator< Scalar >::getNominalValues ( ) const

Build the nominal values, modifies the underlying models in args slightly.

Definition at line 88 of file Panzer_ExplicitModelEvaluator_impl.hpp.

◆ createInArgs()

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > panzer::ExplicitModelEvaluator< Scalar >::createInArgs ( ) const

Build the in args, modifies the underlying models in args slightly.

Definition at line 100 of file Panzer_ExplicitModelEvaluator_impl.hpp.

◆ createOutArgs()

template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs< Scalar > panzer::ExplicitModelEvaluator< Scalar >::createOutArgs ( ) const

Build the out args, modifies the underlying models in args slightly.

Definition at line 107 of file Panzer_ExplicitModelEvaluator_impl.hpp.

◆ getPanzerUnderlyingModel()

template<typename Scalar >
Teuchos::RCP< panzer::ModelEvaluator< Scalar > > panzer::ExplicitModelEvaluator< Scalar >::getPanzerUnderlyingModel ( )

Get the underlying panzer::ModelEvaluator.

Definition at line 114 of file Panzer_ExplicitModelEvaluator_impl.hpp.

◆ applyInverseMassMatrix()

template<typename Scalar >
virtual void panzer::ExplicitModelEvaluator< Scalar >::applyInverseMassMatrix ( const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > input,
const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > output ) const
inlinevirtual

◆ applyMassMatrix()

template<typename Scalar >
virtual void panzer::ExplicitModelEvaluator< Scalar >::applyMassMatrix ( const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > input,
const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > output ) const
inlinevirtual

◆ applyDirichletBCs()

template<typename Scalar >
void panzer::ExplicitModelEvaluator< Scalar >::applyDirichletBCs ( const Teuchos::RCP< Thyra::VectorBase< Scalar > > & x,
const Teuchos::RCP< Thyra::VectorBase< Scalar > > & f ) const
inlineprivate

Apply the dirichlet boundary conditions to the vector "f" using the "x" values as the current solution.

Definition at line 112 of file Panzer_ExplicitModelEvaluator.hpp.

◆ buildInverseMassMatrix()

template<typename Scalar >
void panzer::ExplicitModelEvaluator< Scalar >::buildInverseMassMatrix ( const Thyra::ModelEvaluatorBase::InArgs< Scalar > & inArgs) const
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 168 of file Panzer_ExplicitModelEvaluator_impl.hpp.

◆ buildArgsPrototypes()

template<typename Scalar >
void panzer::ExplicitModelEvaluator< Scalar >::buildArgsPrototypes ( )
private

Build prototype in/out args.

Definition at line 237 of file Panzer_ExplicitModelEvaluator_impl.hpp.

◆ evalModelImpl()

template<typename Scalar >
void panzer::ExplicitModelEvaluator< Scalar >::evalModelImpl ( const Thyra::ModelEvaluatorBase::InArgs< Scalar > & inArgs,
const Thyra::ModelEvaluatorBase::OutArgs< Scalar > & outArgs ) const
private

Evaluation of model, applies the mass matrix to the RHS.

Definition at line 121 of file Panzer_ExplicitModelEvaluator_impl.hpp.

◆ setOneTimeDirichletBeta()

template<typename Scalar >
void panzer::ExplicitModelEvaluator< Scalar >::setOneTimeDirichletBeta ( double beta,
const Thyra::ModelEvaluator< Scalar > & me ) const
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 257 of file Panzer_ExplicitModelEvaluator_impl.hpp.

Member Data Documentation

◆ constantMassMatrix_

template<typename Scalar >
bool panzer::ExplicitModelEvaluator< Scalar >::constantMassMatrix_
private

Is the mass matrix constant.

Definition at line 150 of file Panzer_ExplicitModelEvaluator.hpp.

◆ massLumping_

template<typename Scalar >
bool panzer::ExplicitModelEvaluator< Scalar >::massLumping_
private

Use mass lumping, or a full solve.

Definition at line 153 of file Panzer_ExplicitModelEvaluator.hpp.

◆ panzerModel_

template<typename Scalar >
Teuchos::RCP<const panzer::ModelEvaluator<Scalar> > panzer::ExplicitModelEvaluator< Scalar >::panzerModel_
private

Access to the panzer model evaluator pointer (thyra version)

Definition at line 156 of file Panzer_ExplicitModelEvaluator.hpp.

◆ mass_

template<typename Scalar >
Teuchos::RCP<Thyra::LinearOpBase<Scalar> > panzer::ExplicitModelEvaluator< Scalar >::mass_
mutableprivate

Definition at line 163 of file Panzer_ExplicitModelEvaluator.hpp.

◆ invMassMatrix_

template<typename Scalar >
Teuchos::RCP<const Thyra::LinearOpBase<Scalar> > panzer::ExplicitModelEvaluator< Scalar >::invMassMatrix_
mutableprivate

Definition at line 164 of file Panzer_ExplicitModelEvaluator.hpp.

◆ scrap_f_

template<typename Scalar >
Teuchos::RCP<Thyra::VectorBase<Scalar> > panzer::ExplicitModelEvaluator< Scalar >::scrap_f_
mutableprivate

Definition at line 165 of file Panzer_ExplicitModelEvaluator.hpp.

◆ zero_

template<typename Scalar >
Teuchos::RCP<Thyra::VectorBase<Scalar> > panzer::ExplicitModelEvaluator< Scalar >::zero_
mutableprivate

Definition at line 166 of file Panzer_ExplicitModelEvaluator.hpp.

◆ prototypeInArgs_

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs<Scalar> panzer::ExplicitModelEvaluator< Scalar >::prototypeInArgs_
private

Definition at line 169 of file Panzer_ExplicitModelEvaluator.hpp.

◆ prototypeOutArgs_

template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs<Scalar> panzer::ExplicitModelEvaluator< Scalar >::prototypeOutArgs_
private

Definition at line 170 of file Panzer_ExplicitModelEvaluator.hpp.


The documentation for this class was generated from the following files: