43 #ifndef PANZER_FIELD_MANAGER_BUILDER_HPP
44 #define PANZER_FIELD_MANAGER_BUILDER_HPP
59 struct EquationSetFactory;
60 struct BCStrategyFactory;
65 template<
typename T>
class FieldManager;
87 FieldManagerBuilder(
bool disablePhysicsBlockScatter=
false,
bool disablePhysicsBlockGather=
false);
89 void print(std::ostream& os)
const;
103 const std::vector< Teuchos::RCP< PHX::FieldManager<panzer::Traits> > >&
111 std::vector<WorksetDescriptor>::const_iterator itr = std::find(wkstDesc.begin(),wkstDesc.end(),wd);
115 int index = itr - wkstDesc.begin();
119 const std::vector<WorksetDescriptor> &
123 std::map<unsigned,PHX::FieldManager<panzer::Traits> >,
143 const std::vector<WorksetDescriptor> & wkstDesc,
149 bool closureModelByEBlock=
false);
161 {
setupBCFieldManagers(bcs,physicsBlocks,Teuchos::ptrFromRef(eqset_factory),cm_factory,bc_factory,closure_models,lo_factory,user_data); }
170 {
setupBCFieldManagers(bcs,physicsBlocks,Teuchos::null,cm_factory,bc_factory,closure_models,lo_factory,user_data); }
206 std::vector< Teuchos::RCP< PHX::FieldManager<panzer::Traits> > >
221 std::map<unsigned,PHX::FieldManager<panzer::Traits> >,
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.
bool physicsBlockScatterDisabled() const
const std::map< panzer::BC, std::map< unsigned, PHX::FieldManager< panzer::Traits > >, panzer::LessBC > & getBCFieldManagers() const
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
void writeBCGraphvizDependencyFiles(std::string filename_prefix) const
void clearVolumeFieldManagers(bool clearVolumeWorksets=true)
Delete all volume field managers, retaining the BC ones.
void setKokkosExtendedDataTypeDimensions(const std::string &eblock, const panzer::GlobalIndexer &globalIndexer, const Teuchos::ParameterList &user_data, PHX::FieldManager< panzer::Traits > &fm) const
void writeBCTextDependencyFiles(std::string filename_prefix) const
void setWorksetContainer(const Teuchos::RCP< WorksetContainer > &wc)
Teuchos::RCP< WorksetContainer > getWorksetContainer() const
bool physicsBlockGatherDisabled() const
bool registerEvaluators(PHX::FieldManager< panzer::Traits > &, const WorksetDescriptor &, const PhysicsBlock &) const
void print(std::ostream &os) const
bool disablePhysicsBlockGather_
bool disablePhysicsBlockScatter_
void writeVolumeTextDependencyFiles(std::string filename_prefix, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks) const
const std::vector< Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > & getVolumeFieldManagers() 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...
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)
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.
Teuchos::RCP< PHX::FieldManager< panzer::Traits > > getVolumeFieldManager(const WorksetDescriptor &wd) const
Look up field manager by an element block ID.
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)
std::map< unsigned, panzer::Workset > BCFaceWorksetMap
#define TEUCHOS_ASSERT(assertion_test)
std::vector< bool > active_evaluation_types_
Entries correspond to evaluation type mpl vector in traits. A value of true means the evaluation type...
void setActiveEvaluationTypes(const std::vector< bool > &aet)
Set a vector of active evaluation types to allocate.
const std::vector< WorksetDescriptor > & getVolumeWorksetDescriptors() const