43 #ifndef PANZER_FIELD_MANAGER_BUILDER_HPP 44 #define PANZER_FIELD_MANAGER_BUILDER_HPP 49 #include "Teuchos_RCP.hpp" 67 template<
typename T>
class FieldManager;
93 void print(std::ostream& os)
const;
108 std::vector< Teuchos::RCP< PHX::FieldManager<panzer::Traits> > >&
112 Teuchos::RCP< PHX::FieldManager<panzer::Traits> >
116 std::vector<WorksetDescriptor>::const_iterator itr = std::find(wkstDesc.begin(),wkstDesc.end(),wd);
117 TEUCHOS_ASSERT(itr!=wkstDesc.end());
120 int index = itr - wkstDesc.begin();
124 const std::vector<WorksetDescriptor> &
128 std::map<unsigned,PHX::FieldManager<panzer::Traits> >,
143 const Teuchos::ParameterList& closure_models,
145 const Teuchos::ParameterList& user_data);
148 const std::vector<WorksetDescriptor> & wkstDesc,
150 const Teuchos::ParameterList& closure_models,
152 const Teuchos::ParameterList& user_data,
154 bool closureModelByEBlock=
false);
159 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
163 const Teuchos::ParameterList& closure_models,
165 const Teuchos::ParameterList& user_data)
166 {
setupBCFieldManagers(bcs,physicsBlocks,Teuchos::ptrFromRef(eqset_factory),cm_factory,bc_factory,closure_models,lo_factory,user_data); }
169 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
172 const Teuchos::ParameterList& closure_models,
174 const Teuchos::ParameterList& user_data)
175 {
setupBCFieldManagers(bcs,physicsBlocks,Teuchos::null,cm_factory,bc_factory,closure_models,lo_factory,user_data); }
178 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks)
const;
183 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks)
const;
191 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
192 const Teuchos::Ptr<const panzer::EquationSetFactory> & eqset_factory,
195 const Teuchos::ParameterList& closure_models,
197 const Teuchos::ParameterList& user_data);
201 const Teuchos::ParameterList& user_data,
205 std::vector< Teuchos::RCP< PHX::FieldManager<panzer::Traits> > >
220 std::map<unsigned,PHX::FieldManager<panzer::Traits> >,
void writeVolumeTextDependencyFiles(std::string filename_prefix, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks) const
Interface for constructing a BCStrategy_TemplateManager.
void setupVolumeFieldManagers(const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const LinearObjFactory< panzer::Traits > &lo_factory, const Teuchos::ParameterList &user_data)
Allocates and initializes an equation set template manager.
Object that contains information on the physics and discretization of a block of elements with the SA...
void writeVolumeGraphvizDependencyFiles(std::string filename_prefix, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks) const
PHX::MDField< ScalarT > vector
Teuchos::RCP< PHX::FieldManager< panzer::Traits > > getVolumeFieldManager(const WorksetDescriptor &wd) const
Look up field manager by an element block ID.
void writeBCTextDependencyFiles(std::string filename_prefix) const
const std::vector< Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > & getVolumeFieldManagers() const
void setWorksetContainer(const Teuchos::RCP< WorksetContainer > &wc)
bool disablePhysicsBlockGather_
bool disablePhysicsBlockScatter_
void writeBCGraphvizDependencyFiles(std::string filename_prefix) const
const std::map< panzer::BC, std::map< unsigned, PHX::FieldManager< panzer::Traits > >, panzer::LessBC > & getBCFieldManagers() const
bool physicsBlockScatterDisabled() const
void print(std::ostream &os) const
const std::vector< WorksetDescriptor > & getVolumeWorksetDescriptors() const
Teuchos::RCP< WorksetContainer > getWorksetContainer() const
Teuchos::RCP< WorksetContainer > worksetContainer_
std::vector< WorksetDescriptor > volume_workset_desc_
Matches volume field managers so you can determine the appropriate set of worksets for each field man...
void setKokkosExtendedDataTypeDimensions(const std::string &eblock, const panzer::UniqueGlobalIndexerBase &globalIndexer, const Teuchos::ParameterList &user_data, PHX::FieldManager< panzer::Traits > &fm) const
std::vector< Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > phx_volume_field_managers_
Phalanx volume field managers for each element block.
void setupBCFieldManagers(const std::vector< panzer::BC > &bcs, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const panzer::BCStrategyFactory &bc_factory, const Teuchos::ParameterList &closure_models, const LinearObjFactory< panzer::Traits > &lo_factory, const Teuchos::ParameterList &user_data)
virtual bool registerEvaluators(PHX::FieldManager< panzer::Traits > &fm, const WorksetDescriptor &wd, const PhysicsBlock &pb) const =0
std::ostream & operator<<(std::ostream &os, const AssemblyEngineInArgs &in)
bool physicsBlockGatherDisabled() const
FieldManagerBuilder(bool disablePhysicsBlockScatter=false, bool disablePhysicsBlockGather=false)
std::map< panzer::BC, std::map< unsigned, PHX::FieldManager< panzer::Traits > >, panzer::LessBC > bc_field_managers_
Field managers for the boundary conditions.
Stores input information for a boundary condition.
void setupBCFieldManagers(const std::vector< panzer::BC > &bcs, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::EquationSetFactory &eqset_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const panzer::BCStrategyFactory &bc_factory, const Teuchos::ParameterList &closure_models, const LinearObjFactory< panzer::Traits > &lo_factory, const Teuchos::ParameterList &user_data)
bool registerEvaluators(PHX::FieldManager< panzer::Traits > &fm, const WorksetDescriptor &wd, const PhysicsBlock &pb) const
std::map< unsigned, panzer::Workset > BCFaceWorksetMap