1 #include "Gmesh_STKmesh_Fixture.hpp" 3 #include <stk_mesh/base/Part.hpp> 5 #include <stk_mesh/base/MetaData.hpp> 7 #include <stk_io/IossBridge.hpp> 9 #include <generated/Iogn_DatabaseIO.h> 10 #include <generated/Iogn_GeneratedMesh.h> 12 #include <init/Ionit_Initializer.h> 13 #include <Ioss_Region.h> 15 #include <Shards_BasicTopologies.hpp> 22 static const size_t spatial_dimension = 3;
26 const std::string& gmesh_spec)
29 m_meta_data(spatial_dimension),
30 m_bulk_data(m_meta_data.get_meta_data(m_meta_data), comm),
37 Ioss::Init::Initializer init_db;
39 stk_classic::io::MeshData mesh_data;
41 m_meta_data, m_mesh_data);
43 const Iogn::DatabaseIO* database =
44 dynamic_cast<const Iogn::DatabaseIO*
>(m_mesh_data.m_input_region->get_database());
47 m_num_x = database->get_generated_mesh()->get_num_x();
48 m_num_y = database->get_generated_mesh()->get_num_y();
49 m_num_z = database->get_generated_mesh()->get_num_z();
52 const std::vector<std::string> sideset_names = database->get_sideset_names();
54 for (std::vector<std::string>::const_iterator itr = sideset_names.begin();
55 itr != sideset_names.end(); ++itr) {
56 m_sideset_names.push_back(*itr);
57 m_sideset_parts.push_back(m_meta_data.
get_part(*itr));
74 if (Iogn::GeneratedMesh::PZ < surf_id) {
75 throw std::runtime_error(
"Invalid surface id");
80 case Iogn::GeneratedMesh::MX:
81 case Iogn::GeneratedMesh::PX:
82 return m_num_y*m_num_z;
84 case Iogn::GeneratedMesh::MY:
85 case Iogn::GeneratedMesh::PY:
86 return m_num_x*m_num_z;
88 case Iogn::GeneratedMesh::MZ:
89 case Iogn::GeneratedMesh::PZ:
90 return m_num_x*m_num_y;
97 std::pair<int, double>
101 if (Iogn::GeneratedMesh::PZ < surf_id) {
102 throw std::runtime_error(
"Invalid surface id");
107 case Iogn::GeneratedMesh::MX:
108 return std::make_pair<int, double>(0, 0.0);
110 case Iogn::GeneratedMesh::PX:
111 return std::make_pair<int, double>(0, (double)m_num_x);
113 case Iogn::GeneratedMesh::MY:
114 return std::make_pair<int, double>(1, 0.0);
116 case Iogn::GeneratedMesh::PY:
117 return std::make_pair<int, double>(1, (double)m_num_y);
119 case Iogn::GeneratedMesh::MZ:
120 return std::make_pair<int, double>(2, 0.0);
122 case Iogn::GeneratedMesh::PZ:
123 return std::make_pair<int, double>(2, (double)m_num_z);
127 return std::make_pair<int, double>(-1, -1.0);
134 return 2 * (m_num_x*m_num_y + m_num_x*m_num_z + m_num_y*m_num_z);
141 return m_num_x * m_num_y * m_num_z;
148 return (m_num_x+1)*(m_num_y+1)*(m_num_z+1);
size_t getSideCount() const
std::pair< int, double > getSurfCoordInfo(size_t surf_id) const
void populate_bulk_data(stk_classic::mesh::BulkData &bulk_data, MeshData &mesh_data)
size_t getElemCount() const
size_t getSurfElemCount(size_t surf_id) const
Gmesh_STKmesh_Fixture(stk_classic::ParallelMachine comm, const std::string &gmesh_spec)
void create_input_mesh(const std::string &mesh_type, const std::string &mesh_filename, stk_classic::ParallelMachine comm, stk_classic::mesh::fem::FEMMetaData &fem_meta, stk_classic::io::MeshData &mesh_data, bool lower_case_variable_names)
size_t getNodeCount() const