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
 
Teuchos::Array< double > point_
 
Teuchos::RCP< PHX::FieldTag > scatterHolder_
 
void preEvaluate(typename Traits::PreEvalData d)
 
bool computeBasisValues(typename Traits::EvalData d)
 
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
 
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::GlobalIndexer > &indexer, const Teuchos::RCP< ProbeScatterBase > &probeScatter)
A constructor with concrete arguments instead of a parameter list. 
 
ResponseScatterEvaluator_ProbeBase< EvalT, Traits, LO, GO > Base
 
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers. 
 
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
 
void evaluateFields(typename Traits::EvalData d)
 
Teuchos::RCP< const shards::CellTopology > topology_
 
Kokkos::DynRankView< double, PHX::Device > basis_values_
 
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::GlobalIndexer > &indexer, const Teuchos::RCP< ProbeScatterBase > &probeScatter)
A constructor with concrete arguments instead of a parameter list. 
 
ProbeScatter(const Teuchos::RCP< const panzer::GlobalIndexer > &globalIndexer)
 
Teuchos::RCP< Response_Probe< EvalT > > responseObj_
 
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::GlobalIndexer > &indexer, const Teuchos::RCP< ProbeScatterBase > &probeScatter)
A constructor with concrete arguments instead of a parameter list. 
 
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 
 
Teuchos::RCP< ProbeScatterBase > scatterObj_