43 #ifndef Panzer_STK_ExodusReaderFactory_hpp__
44 #define Panzer_STK_ExodusReaderFactory_hpp__
48 #include "PanzerAdaptersSTK_config.hpp"
51 #ifdef PANZER_HAVE_IOSS
53 #include <stk_io/StkMeshIoBroker.hpp>
55 namespace panzer_stk {
72 int getMeshDimension(
const std::string & meshStr,stk::ParallelMachine parallelMach,
const std::string & typeStr =
"Exodus");
74 std::string fileTypeToIOSSType(
const std::string & fileType);
86 class STK_ExodusReaderFactory :
public STK_MeshFactory {
89 STK_ExodusReaderFactory();
97 STK_ExodusReaderFactory(
const std::string & fileName,
const int restartIndex=0);
117 virtual void completeMeshConstruction(STK_Interface & mesh,stk::ParallelMachine parallelMach)
const;
126 const std::string & getFileName()
const
127 {
return fileName_; }
131 void registerElementBlocks(STK_Interface & mesh,stk::io::StkMeshIoBroker & meshData)
const;
132 void registerSidesets(STK_Interface & mesh)
const;
133 void registerNodesets(STK_Interface & mesh)
const;
134 void registerEdgeBlocks(STK_Interface & mesh,stk::io::StkMeshIoBroker & meshData)
const;
135 void registerFaceBlocks(STK_Interface & mesh,stk::io::StkMeshIoBroker & meshData)
const;
137 void addEdgeBlocks(STK_Interface & mesh)
const;
138 void addFaceBlocks(STK_Interface & mesh)
const;
140 std::string mkBlockName(std::string base, std::string topo_name)
const;
141 void createUniqueEdgeTopologyMap(STK_Interface & mesh,
const stk::mesh::Part *elemBlockPart)
const;
142 void createUniqueFaceTopologyMap(STK_Interface & mesh,
const stk::mesh::Part *elemBlockPart)
const;
144 void buildMetaData(stk::ParallelMachine parallelMach, STK_Interface & mesh)
const;
146 bool doPerceptRefinement()
const;
148 std::string fileName_;
149 std::string fileType_;
160 mutable std::map<std::string,std::vector<stk::topology>> elemBlockUniqueEdgeTopologies_;
161 mutable std::map<std::string,std::vector<stk::topology>> elemBlockUniqueFaceTopologies_;
166 bool userMeshScaling_;
169 bool keepPerceptData_;
172 bool keepPerceptParentElements_;
175 std::string rebalancing_;
178 double meshScaleFactor_;
181 int levelsOfRefinement_;
184 bool createEdgeBlocks_;
187 bool createFaceBlocks_;
189 std::string geometryName_;