1 #ifndef __Panzer_STK_ResponseEvaluatorFactory_SolutionWriter_hpp__
2 #define __Panzer_STK_ResponseEvaluatorFactory_SolutionWriter_hpp__
6 #include "PanzerAdaptersSTK_config.hpp"
14 #include "Teuchos_RCP.hpp"
15 #include "Teuchos_ParameterList.hpp"
17 #include <unordered_map>
18 #include <unordered_set>
24 template <
typename EvalT>
42 virtual Teuchos::RCP<panzer::ResponseBase>
buildResponseObject(
const std::string & responseName)
const;
45 const std::vector<panzer::WorksetDescriptor>& )
const
62 const Teuchos::ParameterList & user_data)
const;
76 static void bucketByBasisType(
const std::vector<std::pair<std::string,Teuchos::RCP<const panzer::PureBasis> > > & providedDofs,
77 std::map<std::string,std::vector<std::string> > & basisBucket);
88 void scaleField(
const std::string & fieldName,
double fieldScalar);
92 void addAdditionalField(
const std::string & fieldName,
const Teuchos::RCP<const panzer::PureBasis> & basis);
114 Kokkos::DynRankView<double,PHX::Device> & centroid)
const;
118 std::vector<std::pair<std::string,Teuchos::RCP<const panzer::PureBasis> > > & fields)
const;
122 bool operator() (
const std::pair<std::string,Teuchos::RCP<const panzer::PureBasis> > &
field)
143 Teuchos::RCP<panzer_stk::STK_Interface>
mesh;
145 void scaleField(
const std::string & fieldName,
double fieldScalar)
148 void addAdditionalField(
const std::string & fieldName,
const Teuchos::RCP<const panzer::PureBasis> & basis)
158 template <
typename T>
159 Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase>
build()
const
161 Teuchos::RCP<ResponseEvaluatorFactory_SolutionWriter<T> > ref =
178 for(std::unordered_map<std::string,double>::const_iterator itr=
fieldToScalar_.begin();
180 ref->scaleField(itr->first,itr->second);