11 #ifndef Panzer_STK_ExodusReaderFactory_hpp__
12 #define Panzer_STK_ExodusReaderFactory_hpp__
16 #include "PanzerAdaptersSTK_config.hpp"
19 #ifdef PANZER_HAVE_IOSS
21 #include <stk_io/StkMeshIoBroker.hpp>
23 namespace panzer_stk {
40 int getMeshDimension(
const std::string & meshStr,stk::ParallelMachine parallelMach,
const std::string & typeStr =
"Exodus");
42 std::string fileTypeToIOSSType(
const std::string & fileType);
54 class STK_ExodusReaderFactory :
public STK_MeshFactory {
57 STK_ExodusReaderFactory();
65 STK_ExodusReaderFactory(
const std::string & fileName,
const int restartIndex=0);
85 virtual void completeMeshConstruction(STK_Interface & mesh,stk::ParallelMachine parallelMach)
const;
94 const std::string & getFileName()
const
99 void registerElementBlocks(STK_Interface & mesh,stk::io::StkMeshIoBroker & meshData)
const;
100 void registerSidesets(STK_Interface & mesh)
const;
101 void registerNodesets(STK_Interface & mesh)
const;
102 void registerEdgeBlocks(STK_Interface & mesh,stk::io::StkMeshIoBroker & meshData)
const;
103 void registerFaceBlocks(STK_Interface & mesh,stk::io::StkMeshIoBroker & meshData)
const;
105 void addEdgeBlocks(STK_Interface & mesh)
const;
106 void addFaceBlocks(STK_Interface & mesh)
const;
108 std::string mkBlockName(std::string base, std::string topo_name)
const;
109 void createUniqueEdgeTopologyMap(STK_Interface & mesh,
const stk::mesh::Part *elemBlockPart)
const;
110 void createUniqueFaceTopologyMap(STK_Interface & mesh,
const stk::mesh::Part *elemBlockPart)
const;
112 void buildMetaData(stk::ParallelMachine parallelMach, STK_Interface & mesh)
const;
114 bool doPerceptRefinement()
const;
116 std::string fileName_;
117 std::string fileType_;
128 mutable std::map<std::string,std::vector<stk::topology>> elemBlockUniqueEdgeTopologies_;
129 mutable std::map<std::string,std::vector<stk::topology>> elemBlockUniqueFaceTopologies_;
134 bool userMeshScaling_;
137 bool keepPerceptData_;
140 bool keepPerceptParentElements_;
143 std::string rebalancing_;
146 double meshScaleFactor_;
149 int levelsOfRefinement_;
152 bool createEdgeBlocks_;
155 bool createFaceBlocks_;
157 std::string geometryName_;