diff --git a/src/mesh/MeshData.cpp b/src/mesh/MeshData.cpp index 0eadfdf300fc31beaa90ece9e49a9cf8c5df63b9..c1a223782128bf065fefe5ebdd02622127e00494 100644 --- a/src/mesh/MeshData.cpp +++ b/src/mesh/MeshData.cpp @@ -29,11 +29,16 @@ MeshData<Mesh<Dimension>>::_storeBadMesh() template void MeshData<Mesh<1>>::_storeBadMesh(); template void MeshData<Mesh<2>>::_storeBadMesh(); template void MeshData<Mesh<3>>::_storeBadMesh(); - void MeshData<PolynomialMesh<2>>::_storeBadMesh() { - throw NotImplementedError("storeBadMesh"); + VTKWriter writer("bad_mesh"); + writer.writeOnMesh(m_mesh.meshVariant(), + {std::make_shared<NamedItemValueVariant>(std::make_shared<ItemValueVariant>(m_Vj), "volume")}); + std::ostringstream error_msg; + error_msg << "mesh contains cells of non-positive volume (see " << rang::fgB::yellow << "bad_mesh.pvd" + << rang::fg::reset << " file)."; + throw NormalError(error_msg.str()); } template <size_t MeshDegree>