43 #ifndef __Panzer_GatherSolution_Tpetra_Hessian_hpp__ 44 #define __Panzer_GatherSolution_Tpetra_Hessian_hpp__ 47 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 57 template<
typename TRAITS,
typename LO,
typename GO,
typename NodeT>
58 class GatherSolution_Tpetra<
panzer::Traits::Hessian,TRAITS,LO,GO,NodeT>
60 public PHX::EvaluatorDerived<panzer::Traits::Hessian, TRAITS>,
67 globalIndexer_(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 d) {}
79 virtual Teuchos::RCP<CloneableEvaluator> clone(
const Teuchos::ParameterList & pl)
const 80 {
return Teuchos::rcp(
new GatherSolution_Tpetra<panzer::Traits::Hessian,TRAITS,LO,GO,NodeT>(globalIndexer_,pl)); }
84 { TEUCHOS_ASSERT(i < Teuchos::as<int>(gatherFields_.size()));
return gatherFields_[i].fieldTag(); }
88 typedef typename panzer::Traits::Hessian::ScalarT ScalarT;
92 Teuchos::RCP<const panzer::UniqueGlobalIndexer<LO,GO> > globalIndexer_;
93 std::vector<int> fieldIds_;
95 std::vector< PHX::MDField<ScalarT,Cell,NODE> > gatherFields_;
97 Teuchos::RCP<std::vector<std::string> > indexerNames_;
98 bool useTimeDerivativeSolutionVector_;
99 std::string globalDataKey_;
101 Teuchos::RCP<const TpetraLinearObjContainer<double,LO,GO,NodeT> > tpetraContainer_;
107 bool has_tangent_fields_;
108 std::vector< std::vector< PHX::MDField<const ScalarT,Cell,NODE> > > tangentFields_;
110 GatherSolution_Tpetra();
115 #endif // end hessian support const PHX::FieldTag & getFieldTag() const
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
Non-templated empty base class for template managers.