43 #ifndef __Panzer_ScatterResidual_BlockedEpetra_Hessian_hpp__ 44 #define __Panzer_ScatterResidual_BlockedEpetra_Hessian_hpp__ 47 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 57 template<
typename TRAITS,
typename LO,
typename GO>
58 class ScatterResidual_BlockedEpetra<
panzer::Traits::Hessian,TRAITS,LO,GO>
60 public PHX::EvaluatorDerived<panzer::Traits::Hessian, TRAITS>,
66 const std::vector<Teuchos::RCP<
const UniqueGlobalIndexer<LO,int> > > & cIndexers,
67 bool useDiscreteAdjoint=
false)
68 : rowIndexers_(rIndexers), colIndexers_(cIndexers), useDiscreteAdjoint_(useDiscreteAdjoint) {}
71 const std::vector<Teuchos::RCP<
const UniqueGlobalIndexer<LO,int> > > & cIndexers,
72 const Teuchos::ParameterList& p,
73 bool useDiscreteAdjoint=
false);
78 void preEvaluate(
typename TRAITS::PreEvalData d);
82 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const 83 {
return Teuchos::rcp(
new ScatterResidual_BlockedEpetra<panzer::Traits::Hessian,TRAITS,LO,GO>(rowIndexers_,colIndexers_,pl,useDiscreteAdjoint_)); }
86 typedef typename panzer::Traits::Hessian::ScalarT
ScalarT;
89 Teuchos::RCP<PHX::FieldTag> scatterHolder_;
92 std::vector< PHX::MDField<const ScalarT,Cell,NODE> >
scatterFields_;
94 std::vector<Teuchos::RCP<const UniqueGlobalIndexer<LO,int> > > rowIndexers_;
95 std::vector<Teuchos::RCP<const UniqueGlobalIndexer<LO,int> > > colIndexers_;
97 std::vector<int> indexerIds_;
98 std::vector<int> subFieldIds_;
104 Teuchos::RCP<const std::map<std::string,std::string> > fieldMap_;
106 std::string globalDataKey_;
107 bool useDiscreteAdjoint_;
109 Teuchos::RCP<Thyra::BlockedLinearOpBase<double> > Jac_;
ScatterResidual_BlockedEpetra(const Teuchos::ParameterList &p)
std::vector< PHX::MDField< const ScalarT, panzer::Cell, panzer::Point > > scatterFields_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
PHX::MDField< ScalarT > vector
void evaluateFields(typename TRAITS::EvalData d)
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &vm)
Non-templated empty base class for template managers.