43 #ifndef __Panzer_ResponseScatterEvaluator_Probe_hpp__
44 #define __Panzer_ResponseScatterEvaluator_Probe_hpp__
49 #include "PanzerDiscFE_config.hpp"
55 #include "Phalanx_Evaluator_Macros.hpp"
56 #include "Phalanx_MDField.hpp"
68 const size_t cell_index,
75 template <
typename LO,
typename GO>
83 const size_t cell_index,
96 template<
typename EvalT,
typename Traits,
typename LO,
typename GO>
99 public PHX::EvaluatorDerived<EvalT, Traits> {
104 const std::string & responseName,
105 const std::string & fieldName,
106 const int fieldComponent,
130 PHX::MDField<const ScalarT,Cell,BASIS>
field_;
142 template<
typename EvalT,
typename Traits,
typename LO,
typename GO>
151 const std::string & responseName,
152 const std::string & fieldName,
153 const int fieldComponent,
159 Base(responseName, fieldName, fieldComponent, point,
160 ir, basis, indexer, probeScatter) {}
165 template<
typename LO,
typename GO>
174 const std::string & responseName,
175 const std::string & fieldName,
176 const int fieldComponent,
182 Base(responseName, fieldName, fieldComponent, point,
183 ir, basis, indexer, probeScatter) {}
188 template <
typename LO,
typename GO>
191 const size_t cell_index,
192 const bool has_probe,
199 Kokkos::View<const LO*, PHX::Device> LIDs = globalIndexer_->getElementLIDs(cell_index);
202 for(std::size_t i=0; i<LIDs.size(); ++i) {
203 dgdx[LIDs[i]] += probeValue.dx(i);
Teuchos::RCP< const panzer::PureBasis > basis_
virtual ~ProbeScatterBase()
std::string responseName_
PHX::MDField< const ScalarT, Cell, BASIS > field_
ResponseScatterEvaluator_ProbeBase< panzer::Traits::Jacobian, panzer::Traits, LO, GO > Base
virtual void scatterDerivative(const panzer::Traits::Jacobian::ScalarT &probeValue, const size_t cell_index, const bool has_probe, panzer::Traits::EvalData workset, WorksetDetailsAccessor &wda, Teuchos::ArrayRCP< double > &dgdx) const =0
ResponseScatterEvaluator_Probe(const std::string &responseName, const std::string &fieldName, const int fieldComponent, const Teuchos::Array< double > &point, const IntegrationRule &ir, const Teuchos::RCP< const PureBasis > &basis, const Teuchos::RCP< const panzer::UniqueGlobalIndexer< LO, GO > > &indexer, const Teuchos::RCP< ProbeScatterBase > &probeScatter)
A constructor with concrete arguments instead of a parameter list.
Teuchos::RCP< const panzer::UniqueGlobalIndexer< LO, GO > > globalIndexer_
Teuchos::Array< double > point_
Teuchos::RCP< PHX::FieldTag > scatterHolder_
void preEvaluate(typename Traits::PreEvalData d)
bool computeBasisValues(typename Traits::EvalData d)
ResponseScatterEvaluator_ProbeBase< EvalT, Traits, LO, GO > Base
Teuchos::RCP< const panzer::UniqueGlobalIndexer< LO, GO > > globalIndexer_
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
ProbeScatter(const Teuchos::RCP< const panzer::UniqueGlobalIndexer< LO, GO > > &globalIndexer)
void evaluateFields(typename Traits::EvalData d)
Teuchos::RCP< const shards::CellTopology > topology_
Kokkos::DynRankView< double, PHX::Device > basis_values_
Teuchos::RCP< Response_Probe< EvalT > > responseObj_
void scatterDerivative(const panzer::Traits::Jacobian::ScalarT &probeValue, const size_t cell_index, const bool has_probe, panzer::Traits::EvalData workset, WorksetDetailsAccessor &wda, Teuchos::ArrayRCP< double > &dgdx) const
ResponseScatterEvaluator_ProbeBase(const std::string &responseName, const std::string &fieldName, const int fieldComponent, const Teuchos::Array< double > &point, const IntegrationRule &ir, const Teuchos::RCP< const PureBasis > &basis, const Teuchos::RCP< const panzer::UniqueGlobalIndexer< LO, GO > > &indexer, const Teuchos::RCP< ProbeScatterBase > &probeScatter)
A constructor with concrete arguments instead of a parameter list.
Teuchos::RCP< ProbeScatterBase > scatterObj_
ResponseScatterEvaluator_Probe(const std::string &responseName, const std::string &fieldName, const int fieldComponent, const Teuchos::Array< double > &point, const IntegrationRule &ir, const Teuchos::RCP< const PureBasis > &basis, const Teuchos::RCP< const panzer::UniqueGlobalIndexer< LO, GO > > &indexer, const Teuchos::RCP< ProbeScatterBase > &probeScatter)
A constructor with concrete arguments instead of a parameter list.