279 INFO(
"Reading OGS legacy mesh ... ");
281 std::ifstream in(file_name.c_str(), std::ios::in);
284 WARN(
"MeshIO::loadMeshFromFile() - Could not open file {:s}.",
289 std::string line_string;
290 std::getline(in, line_string);
292 if (line_string.find(
"#FEM_MSH") != std::string::npos)
294 std::vector<MeshLib::Node*> nodes;
295 std::vector<MeshLib::Element*> elements;
296 std::vector<int> materials;
300 std::getline(in, line_string);
303 if (line_string.find(
"#STOP") != std::string::npos)
307 if (line_string.find(
"$NODES") != std::string::npos)
309 std::getline(in, line_string);
311 unsigned nNodes = atoi(line_string.c_str());
312 for (
unsigned i = 0; i < nNodes; ++i)
314 std::getline(in, line_string);
315 std::stringstream iss(line_string);
320 iss >> idx >> x >> y >> z;
322 nodes.push_back(node);
325 if (s.find(
"$AREA") != std::string::npos)
332 else if (line_string.find(
"$ELEMENTS") != std::string::npos)
334 std::getline(in, line_string);
336 unsigned nElements = atoi(line_string.c_str());
337 for (
unsigned i = 0; i < nElements; ++i)
339 std::getline(in, line_string);
340 std::stringstream ss(line_string);
341 materials.push_back(readMaterialID(ss));
345 ERR(
"Reading mesh element {:d} from file '{:s}' "
349 std::for_each(elements.begin(), elements.end(),
350 std::default_delete<MeshLib::Element>());
352 std::for_each(nodes.begin(), nodes.end(),
353 std::default_delete<MeshLib::Node>());
356 elements.push_back(elem);
361 if (elements.empty())
363 ERR(
"MeshIO::loadMeshFromFile() - File did not contain element "
365 for (
auto& node : nodes)
376 auto*
const material_ids =
381 WARN(
"Could not create PropertyVector for MaterialIDs in Mesh.");
385 material_ids->assign(materials);
387 INFO(
"\t... finished.");
388 INFO(
"Nr. Nodes: {:d}.", nodes.size());
389 INFO(
"Nr. Elements: {:d}.", elements.size());