44 #ifndef __Panzer_ResponseFactory_BCStrategyAdapter_hpp__
45 #define __Panzer_ResponseFactory_BCStrategyAdapter_hpp__
51 #include "Teuchos_RCP.hpp"
53 #include "Panzer_BCStrategy.hpp"
57 #include "Panzer_Normals.hpp"
60 #include "Phalanx_Evaluator_WithBaseImpl.hpp"
61 #include "Phalanx_FieldManager.hpp"
62 #include "Phalanx_MDField.hpp"
70 namespace response_bc_adapters {
74 template <
typename EvalT>
77 std::vector<std::pair<std::string,Teuchos::RCP<ResponseEvaluatorFactory_TemplateManager<panzer::Traits> > > >
refVec_;
94 const Teuchos::ParameterList& models,
95 const Teuchos::ParameterList& user_data)
const
100 for(std::size_t i=0;i<
refVec_.size();i++) {
101 Teuchos::RCP<const ResponseEvaluatorFactoryBase> respEvalFact =
refVec_[i].second->template getAsBase<EvalT>();
104 if(respEvalFact!=Teuchos::null && respEvalFact->typeSupported())
105 respEvalFact->buildAndRegisterEvaluators(
refVec_[i].first,fm,side_pb,user_data);
113 const Teuchos::ParameterList& )
const {}
119 const Teuchos::ParameterList& user_data)
const
128 const std::map<int,Teuchos::RCP<panzer::IntegrationRule> > & int_rules = side_pb.
getIntegrationRules();
129 for(std::map<
int,Teuchos::RCP<panzer::IntegrationRule> >::const_iterator itr=int_rules.begin();
130 itr!=int_rules.end();++itr) {
134 Teuchos::ParameterList p(s.str());
135 p.set<std::string>(
"Name",
"Side Normal");
137 p.set< Teuchos::RCP<panzer::IntegrationRule> >(
"IR", Teuchos::rcp_const_cast<panzer::IntegrationRule>(itr->second));
138 p.set<
bool>(
"Normalize",
true);
142 fm.template registerEvaluator<EvalT>(op);
155 typedef std::vector<std::pair<std::string,Teuchos::RCP<ResponseEvaluatorFactory_TemplateManager<panzer::Traits> > > >
RespFact_TM_Vector;
162 template <
typename EvalT>
163 Teuchos::RCP<BCStrategyBase>
build()
const
169 typedef std::vector<std::pair<std::string,Teuchos::RCP<ResponseEvaluatorFactory_TemplateManager<panzer::Traits> > > >
RespFact_TM_Vector;
175 Teuchos::RCP<panzer::BCStrategy_TemplateManager<panzer::Traits> >
178 Teuchos::RCP<panzer::BCStrategy_TemplateManager<panzer::Traits> > bcstrategy_tm
181 BCHashMap::const_iterator itr =
hashMap_.find(bc);
182 TEUCHOS_ASSERT(itr!=
hashMap_.end());
185 bcstrategy_tm->buildObjects(builder);
187 return bcstrategy_tm;