11#ifndef PANZER_EVALUATOR_SCATTER_DIRICHLET_RESIDUAL_TPETRA_DECL_HPP
12#define PANZER_EVALUATOR_SCATTER_DIRICHLET_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"
43template<
typename EvalT,
typename Traits,
typename LO,
typename GO,
typename NodeT=panzer::TpetraNodeType>
56template<
typename TRAITS,
typename LO,
typename GO,
typename NodeT>
59 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
64 : globalIndexer_(indexer) {}
67 const Teuchos::ParameterList& p);
69 void postRegistrationSetup(
typename TRAITS::SetupData d,
72 void preEvaluate(
typename TRAITS::PreEvalData d);
74 void evaluateFields(
typename TRAITS::EvalData workset);
76 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
98 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
117 std::vector< PHX::MDField<const bool,Cell,NODE> >
applyBC_;
127template<
typename TRAITS,
typename LO,
typename GO,
typename NodeT>
130 public PHX::EvaluatorDerived<panzer::Traits::Tangent, TRAITS>,
135 : globalIndexer_(indexer) {}
138 const Teuchos::ParameterList& p);
140 void postRegistrationSetup(
typename TRAITS::SetupData d,
143 void preEvaluate(
typename TRAITS::PreEvalData d);
145 void evaluateFields(
typename TRAITS::EvalData workset);
147 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
170 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
190 std::vector< PHX::MDField<const bool,Cell,NODE> >
applyBC_;
197 PHX::ViewOfViews<1,Kokkos::View<RealT**,Kokkos::LayoutLeft,PHX::Device>>
dfdpFieldsVoV_;
203template<
typename TRAITS,
typename LO,
typename GO,
typename NodeT>
206 public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS>,
211 : globalIndexer_(indexer) {}
214 const Teuchos::ParameterList& p);
216 void preEvaluate(
typename TRAITS::PreEvalData d);
218 void postRegistrationSetup(
typename TRAITS::SetupData d,
221 void evaluateFields(
typename TRAITS::EvalData workset);
223 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
246 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
265 std::vector< PHX::MDField<const bool,Cell,NODE> >
applyBC_;
271#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< PHX::FieldTag > scatterHolder_
ScatterDirichletResidual_Tpetra(const Teuchos::RCP< const GlobalIndexer > &indexer)
std::string globalDataKey_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
std::size_t side_subcell_dim_
bool checkApplyBC_
If set to true, allows runtime disabling of dirichlet BCs on node-by-node basis.
std::vector< int > fieldIds_
TpetraLinearObjContainer< double, LO, GO, NodeT > LOC
Teuchos::RCP< const TpetraLinearObjContainer< double, LO, GO, NodeT > > tpetraContainer_
std::vector< PHX::MDField< const bool, Cell, NODE > > applyBC_
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
ScatterDirichletResidual_Tpetra()
Teuchos::RCP< typename LOC::VectorType > dirichletCounter_
panzer::Traits::Jacobian::ScalarT ScalarT
std::size_t local_side_id_
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
std::vector< PHX::MDField< const bool, Cell, NODE > > applyBC_
std::vector< PHX::View< int * > > scratch_basisIds_
TpetraLinearObjContainer< double, LO, GO, NodeT > LOC
std::size_t side_subcell_dim_
ScatterDirichletResidual_Tpetra()
ScatterDirichletResidual_Tpetra(const Teuchos::RCP< const GlobalIndexer > &indexer)
std::size_t local_side_id_
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
std::vector< int > fieldIds_
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
Teuchos::RCP< PHX::FieldTag > scatterHolder_
panzer::Traits::Residual::ScalarT ScalarT
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Teuchos::RCP< const LOC > tpetraContainer_
std::string globalDataKey_
Teuchos::RCP< typename LOC::VectorType > dirichletCounter_
bool checkApplyBC_
If set to true, allows runtime disabling of dirichlet BCs on node-by-node basis.
std::vector< PHX::View< int * > > scratch_offsets_
PHX::View< int ** > scratch_lids_
std::vector< PHX::View< int * > > scratch_offsets_
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Teuchos::RCP< const LOC > tpetraContainer_
TpetraLinearObjContainer< double, LO, GO, NodeT > LOC
std::size_t side_subcell_dim_
PHX::View< int ** > scratch_lids_
ScatterDirichletResidual_Tpetra()
Teuchos::RCP< PHX::FieldTag > scatterHolder_
std::vector< int > fieldIds_
std::vector< PHX::View< int * > > scratch_basisIds_
Teuchos::RCP< typename LOC::VectorType > dirichletCounter_
ScatterDirichletResidual_Tpetra(const Teuchos::RCP< const GlobalIndexer > &indexer)
std::size_t local_side_id_
panzer::Traits::Tangent::ScalarT ScalarT
panzer::Traits::RealType RealT
PHX::ViewOfViews< 1, Kokkos::View< RealT **, Kokkos::LayoutLeft, PHX::Device > > dfdpFieldsVoV_
Storage for the tangent data.
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
std::string globalDataKey_
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
std::vector< PHX::MDField< const bool, Cell, NODE > > applyBC_
bool checkApplyBC_
If set to true, allows runtime disabling of dirichlet BCs on node-by-node basis.
std::vector< Teuchos::ArrayRCP< double > > dfdp_vectors_
Pushes residual values into the residual vector for a Newton-based solve.
Tpetra-backed implementation of LinearObjContainer.
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).