43 #ifndef __Panzer_ResponseScatterEvaluator_impl_hpp__ 44 #define __Panzer_ResponseScatterEvaluator_impl_hpp__ 46 #include "Intrepid2_FunctionSpaceTools.hpp" 48 #include "Phalanx_DataLayout_MDALayout.hpp" 49 #include "Teuchos_ScalarTraits.hpp" 50 #include "Teuchos_CommHelpers.hpp" 56 template <
typename EvalT,
typename Traits,
typename AggregatorT>
59 const Teuchos::RCP<panzer::ResponseData<Traits> > & data,
60 const Teuchos::RCP<const AggregatorT> & aggregator,
61 const std::vector<std::string> & responseNames,
68 responseAggregator_ = aggregator;
72 Teuchos::rcp(
new PHX::Tag<ScalarT>(
"Response Scatter: " + name,Teuchos::rcp(
new PHX::MDALayout<Dummy>(0))));
75 this->addEvaluatedField(*responseDummyTag_);
77 Teuchos::RCP<PHX::DataLayout> dl_cell = Teuchos::rcp(
new PHX::MDALayout<Cell>(worksetSize));
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
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.