43 #ifndef PANZER_EXPLICIT_MODEL_EVALUATOR_HPP 
   44 #define PANZER_EXPLICIT_MODEL_EVALUATOR_HPP 
   46 #include "PanzerDiscFE_config.hpp" 
   48 #include "Thyra_ModelEvaluatorDelegatorBase.hpp" 
   49 #include "Thyra_BlockedLinearOpBase.hpp" 
   62 template<
typename Scalar>
 
   64   : 
public Thyra::ModelEvaluatorDelegatorBase<Scalar>,
 
   75                          bool constantMassMatrix,
 
   77                          bool applyMassInverse=
true);
 
   85   Thyra::ModelEvaluatorBase::InArgs<Scalar> 
createInArgs() 
const;
 
   88   Thyra::ModelEvaluatorBase::OutArgs<Scalar> 
createOutArgs() 
const;
 
  100     Thyra::apply(*
mass_,Thyra::NOTRANS,*input,output.
ptr());
 
  129   void evalModelImpl(
const Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs,
 
  130                      const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs) 
const;
 
virtual void applyInverseMassMatrix(const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > input, const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > output) const 
 
Thyra::ModelEvaluatorBase::OutArgs< Scalar > prototypeOutArgs_
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs() const 
Build the in args, modifies the underlying models in args slightly. 
 
void buildArgsPrototypes()
Build prototype in/out args. 
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > prototypeInArgs_
 
Teuchos::RCP< const Thyra::LinearOpBase< Scalar > > invMassMatrix_
 
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > mass_
 
Teuchos::RCP< panzer::ModelEvaluator< Scalar > > getPanzerUnderlyingModel()
Get the underlying panzer::ModelEvaluator. 
 
Teuchos::RCP< Thyra::VectorBase< Scalar > > scrap_f_
 
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. 
 
Teuchos::RCP< Thyra::VectorBase< Scalar > > zero_
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const 
Build the nominal values, modifies the underlying models in args slightly. 
 
Teuchos::RCP< const panzer::ModelEvaluator_Epetra > panzerEpetraModel_
Access to the epetra panzer model evaluator pointer. 
 
void setOneTimeDirichletBeta(double beta, const Thyra::ModelEvaluator< Scalar > &me) const 
 
Teuchos::RCP< const panzer::ModelEvaluator< Scalar > > panzerModel_
Access to the panzer model evaluator pointer (thyra version) 
 
Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgs() const 
Build the out args, modifies the underlying models in args slightly. 
 
bool constantMassMatrix_
Is the mass matrix constant. 
 
void applyDirichletBCs(const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &f) const 
 
#define TEUCHOS_ASSERT(assertion_test)
 
void buildInverseMassMatrix(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs) const 
 
bool massLumping_
Use mass lumping, or a full solve. 
 
virtual void applyMassMatrix(const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > input, const Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > output) const