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"
75 class LinearObjContainer;
89 template <
typename TraitsT>
92 typedef typename TraitsT::EvalTypes
TypeSeq;
102 const Teuchos::RCP<const UniqueGlobalIndexerBase> & ugi,
104 bool residualType=
false);
110 void initialize(
const Teuchos::RCP<WorksetContainer> & wc,
111 const Teuchos::RCP<const UniqueGlobalIndexerBase> & ugi,
120 const Teuchos::RCP<const UniqueGlobalIndexerBase> & ugi,
155 template <
typename ResponseEvaluatorFactory_BuilderT>
157 const std::vector<std::string> & blocks,
158 const ResponseEvaluatorFactory_BuilderT & builder);
167 template <
typename ResponseEvaluatorFactory_BuilderT>
169 const std::vector<std::pair<std::string,std::string> > & sideset_blocks,
170 const ResponseEvaluatorFactory_BuilderT & builder);
180 template <
typename ResponseEvaluatorFactory_BuilderT>
182 const std::vector<WorksetDescriptor> & wkst_desc,
183 const ResponseEvaluatorFactory_BuilderT & builder);
192 template <
typename EvalT>
193 Teuchos::RCP<ResponseBase>
getResponse(
const std::string & responseName)
const;
200 template <
typename EvalT>
201 void getResponses(std::vector<Teuchos::RCP<ResponseBase> > & responses)
const;
207 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
209 const Teuchos::ParameterList& closure_models,
210 const Teuchos::ParameterList& user_data,
211 const bool write_graphviz_file=
false,
212 const std::string& graphviz_file_prefix=
"")
213 {
buildResponseEvaluators(physicsBlocks,Teuchos::null,cm_factory,closure_models,user_data,write_graphviz_file,graphviz_file_prefix); }
219 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
222 const Teuchos::ParameterList& closure_models,
223 const Teuchos::ParameterList& user_data,
224 const bool write_graphviz_file=
false,
225 const std::string& graphviz_file_prefix=
"")
226 {
buildResponseEvaluators(physicsBlocks,Teuchos::ptrFromRef(eqset_factory),cm_factory,closure_models,user_data,write_graphviz_file,graphviz_file_prefix); }
232 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
234 const std::vector<BC> & bcs,
237 const Teuchos::ParameterList& closure_models,
238 const Teuchos::ParameterList& user_data,
239 const bool write_graphviz_file=
false,
240 const std::string& graphviz_file_prefix=
"");
250 template <
typename EvalT>
255 template <
typename EvalT>
260 void print(std::ostream & os)
const;
280 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
281 const Teuchos::Ptr<const panzer::EquationSetFactory> & eqset_factory,
283 const Teuchos::ParameterList& closure_models,
284 const Teuchos::ParameterList& user_data,
285 const bool write_graphviz_file,
286 const std::string& graphviz_file_prefix);
313 #ifdef Panzer_BUILD_HESSIAN_SUPPORT
320 const std::vector<WorksetDescriptor> & wkst_desc,
331 Teuchos::RCP<FieldManagerBuilder>
fmb2_;
335 Teuchos::RCP<std::vector<std::pair<std::string,Teuchos::RCP<ResponseEvaluatorFactory_TemplateManager<TraitsT> > > > >,
340 std::vector<std::pair<std::string,Teuchos::RCP<ResponseEvaluatorFactory_TemplateManager<TraitsT> > > > >
respFactories_;
361 if(
tm_.
get<T>()!=Teuchos::null)