Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
panzer::ExplicitModelEvaluator< Scalar > Class Template Reference

#include <Panzer_ExplicitModelEvaluator.hpp>

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

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...
 

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

Constructor & Destructor Documentation

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 28 of file Panzer_ExplicitModelEvaluator_impl.hpp.

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

Member Function Documentation

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 57 of file Panzer_ExplicitModelEvaluator_impl.hpp.

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 69 of file Panzer_ExplicitModelEvaluator_impl.hpp.

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 76 of file Panzer_ExplicitModelEvaluator_impl.hpp.

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

Get the underlying panzer::ModelEvaluator.

Definition at line 83 of file Panzer_ExplicitModelEvaluator_impl.hpp.

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

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 137 of file Panzer_ExplicitModelEvaluator_impl.hpp.

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

Build prototype in/out args.

Definition at line 206 of file Panzer_ExplicitModelEvaluator_impl.hpp.

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 90 of file Panzer_ExplicitModelEvaluator_impl.hpp.

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 226 of file Panzer_ExplicitModelEvaluator_impl.hpp.

Member Data Documentation

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

Is the mass matrix constant.

Definition at line 118 of file Panzer_ExplicitModelEvaluator.hpp.

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

Use mass lumping, or a full solve.

Definition at line 121 of file Panzer_ExplicitModelEvaluator.hpp.

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

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

Definition at line 131 of file Panzer_ExplicitModelEvaluator.hpp.

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

Definition at line 132 of file Panzer_ExplicitModelEvaluator.hpp.

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

Definition at line 133 of file Panzer_ExplicitModelEvaluator.hpp.

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

Definition at line 134 of file Panzer_ExplicitModelEvaluator.hpp.

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

Definition at line 137 of file Panzer_ExplicitModelEvaluator.hpp.

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

Definition at line 138 of file Panzer_ExplicitModelEvaluator.hpp.


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