43 #ifndef __Panzer_ResponseScatterEvaluator_impl_hpp__
44 #define __Panzer_ResponseScatterEvaluator_impl_hpp__
46 #include "Intrepid2_FunctionSpaceTools.hpp"
48 #include "Phalanx_DataLayout_MDALayout.hpp"
50 #include "Teuchos_CommHelpers.hpp"
56 template <
typename EvalT,
typename Traits,
typename AggregatorT>
59 const Teuchos::RCP<panzer::ResponseData<Traits> > & data,
61 const std::vector<std::string> & responseNames,
68 responseAggregator_ = aggregator;
75 this->addEvaluatedField(*responseDummyTag_);
78 for (std::vector<std::string>::const_iterator s=responseNames.begin(); s!=responseNames.end(); ++s) {
79 PHX::MDField<ScalarT,Cell>
field(*s,dl_cell);
80 responseFields_.push_back(field);
81 this->addDependentField(field);
86 std::string n =
"Response Scatter: " + name;
91 template <
typename EvalT,
typename Traits,
typename AggregatorT>
95 for(
typename std::vector<PHX::MDField<ScalarT,Cell> >::iterator
field = responseFields_.begin();
97 this->utils.setFieldData(*
field,fm);
101 template <
typename EvalT,
typename Traits,
typename AggregatorT>
109 responseAggregator_->template evaluateFields<PHX::MDField<ScalarT,Cell> > (workset,*responseData_,responseFields_);
void evaluateFields(typename Traits::EvalData d)
PHX::MDField< ScalarT > vector
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
PHX::MDField< const ScalarT, Cell, IP > field
ResponseScatterEvaluator(const std::string &name, const Teuchos::RCP< panzer::ResponseData< Traits > > &data, const Teuchos::RCP< const AggregatorT > &aggregator, const std::vector< std::string > &responseNames, int worksetSize)
A constructor with concrete arguments instead of a parameter list.