From cbb7f90d9ea68143372807f6c34428cac1e640d5 Mon Sep 17 00:00:00 2001 From: Thomas Fischer <thomas.fischer@ufz.de> Date: Fri, 15 Nov 2019 14:31:40 +0100 Subject: [PATCH] [MGTL] Improve error msg. in MeshNodeSearcher. --- MeshGeoToolsLib/MeshNodeSearcher.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/MeshGeoToolsLib/MeshNodeSearcher.cpp b/MeshGeoToolsLib/MeshNodeSearcher.cpp index 8b67976f638..85df600ca7d 100644 --- a/MeshGeoToolsLib/MeshNodeSearcher.cpp +++ b/MeshGeoToolsLib/MeshNodeSearcher.cpp @@ -11,6 +11,7 @@ #include "MeshNodeSearcher.h" #include <typeinfo> +#include <sstream> #include "HeuristicSearchLength.h" #include "MeshNodesAlongPolyline.h" @@ -109,12 +110,21 @@ std::vector<std::size_t> MeshNodeSearcher::getMeshNodeIDs( } if (ids.size() != 1) { + std::stringstream ss; + auto const& bulk_nodes = _mesh.getNodes(); + for (auto const id : ids) + { + ss << "- bulk node: " << (*bulk_nodes[id]) << ", distance: " + << std::sqrt(MathLib::sqrDist(bulk_nodes[id]->getCoords(), + p.getCoords())) + << "\n"; + } OGS_FATAL( "Found %d nodes in the mesh for point %d : (%g, %g, %g) in %g " "epsilon radius in the mesh '%s'. Expected to find exactly one " - "node.", + "node.\n%s", ids.size(), p.getID(), p[0], p[1], p[2], epsilon_radius, - _mesh.getName().c_str()); + _mesh.getName().c_str(), ss.str().c_str()); } node_ids.push_back(ids.front()); } -- GitLab