#include <mesh/MeshData.hpp> #include <mesh/Connectivity.hpp> #include <mesh/ItemValueVariant.hpp> #include <mesh/Mesh.hpp> #include <output/NamedItemValueVariant.hpp> #include <output/VTKWriter.hpp> #include <utils/Exceptions.hpp> template <size_t Dimension> void MeshData<Dimension>::_storeBadMesh() { VTKWriter writer("bad_mesh"); writer.writeOnMesh(std::make_shared<MeshType>(m_mesh.shared_connectivity(), m_mesh.xr()), {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 void MeshData<1>::_storeBadMesh(); template void MeshData<2>::_storeBadMesh(); template void MeshData<3>::_storeBadMesh();