269 INFO(
"Reading OGS legacy mesh ... ");
271 std::ifstream in(file_name.c_str(), std::ios::in);
274 WARN(
"MeshIO::loadMeshFromFile() - Could not open file {:s}.",
279 std::string line_string;
280 std::getline(in, line_string);
282 if (line_string.find(
"#FEM_MSH") != std::string::npos)
284 std::vector<MeshLib::Node*> nodes;
285 std::vector<MeshLib::Element*> elements;
286 std::vector<int> materials;
290 std::getline(in, line_string);
293 if (line_string.find(
"#STOP") != std::string::npos)
297 if (line_string.find(
"$NODES") != std::string::npos)
299 std::getline(in, line_string);
301 unsigned nNodes = atoi(line_string.c_str());
302 for (
unsigned i = 0; i < nNodes; ++i)
304 std::getline(in, line_string);
305 std::stringstream iss(line_string);
310 iss >> idx >> x >> y >> z;
312 nodes.push_back(node);
315 if (s.find(
"$AREA") != std::string::npos)
322 else if (line_string.find(
"$ELEMENTS") != std::string::npos)
324 std::getline(in, line_string);
326 unsigned nElements = atoi(line_string.c_str());
327 for (
unsigned i = 0; i < nElements; ++i)
329 std::getline(in, line_string);
330 std::stringstream ss(line_string);
331 materials.push_back(readMaterialID(ss));
335 ERR(
"Reading mesh element {:d} from file '{:s}' "
339 std::for_each(elements.begin(), elements.end(),
340 std::default_delete<MeshLib::Element>());
342 std::for_each(nodes.begin(), nodes.end(),
343 std::default_delete<MeshLib::Node>());
346 elements.push_back(elem);
351 if (elements.empty())
353 ERR(
"MeshIO::loadMeshFromFile() - File did not contain element "
355 for (
auto& node : nodes)
366 auto*
const material_ids =
371 WARN(
"Could not create PropertyVector for MaterialIDs in Mesh.");
375 material_ids->assign(materials);
377 INFO(
"\t... finished.");
378 INFO(
"Nr. Nodes: {:d}.", nodes.size());
379 INFO(
"Nr. Elements: {:d}.", elements.size());