43 #ifndef __Panzer_ScatterResidual_Tpetra_Hessian_hpp__ 44 #define __Panzer_ScatterResidual_Tpetra_Hessian_hpp__ 47 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 57 template<
typename TRAITS,
typename LO,
typename GO,
typename NodeT>
58 class ScatterResidual_Tpetra<
panzer::Traits::Hessian,TRAITS,LO,GO,NodeT>
60 public PHX::EvaluatorDerived<panzer::Traits::Hessian, TRAITS>,
65 : globalIndexer_(indexer) {}
68 const Teuchos::ParameterList& p);
70 void postRegistrationSetup(
typename TRAITS::SetupData d,
73 void preEvaluate(
typename TRAITS::PreEvalData d);
75 void evaluateFields(
typename TRAITS::EvalData workset);
77 virtual Teuchos::RCP<CloneableEvaluator> clone(
const Teuchos::ParameterList & pl)
const 78 {
return Teuchos::rcp(
new ScatterResidual_Tpetra<panzer::Traits::Hessian,TRAITS,LO,GO,NodeT>(globalIndexer_,pl)); }
81 typedef typename panzer::Traits::Hessian::ScalarT ScalarT;
84 Teuchos::RCP<PHX::FieldTag> scatterHolder_;
87 std::vector< PHX::MDField<const ScalarT,Cell,NODE> >
scatterFields_;
91 Teuchos::RCP<const panzer::UniqueGlobalIndexer<LO,GO> > globalIndexer_;
92 std::vector<int> fieldIds_;
98 Teuchos::RCP<const std::map<std::string,std::string> > fieldMap_;
100 std::string globalDataKey_;
101 Teuchos::RCP<const TpetraLinearObjContainer<double,LO,GO,NodeT> > tpetraContainer_;
103 ScatterResidual_Tpetra();
108 #endif // end hessian support 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.