43 #ifndef __Panzer_ResponseLibrary_hpp__ 44 #define __Panzer_ResponseLibrary_hpp__ 51 #include <unordered_map> 53 #include "Teuchos_ParameterList.hpp" 55 #include "Phalanx_FieldManager.hpp" 57 #include "PanzerDiscFE_config.hpp" 91 template <
typename TraitsT>
94 typedef typename TraitsT::EvalTypes
TypeSeq;
104 const Teuchos::RCP<const UniqueGlobalIndexerBase> & ugi,
106 bool residualType=
false);
112 void initialize(
const Teuchos::RCP<WorksetContainer> & wc,
113 const Teuchos::RCP<const UniqueGlobalIndexerBase> & ugi,
122 const Teuchos::RCP<const UniqueGlobalIndexerBase> & ugi,
157 template <
typename ResponseEvaluatorFactory_BuilderT>
159 const std::vector<std::string> & blocks,
160 const ResponseEvaluatorFactory_BuilderT & builder);
169 template <
typename ResponseEvaluatorFactory_BuilderT>
171 const std::vector<std::pair<std::string,std::string> > & sideset_blocks,
172 const ResponseEvaluatorFactory_BuilderT & builder);
182 template <
typename ResponseEvaluatorFactory_BuilderT>
184 const std::vector<WorksetDescriptor> & wkst_desc,
185 const ResponseEvaluatorFactory_BuilderT & builder);
194 template <
typename EvalT>
195 Teuchos::RCP<ResponseBase>
getResponse(
const std::string & responseName)
const;
202 template <
typename EvalT>
209 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
211 const Teuchos::ParameterList& closure_models,
212 const Teuchos::ParameterList& user_data,
213 const bool write_graphviz_file=
false,
214 const std::string& graphviz_file_prefix=
"")
215 {
buildResponseEvaluators(physicsBlocks,Teuchos::null,cm_factory,closure_models,user_data,write_graphviz_file,graphviz_file_prefix); }
221 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
224 const Teuchos::ParameterList& closure_models,
225 const Teuchos::ParameterList& user_data,
226 const bool write_graphviz_file=
false,
227 const std::string& graphviz_file_prefix=
"")
228 {
buildResponseEvaluators(physicsBlocks,Teuchos::ptrFromRef(eqset_factory),cm_factory,closure_models,user_data,write_graphviz_file,graphviz_file_prefix); }
234 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
236 const std::vector<BC> & bcs,
239 const Teuchos::ParameterList& closure_models,
240 const Teuchos::ParameterList& user_data,
241 const bool write_graphviz_file=
false,
242 const std::string& graphviz_file_prefix=
"");
252 template <
typename EvalT>
257 template <
typename EvalT>
262 void print(std::ostream & os)
const;
282 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
283 const Teuchos::Ptr<const panzer::EquationSetFactory> & eqset_factory,
285 const Teuchos::ParameterList& closure_models,
286 const Teuchos::ParameterList& user_data,
287 const bool write_graphviz_file,
288 const std::string& graphviz_file_prefix);
315 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 322 const std::vector<WorksetDescriptor> & wkst_desc,
333 Teuchos::RCP<FieldManagerBuilder>
fmb2_;
337 Teuchos::RCP<std::vector<std::pair<std::string,Teuchos::RCP<ResponseEvaluatorFactory_TemplateManager<TraitsT> > > > >,
342 std::vector<std::pair<std::string,Teuchos::RCP<ResponseEvaluatorFactory_TemplateManager<TraitsT> > > > >
respFactories_;
363 if(
tm_.
get<T>()!=Teuchos::null)
ValueType get() const
Access routine.
Teuchos::RCP< const UniqueGlobalIndexerBase > getGlobalIndexer() const
Get the internally stored global indexer.
Teuchos::RCP< LinearObjContainer > ghostedContainer_
Interface for constructing a BCStrategy_TemplateManager.
void addResponse(const std::string &responseName, const std::vector< std::string > &blocks, const ResponseEvaluatorFactory_BuilderT &builder)
Allocates and initializes an equation set template manager.
void initializeResidualType(const Teuchos::RCP< WorksetContainer > &wc, const Teuchos::RCP< const UniqueGlobalIndexerBase > &ugi, const Teuchos::RCP< const LinearObjFactory< TraitsT > > &lof)
void initialize(const Teuchos::RCP< WorksetContainer > &wc, const Teuchos::RCP< const UniqueGlobalIndexerBase > &ugi, const Teuchos::RCP< const LinearObjFactory< TraitsT > > &lof)
void addResponsesToInArgs(panzer::AssemblyEngineInArgs &input_args) const
void disableGather(bool value)
Teuchos::RCP< const UniqueGlobalIndexerBase > globalIndexer_
void disableScatter(bool value)
Teuchos::RCP< ResponseBase > getResponse(const std::string &responseName) const
void buildResponseEvaluators(const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::EquationSetFactory &eqset_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="")
TraitsT::EvalTypes TypeSeq
std::unordered_map< WorksetDescriptor, std::vector< std::pair< std::string, Teuchos::RCP< ResponseEvaluatorFactory_TemplateManager< TraitsT > > > > > respFactories_
Teuchos::RCP< const LinearObjFactory< TraitsT > > getLinearObjFactory() const
Get the internally stored linear object factory.
Printer(const Response_TemplateManager &tm, std::ostream &os)
PHX::MDField< ScalarT > vector
const Response_TemplateManager & tm_
bool responseEvaluatorsBuilt_
void evaluate(const panzer::AssemblyEngineInArgs &input_args)
Teuchos::RCP< WorksetContainer > getWorksetContainer() const
void buildResidualResponseEvaluators(const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::EquationSetFactory &eqset_factory, const std::vector< BC > &bcs, const panzer::BCStrategyFactory &bc_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="")
Teuchos::RCP< FieldManagerBuilder > fmb2_
void buildResponseEvaluators(const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="")
void addResidualResponsesToInArgs(Overloader< typename TraitsT::Residual >, panzer::AssemblyEngineInArgs &input_args) const
void copyResponses(const ResponseLibrary &rl)
bool isResidualType() const
Teuchos::RCP< WorksetContainer > wkstContainer_
TypeAssocMap< panzer::Traits::EvalTypes, Teuchos::RCP< ResponseBase > > Response_TemplateManager
std::unordered_map< std::string, Response_TemplateManager > responseObjects_
Store all the response objects.
void getResponses(std::vector< Teuchos::RCP< ResponseBase > > &responses) const
std::unordered_map< panzer::BC, Teuchos::RCP< std::vector< std::pair< std::string, Teuchos::RCP< ResponseEvaluatorFactory_TemplateManager< TraitsT > > > > >, BC::BCHash, BC::BCEquality > BCHashMap
bool closureModelByEBlock_
AssemblyEngine_TemplateManager< panzer::Traits > ae_tm2_
BCHashMap respBCFactories_
Teuchos::RCP< const LinearObjFactory< TraitsT > > linObjFactory_
Stores input information for a boundary condition.
bool responseEvaluatorsBuilt() const
void print(std::ostream &os) const
void addResidualResponse()
A struct for handling function overloading.
void useClosureModelByEBlockInResponse(bool value)