11#ifndef PANZER_EVALUATOR_SCATTER_RESIDUAL_TPETRA_DECL_HPP
12#define PANZER_EVALUATOR_SCATTER_RESIDUAL_TPETRA_DECL_HPP
14#include "Phalanx_config.hpp"
15#include "Phalanx_Evaluator_Macros.hpp"
16#include "Phalanx_MDField.hpp"
17#include "Phalanx_KokkosViewOfViews.hpp"
19#include "Teuchos_ParameterList.hpp"
21#include "PanzerDiscFE_config.hpp"
45template<
typename EvalT,
typename Traits,
typename LO,
typename GO,
typename NodeT=panzer::TpetraNodeType>
58template<
typename TRAITS,
typename LO,
typename GO,
typename NodeT>
61 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
66 : globalIndexer_(indexer) {}
69 const Teuchos::ParameterList& p);
71 void postRegistrationSetup(
typename TRAITS::SetupData d,
74 void preEvaluate(
typename TRAITS::PreEvalData d);
76 void evaluateFields(
typename TRAITS::EvalData workset);
78 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
99 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
113template<
typename TRAITS,
typename LO,
typename GO,
typename NodeT>
116 public PHX::EvaluatorDerived<panzer::Traits::Tangent, TRAITS>,
121 : globalIndexer_(indexer) {}
124 const Teuchos::ParameterList& p);
126 void postRegistrationSetup(
typename TRAITS::SetupData d,
129 void preEvaluate(
typename TRAITS::PreEvalData d);
131 void evaluateFields(
typename TRAITS::EvalData workset);
133 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
155 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
161 PHX::ViewOfViews<1,Kokkos::View<RealT**,Kokkos::LayoutLeft,PHX::Device>>
dfdpFieldsVoV_;
172template<
typename TRAITS,
typename LO,
typename GO,
typename NodeT>
175 public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS>,
181 : globalIndexer_(indexer) {}
184 const Teuchos::ParameterList& pl);
186 void postRegistrationSetup(
typename TRAITS::SetupData d,
189 void preEvaluate(
typename TRAITS::PreEvalData d);
191 void evaluateFields(
typename TRAITS::EvalData workset);
193 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
215 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
223 Kokkos::View<typename Sacado::ScalarType<ScalarT>::type**, Kokkos::LayoutRight, PHX::Device>
scratch_vals_;
233#ifdef Panzer_BUILD_HESSIAN_SUPPORT
Non-templated empty base class for template managers.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
Teuchos::RCP< const TpetraLinearObjContainer< double, LO, GO, NodeT > > tpetraContainer_
panzer::Traits::Jacobian::ScalarT ScalarT
std::string globalDataKey_
std::vector< PHX::View< int * > > scratch_offsets_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
int other_derivative_size_
Kokkos::View< typename Sacado::ScalarType< ScalarT >::type **, Kokkos::LayoutRight, PHX::Device > scratch_vals_
Teuchos::RCP< PHX::FieldTag > scatterHolder_
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
Kokkos::View< LO **, Kokkos::LayoutRight, PHX::Device > scratch_lids_
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
ScatterResidual_Tpetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer, const Teuchos::ParameterList &pl)
ScatterResidual_Tpetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer)
std::vector< int > fieldIds_
panzer::Traits::Residual::ScalarT ScalarT
ScatterResidual_Tpetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer)
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
std::string globalDataKey_
PHX::View< int ** > scratch_lids_
Teuchos::RCP< PHX::FieldTag > scatterHolder_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
std::vector< PHX::View< int * > > scratch_offsets_
Teuchos::RCP< const TpetraLinearObjContainer< double, LO, GO, NodeT > > tpetraContainer_
std::vector< int > fieldIds_
Teuchos::RCP< PHX::FieldTag > scatterHolder_
std::vector< int > fieldIds_
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
panzer::Traits::Tangent::ScalarT ScalarT
std::vector< PHX::View< int * > > scratch_offsets_
Teuchos::RCP< const TpetraLinearObjContainer< double, LO, GO, NodeT > > tpetraContainer_
PHX::View< int ** > scratch_lids_
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
ScatterResidual_Tpetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer)
std::string globalDataKey_
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
panzer::Traits::RealType RealT
PHX::ViewOfViews< 1, Kokkos::View< RealT **, Kokkos::LayoutLeft, PHX::Device > > dfdpFieldsVoV_
Storage for the tangent data.
Pushes residual values into the residual vector for a Newton-based solve.
Evaluation type for computing the residual and its Jacobian, using FadType as the scalar type.
Evaluation type for computing the residual only, using RealType as the scalar type.
Evaluation type for computing directional derivatives (e.g. parameter sensitivities),...
double RealType
Scalar type used for the Residual evaluation type (plain double).