43 #ifndef __Panzer_ScatterDirichletResidual_Epetra_Hessian_hpp__ 44 #define __Panzer_ScatterDirichletResidual_Epetra_Hessian_hpp__ 47 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 57 template<
typename TRAITS,
typename LO,
typename GO>
58 class ScatterDirichletResidual_Epetra<
panzer::Traits::Hessian,TRAITS,LO,GO>
60 public PHX::EvaluatorDerived<panzer::Traits::Hessian, TRAITS>,
64 ScatterDirichletResidual_Epetra(
const Teuchos::RCP<
const UniqueGlobalIndexer<LO,GO> > & indexer,
66 : globalIndexer_(indexer), colGlobalIndexer_(cIndexer) {}
68 ScatterDirichletResidual_Epetra(
const Teuchos::RCP<
const UniqueGlobalIndexer<LO,GO> > & indexer,
70 const Teuchos::ParameterList& p);
72 void postRegistrationSetup(
typename TRAITS::SetupData d,
75 void preEvaluate(
typename TRAITS::PreEvalData d);
77 void evaluateFields(
typename TRAITS::EvalData workset);
79 virtual Teuchos::RCP<CloneableEvaluator> clone(
const Teuchos::ParameterList & pl)
const 80 {
return Teuchos::rcp(
new ScatterDirichletResidual_Epetra<panzer::Traits::Hessian,TRAITS,LO,GO>(globalIndexer_,colGlobalIndexer_,pl)); }
83 typedef typename panzer::Traits::Hessian::ScalarT ScalarT;
86 Teuchos::RCP<PHX::FieldTag> scatterHolder_;
89 std::vector< PHX::MDField<const ScalarT,Cell,NODE> >
scatterFields_;
93 Teuchos::RCP<const panzer::UniqueGlobalIndexer<LO,GO> > globalIndexer_, colGlobalIndexer_;
94 std::vector<int> fieldIds_;
100 Teuchos::RCP<const std::map<std::string,std::string> > fieldMap_;
105 std::size_t side_subcell_dim_;
106 std::size_t local_side_id_;
108 Teuchos::RCP<Epetra_Vector> dirichletCounter_;
110 std::string globalDataKey_;
111 Teuchos::RCP<const EpetraLinearObjContainer> epetraContainer_;
113 bool preserveDiagonal_;
119 std::vector< PHX::MDField<const bool,Cell,NODE> > applyBC_;
121 ScatterDirichletResidual_Epetra();
std::vector< PHX::MDField< const ScalarT, panzer::Cell, panzer::Point > > scatterFields_
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
Non-templated empty base class for template managers.