11 #ifndef __Panzer_STK_ResponseEvaluatorFactory_SolutionWriter_hpp__
12 #define __Panzer_STK_ResponseEvaluatorFactory_SolutionWriter_hpp__
16 #include "PanzerAdaptersSTK_config.hpp"
27 #include <unordered_map>
28 #include <unordered_set>
30 namespace panzer_stk {
34 template <
typename EvalT>
55 const std::vector<panzer::WorksetDescriptor>& )
const
87 std::map<std::string,std::vector<std::string> > & basisBucket);
98 void scaleField(
const std::string & fieldName,
double fieldScalar);
124 Kokkos::DynRankView<double,PHX::Device> & centroid)
const;
156 void scaleField(
const std::string & fieldName,
double fieldScalar)
169 template <
typename T>
189 for(std::unordered_map<std::string,double>::const_iterator itr=
fieldToScalar_.begin();
191 ref->scaleField(itr->first,itr->second);
void deleteRemovedFields(const std::vector< std::string > &removedFields, std::vector< std::pair< std::string, Teuchos::RCP< const panzer::PureBasis > > > &fields) const
Delete from the argument all the fields that are in the removedFields array.
void removeField(const std::string &fieldName)
Object that contains information on the physics and discretization of a block of elements with the SA...
std::vector< std::string > removedFields_
void scaleField(const std::string &fieldName, double fieldScalar)
std::unordered_set< std::string > scaledFieldsHash_
void addAdditionalField(const std::string &fieldName, const Teuchos::RCP< const panzer::PureBasis > &basis)
virtual Teuchos::RCP< panzer::ResponseBase > buildResponseObject(const std::string &responseName) const
RespFactorySolnWriter_Builder()
bool operator()(const std::pair< std::string, Teuchos::RCP< const panzer::PureBasis > > &field)
std::unordered_map< std::string, double > fieldToScalar_
std::vector< std::string > removedFields_
Teuchos::RCP< panzer_stk::STK_Interface > mesh
virtual bool typeSupported() const
std::vector< std::pair< std::string, Teuchos::RCP< const panzer::PureBasis > > > additionalFields_
void addAdditionalField(const std::string &fieldName, const Teuchos::RCP< const panzer::PureBasis > &basis)
void setAddSolutionFields(bool asf)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
virtual Teuchos::RCP< panzer::ResponseBase > buildResponseObject(const std::string &responseName, const std::vector< panzer::WorksetDescriptor > &) const
void scaleField(const std::string &fieldName, double fieldScalar)
void setAddCoordinateFields(bool acf)
std::unordered_map< std::string, double > fieldToScalar_
void removeField(const std::string &fieldName)
static void bucketByBasisType(const std::vector< std::pair< std::string, Teuchos::RCP< const panzer::PureBasis > > > &providedDofs, std::map< std::string, std::vector< std::string > > &basisBucket)
Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > build() const
bool addCoordinateFields_
virtual ~ResponseEvaluatorFactory_SolutionWriter()
PHX::MDField< ScalarT, panzer::Cell, panzer::BASIS > field
A field to which we'll contribute, or in which we'll store, the result of computing this integral...
virtual void buildAndRegisterEvaluators(const std::string &responseName, PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &physicsBlock, const Teuchos::ParameterList &user_data) const
Teuchos::RCP< STK_Interface > mesh_
void setAddCoordinateFields(bool acf)
ResponseEvaluatorFactory_SolutionWriter(const Teuchos::RCP< STK_Interface > &mesh)
void setAddSolutionFields(bool asf)
bool addCoordinateFields_
std::vector< std::pair< std::string, Teuchos::RCP< const panzer::PureBasis > > > additionalFields_
std::vector< std::string > removedFields_
void computeReferenceCentroid(const std::map< std::string, Teuchos::RCP< const panzer::PureBasis > > &bases, int baseDimension, Kokkos::DynRankView< double, PHX::Device > ¢roid) const