43 #ifndef __Panzer_ResponseScatterEvaluator_ExtremeValue_hpp__ 44 #define __Panzer_ResponseScatterEvaluator_ExtremeValue_hpp__ 49 #include "PanzerDiscFE_config.hpp" 55 #include "Phalanx_Evaluator_Macros.hpp" 56 #include "Phalanx_MDField.hpp" 66 virtual void scatterDerivative(
const PHX::MDField<const panzer::Traits::Jacobian::ScalarT,panzer::Cell> & cellExtremeValue,
69 Teuchos::ArrayRCP<double> & dgdx)
const = 0;
72 template <
typename LO,
typename GO>
78 void scatterDerivative(
const PHX::MDField<const panzer::Traits::Jacobian::ScalarT,panzer::Cell> & cellExtremeValue,
81 Teuchos::ArrayRCP<double> & dgdx)
const;
90 template<
typename EvalT,
typename Traits>
92 public PHX::EvaluatorDerived<EvalT, Traits> {
98 const Teuchos::RCP<ExtremeValueScatterBase> & functionalScatter);
101 const Teuchos::RCP<ExtremeValueScatterBase> & functionalScatter);
122 template <
typename LO,
typename GO>
124 const PHX::MDField<const panzer::Traits::Jacobian::ScalarT,panzer::Cell> & cellExtremeValue,
127 Teuchos::ArrayRCP<double> & dgdx)
const 129 TEUCHOS_ASSERT(
false);
virtual ~ExtremeValueScatterBase()
ExtremeValueScatter(const Teuchos::RCP< const panzer::UniqueGlobalIndexer< LO, GO > > &globalIndexer)
Teuchos::RCP< ExtremeValueScatterBase > scatterObj_
void preEvaluate(typename Traits::PreEvalData d)
ResponseScatterEvaluator_ExtremeValue(const std::string &name, const CellData &cd, bool useMax, const Teuchos::RCP< ExtremeValueScatterBase > &functionalScatter)
A constructor with concrete arguments instead of a parameter list.
Teuchos::RCP< const panzer::UniqueGlobalIndexer< LO, GO > > globalIndexer_
Data for determining cell topology and dimensionality.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
virtual void scatterDerivative(const PHX::MDField< const panzer::Traits::Jacobian::ScalarT, panzer::Cell > &cellExtremeValue, panzer::Traits::EvalData workset, WorksetDetailsAccessor &wda, Teuchos::ArrayRCP< double > &dgdx) const =0
PHX::MDField< const ScalarT, panzer::Cell > cellExtremeValue_
std::string responseName_
void scatterDerivative(const PHX::MDField< const panzer::Traits::Jacobian::ScalarT, panzer::Cell > &cellExtremeValue, panzer::Traits::EvalData workset, WorksetDetailsAccessor &wda, Teuchos::ArrayRCP< double > &dgdx) const
void evaluateFields(typename Traits::EvalData d)
Teuchos::RCP< PHX::FieldTag > scatterHolder_
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
Teuchos::RCP< Response_ExtremeValue< EvalT > > responseObj_