84 void setParameterList(Teuchos::RCP<Teuchos::ParameterList>
const& paramList);
104 void buildObjects(
const Teuchos::RCP<
const Teuchos::Comm<int> >& comm,
105 const Teuchos::RCP<panzer::GlobalData>& global_data,
106 const Teuchos::RCP<const panzer::EquationSetFactory>& eqset_factory,
109 bool meConstructionOn=
true);
116 void setNOXObserverFactory(
const Teuchos::RCP<const panzer_stk::NOXObserverFactory>& nox_observer_factory);
118#ifdef PANZER_HAVE_TEMPUS
119 void setTempusObserverFactory(
const Teuchos::RCP<const panzer_stk::TempusObserverFactory>& tempus_observer_factory);
122 template <
typename BuilderT>
123 int addResponse(
const std::string & responseName,
const std::vector<panzer::WorksetDescriptor> & wkstDesc,
const BuilderT & builder);
126 const bool write_graphviz_file=
false,
127 const std::string& graphviz_file_prefix=
"");
131 Teuchos::RCP<Thyra::ModelEvaluator<ScalarT> >
133 const Teuchos::RCP<panzer::GlobalData>& global_data,
134#ifdef PANZER_HAVE_TEMPUS
135 const Teuchos::RCP<Piro::TempusSolverForwardOnly<ScalarT> > tempusSolver = Teuchos::null,
137 const Teuchos::Ptr<const panzer_stk::NOXObserverFactory> & in_nox_observer_factory=Teuchos::null
138#ifdef PANZER_HAVE_TEMPUS
139 ,
const Teuchos::Ptr<const panzer_stk::TempusObserverFactory> & in_tempus_observer_factory=Teuchos::null
150 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> > &
getPhysicsBlocks()
const;
153 Teuchos::RCP<panzer_stk::STK_Interface>
getMesh()
const
178 Teuchos::RCP<Thyra::ModelEvaluator<double> >
180 const Teuchos::RCP<Teuchos::ParameterList> & physics_block_plist,
181 const Teuchos::RCP<const panzer::EquationSetFactory>& eqset_factory,
184 bool is_transient,
bool is_explicit,
185 const Teuchos::Ptr<const Teuchos::ParameterList> & bc_list=Teuchos::null,
193 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
196 const Teuchos::ParameterList & closure_pl,
197 const Teuchos::ParameterList & initial_cond_pl,
198 const Teuchos::ParameterList & user_data_pl,
199 bool write_dot_files,
const std::string & dot_file_prefix)
const;
205 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
206 const Teuchos::RCP<panzer::WorksetContainer> & wc,
207 const Teuchos::RCP<const panzer::GlobalIndexer> & ugi,
209 const Teuchos::RCP<panzer_stk::STK_Interface> & mesh,
211 const Teuchos::ParameterList & closure_model_pl,
212 const Teuchos::ParameterList & user_data_pl,
213 int workset_size)
const;
217 Teuchos::RCP<Thyra::ModelEvaluatorDefaultBase<double> >
219 const Teuchos::RCP<panzer::FieldManagerBuilder> & fmb,
222 const std::vector<Teuchos::RCP<Teuchos::Array<std::string> > > & p_names,
223 const std::vector<Teuchos::RCP<Teuchos::Array<double> > > & p_values,
225 const Teuchos::RCP<panzer::GlobalData> & global_data,
226 bool is_transient,
double t_init)
const;
237 double getInitialTime(Teuchos::ParameterList& transient_ic_params,
240 Teuchos::RCP<Thyra::LinearOpWithSolveFactoryBase<double> >
242 const Teuchos::RCP<const panzer::GlobalIndexer> & globalIndexer,
243 const Teuchos::RCP<panzer::ConnManager> & conn_manager,
244 const Teuchos::RCP<panzer_stk::STK_Interface> & mesh,
246 #ifdef PANZER_HAVE_TEKO
247 ,
const Teuchos::RCP<Teko::RequestHandler> & req_handler=Teuchos::null
259 Teuchos::RCP<STK_MeshFactory>
buildSTKMeshFactory(
const Teuchos::ParameterList & mesh_params)
const;
262 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> > & physicsBlocks,
268 Teuchos::RCP<panzer::FieldManagerBuilder>
270 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
271 const std::vector<panzer::BC> & bcs,
276 const Teuchos::ParameterList& closure_models,
278 const Teuchos::ParameterList& user_data,
279 bool writeGraph,
const std::string & graphPrefix,
280 bool write_field_managers,
const std::string & field_manager_prefix)
const;
285 const Teuchos::RCP<panzer::WorksetContainer> & wc,
286 const Teuchos::RCP<const panzer::GlobalIndexer> & ugi,
288 const Teuchos::RCP<panzer_stk::STK_Interface> & mesh)
const;
293 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> > & physicsBlocks,
295 const Teuchos::ParameterList & closure_models,
296 int workset_size, Teuchos::ParameterList & user_data)
const;
303 Teuchos::RCP<Thyra::ModelEvaluator<ScalarT> >
m_rome_me;
308 Teuchos::RCP<panzer_stk::STK_Interface>
m_mesh;
319#ifdef PANZER_HAVE_TEMPUS
320 Teuchos::RCP<const panzer_stk::TempusObserverFactory> m_tempus_observer_factory;
332addResponse(
const std::string & responseName,
const std::vector<panzer::WorksetDescriptor> & wkstDesc,
const BuilderT & builder)
336#ifdef PANZER_HAVE_EPETRA_STACK
337 Teuchos::RCP<Thyra::EpetraModelEvaluator> thyra_ep_me = Teuchos::rcp_dynamic_cast<Thyra::EpetraModelEvaluator>(m_physics_me);
338 Teuchos::RCP<PanzerME> panzer_me = Teuchos::rcp_dynamic_cast<PanzerME>(m_physics_me);
340 if(thyra_ep_me!=Teuchos::null && panzer_me==Teuchos::null) {
342 Teuchos::RCP<EpetraExt::ModelEvaluator> ep_me = Teuchos::rcp_const_cast<EpetraExt::ModelEvaluator>(thyra_ep_me->getEpetraModel());
343 Teuchos::RCP<panzer::ModelEvaluator_Epetra> ep_panzer_me = Teuchos::rcp_dynamic_cast<panzer::ModelEvaluator_Epetra>(ep_me);
345 return ep_panzer_me->addResponse(responseName,wkstDesc,builder);
347 else if(panzer_me!=Teuchos::null && thyra_ep_me==Teuchos::null) {
348 return panzer_me->addResponse(responseName,wkstDesc,builder);
351 Teuchos::RCP<PanzerME> panzer_me = Teuchos::rcp_dynamic_cast<PanzerME>(m_physics_me);
352 if(panzer_me!=Teuchos::null) {
353 return panzer_me->addResponse(responseName,wkstDesc,builder);
357 TEUCHOS_ASSERT(
false);
Teuchos::RCP< panzer::FieldManagerBuilder > buildFieldManagerBuilder(const Teuchos::RCP< panzer::WorksetContainer > &wc, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const std::vector< panzer::BC > &bcs, const panzer::EquationSetFactory &eqset_factory, const panzer::BCStrategyFactory &bc_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &volume_cm_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &bc_cm_factory, const Teuchos::ParameterList &closure_models, const panzer::LinearObjFactory< panzer::Traits > &lo_factory, const Teuchos::ParameterList &user_data, bool writeGraph, const std::string &graphPrefix, bool write_field_managers, const std::string &field_manager_prefix) const