43 #ifndef __Panzer_ScatterDirichletResidual_BlockedEpetra_Hessian_hpp__ 44 #define __Panzer_ScatterDirichletResidual_BlockedEpetra_Hessian_hpp__ 47 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 58 template<
typename TRAITS,
typename LO,
typename GO>
59 class ScatterDirichletResidual_BlockedEpetra<
panzer::Traits::Hessian,TRAITS,LO,GO>
61 public PHX::EvaluatorDerived<panzer::Traits::Hessian, TRAITS>,
66 const std::vector<Teuchos::RCP<
const UniqueGlobalIndexer<LO,int> > > & cIndexers)
67 : rowIndexers_(rIndexers), colIndexers_(cIndexers) {}
70 const std::vector<Teuchos::RCP<
const UniqueGlobalIndexer<LO,int> > > & cIndexers,
71 const Teuchos::ParameterList& p,
72 bool useDiscreteAdjoint=
false);
77 void preEvaluate(
typename TRAITS::PreEvalData d);
81 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const 82 {
return Teuchos::rcp(
new ScatterDirichletResidual_BlockedEpetra<panzer::Traits::Hessian,TRAITS,LO,GO>(rowIndexers_,colIndexers_,pl)); }
85 typedef typename panzer::Traits::Hessian::ScalarT
ScalarT;
88 Teuchos::RCP<PHX::FieldTag> scatterHolder_;
91 std::vector< PHX::MDField<const ScalarT,Cell,NODE> >
scatterFields_;
93 std::vector<Teuchos::RCP<const UniqueGlobalIndexer<LO,int> > > rowIndexers_;
94 std::vector<Teuchos::RCP<const UniqueGlobalIndexer<LO,int> > > colIndexers_;
96 std::vector<int> indexerIds_;
97 std::vector<int> subFieldIds_;
103 Teuchos::RCP<const std::map<std::string,std::string> > fieldMap_;
108 std::size_t side_subcell_dim_;
109 std::size_t local_side_id_;
111 Teuchos::RCP<Thyra::ProductVectorBase<double> > dirichletCounter_;
112 std::string globalDataKey_;
114 Teuchos::RCP<Thyra::BlockedLinearOpBase<double> > Jac_;
120 std::vector< PHX::MDField<const bool,Cell,NODE> > applyBC_;
std::vector< PHX::MDField< const ScalarT, panzer::Cell, panzer::Point > > scatterFields_
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &vm)
PHX::MDField< ScalarT > vector
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
void evaluateFields(typename TRAITS::EvalData d)
ScatterDirichletResidual_BlockedEpetra(const Teuchos::ParameterList &p)
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Non-templated empty base class for template managers.