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;
72template <
typename LO,
typename GO>
78 void scatterDerivative(
const PHX::MDField<const panzer::Traits::Jacobian::ScalarT,panzer::Cell> & cellExtremeValue,
81 Teuchos::ArrayRCP<double> & dgdx)
const;
90template<
typename EvalT,
typename Traits>
92 public PHX::EvaluatorDerived<EvalT, Traits> {
98 const Teuchos::RCP<ExtremeValueScatterBase> & functionalScatter);
101 const Teuchos::RCP<ExtremeValueScatterBase> & functionalScatter);
119template <
typename LO,
typename GO>
121 const PHX::MDField<const panzer::Traits::Jacobian::ScalarT,panzer::Cell> & ,
124 Teuchos::ArrayRCP<double> & )
const
126 TEUCHOS_ASSERT(
false);
Data for determining cell topology and dimensionality.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
virtual ~ExtremeValueScatterBase()
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
ExtremeValueScatter(const Teuchos::RCP< const panzer::GlobalIndexer > &globalIndexer)
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
void scatterDerivative(const PHX::MDField< const panzer::Traits::Jacobian::ScalarT, panzer::Cell > &cellExtremeValue, panzer::Traits::EvalData workset, WorksetDetailsAccessor &wda, Teuchos::ArrayRCP< double > &dgdx) const
std::string responseName_
void preEvaluate(typename Traits::PreEvalData d)
PHX::MDField< const ScalarT, panzer::Cell > cellExtremeValue_
Teuchos::RCP< ExtremeValueScatterBase > scatterObj_
Teuchos::RCP< Response_ExtremeValue< EvalT > > responseObj_
void evaluateFields(typename Traits::EvalData d)
Teuchos::RCP< PHX::FieldTag > scatterHolder_