From 5a03e474e093526d8f68d490eb3556c5a9eb9b26 Mon Sep 17 00:00:00 2001 From: Wenqing Wang <wenqing.wang@ufz.de> Date: Wed, 29 Sep 2021 16:56:24 +0200 Subject: [PATCH] [MeshIO] Disable converting high order elements for the legacy output --- MeshLib/IO/Legacy/MeshIO.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/MeshLib/IO/Legacy/MeshIO.cpp b/MeshLib/IO/Legacy/MeshIO.cpp index c0b77823e96..34466f69d87 100644 --- a/MeshLib/IO/Legacy/MeshIO.cpp +++ b/MeshLib/IO/Legacy/MeshIO.cpp @@ -22,6 +22,7 @@ #include <memory> #include <sstream> +#include "BaseLib/Error.h" #include "BaseLib/FileTools.h" #include "BaseLib/Logging.h" #include "BaseLib/StringTools.h" @@ -375,6 +376,15 @@ void MeshIO::writeElements( out << ele_vector_size << "\n"; for (std::size_t i(0); i < ele_vector_size; ++i) { + auto const& element = *ele_vec[i]; + if (element.getNumberOfBaseNodes() != element.getNumberOfNodes()) + { + OGS_FATAL( + "Found high order element in the mesh that is not required by " + "OGS 5 input. High order elements are generated in OGS 5 on " + "demand."); + } + out << i << " "; if (!material_ids) { @@ -384,11 +394,11 @@ void MeshIO::writeElements( { out << (*material_ids)[i] << " "; } - out << this->ElemType2StringOutput(ele_vec[i]->getGeomType()) << " "; - unsigned nElemNodes(ele_vec[i]->getNumberOfBaseNodes()); + out << ElemType2StringOutput(element.getGeomType()) << " "; + unsigned nElemNodes(element.getNumberOfBaseNodes()); for (std::size_t j = 0; j < nElemNodes; ++j) { - out << ele_vec[i]->getNode(j)->getID() << " "; + out << element.getNode(j)->getID() << " "; } out << "\n"; } -- GitLab