43 #ifndef __Panzer_GatherSolution_Epetra_Hessian_hpp__ 44 #define __Panzer_GatherSolution_Epetra_Hessian_hpp__ 47 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 57 template<
typename TRAITS,
typename LO,
typename GO>
58 class GatherSolution_Epetra<
panzer::Traits::Hessian,TRAITS,LO,GO>
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_Epetra<panzer::Traits::Hessian,TRAITS,LO,GO>(globalIndexer_,pl)); }
83 typedef typename panzer::Traits::Hessian EvalT;
84 typedef typename panzer::Traits::Hessian::ScalarT ScalarT;
88 Teuchos::RCP<const panzer::UniqueGlobalIndexer<LO,GO> > globalIndexer_;
89 std::vector<std::string> indexerNames_;
90 std::vector<int> fieldIds_;
92 std::vector< PHX::MDField<ScalarT,Cell,NODE> > gatherFields_;
93 std::vector< PHX::MDField<ScalarT,Cell,NODE> > sensFields_;
95 bool useTimeDerivativeSolutionVector_;
96 std::string globalDataKey_;
98 std::string sensitivitiesName_;
101 int gatherSeedIndex_;
104 bool firstSensitivitiesAvailable_;
106 bool firstApplySensitivities_;
109 std::string sensitivities2ndPrefix_;
110 bool secondSensitivitiesAvailable_;
111 bool secondApplySensitivities_;
113 Teuchos::RCP<Epetra_Vector> x_;
114 Teuchos::RCP<Epetra_Vector> dx_;
116 GatherSolution_Epetra();
121 #endif // end hessian support
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
Non-templated empty base class for template managers.