Skip to content

Commit 5b5fffb

Browse files
author
teseoch
authored
Merge pull request #846 from wildmeshing/teseo/iofix
paraview fixes
2 parents bd2e000 + f710d78 commit 5b5fffb

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

src/wmtk/io/ParaviewWriter.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#include <wmtk/utils/Logger.hpp>
66
#include <wmtk/utils/Rational.hpp>
77

8+
#include <paraviewo/VTMWriter.hpp>
89
#include <paraviewo/VTUWriter.hpp>
10+
911
// #include <paraviewo/HDF5VTUWriter.hpp>
1012

1113
#include <sstream>
@@ -147,6 +149,14 @@ ParaviewWriter::ParaviewWriter(
147149
m_writers[1].init(filename.string() + "_edges.vtu", vertices_name, cells[1], m_enabled[1]);
148150
m_writers[2].init(filename.string() + "_faces.vtu", vertices_name, cells[2], m_enabled[2]);
149151
m_writers[3].init(filename.string() + "_tets.vtu", vertices_name, cells[3], m_enabled[3]);
152+
153+
paraviewo::VTMWriter vtm;
154+
if (m_enabled[0]) vtm.add_dataset("verts", "mesh", filename.string() + "_verts.vtu");
155+
if (m_enabled[1]) vtm.add_dataset("edges", "mesh", filename.string() + "_edges.vtu");
156+
if (m_enabled[2]) vtm.add_dataset("faces", "mesh", filename.string() + "_faces.vtu");
157+
if (m_enabled[3]) vtm.add_dataset("tets", "mesh", filename.string() + "_tets.vtu");
158+
159+
vtm.save(filename.string() + ".vtm");
150160
}
151161

152162
void ParaviewWriter::write(
@@ -219,12 +229,12 @@ void ParaviewWriter::write_internal(
219229
for (int i = 0; i < m_writers.size(); ++i) {
220230
if (m_enabled[i]) m_writers[i].vertices() = V;
221231
}
222-
} else if (m_enabled[type]) {
223-
m_writers[type].write(name, stride, val, true);
224232
} else if (type == 0) { // vertex attrs are always written
225233
for (size_t i = 0; i < m_writers.size(); ++i) {
226234
if (m_enabled[i]) m_writers[i].write(name, stride, val, false);
227235
}
236+
} else if (m_enabled[type]) {
237+
m_writers[type].write(name, stride, val, true);
228238
}
229239
}
230240

tests/io/test_io.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,17 @@ TEST_CASE("paraview_2d", "[io]")
8989
auto mesh = read_mesh(WMTK_DATA_DIR "/fan.msh");
9090

9191
ParaviewWriter writer("paraview_2d", "vertices", *mesh, true, true, true, false);
92-
mesh->serialize(writer);
92+
CHECK_NOTHROW(mesh->serialize(writer));
9393
}
9494

95-
TEST_CASE("paraview_2d_vtag", "[io.]")
95+
TEST_CASE("paraview_2d_vtag", "[io]")
9696
{
9797
auto mesh = read_mesh(WMTK_DATA_DIR "/fan.msh");
9898
mesh->register_attribute<int64_t>("tag", PrimitiveType::Triangle, 1);
9999
mesh->register_attribute<int64_t>("tag1", PrimitiveType::Vertex, 1);
100100

101-
ParaviewWriter writer("paraview_2d_vtag", "vertices", *mesh, false, false, true, false);
102-
mesh->serialize(writer);
101+
ParaviewWriter writer("paraview_2d_vtag", "vertices", *mesh, true, true, true, false);
102+
CHECK_NOTHROW(mesh->serialize(writer));
103103
}
104104

105105
TEST_CASE("hdf5_3d", "[io]")
@@ -110,7 +110,7 @@ TEST_CASE("hdf5_3d", "[io]")
110110
mesh.initialize(T);
111111

112112
HDF5Writer writer("hdf5_3d.hdf5");
113-
mesh.serialize(writer);
113+
CHECK_NOTHROW(mesh.serialize(writer));
114114
}
115115

116116
TEST_CASE("hdf5_multimesh", "[io]")
@@ -157,7 +157,7 @@ TEST_CASE("paraview_3d", "[io]")
157157
mesh_utils::set_matrix_attribute(V, "vertices", PrimitiveType::Vertex, mesh);
158158

159159
ParaviewWriter writer("paraview_3d", "vertices", mesh, true, true, true, true);
160-
mesh.serialize(writer);
160+
CHECK_NOTHROW(mesh.serialize(writer));
161161
}
162162

163163
TEST_CASE("msh_3d", "[io]")
@@ -303,5 +303,5 @@ TEST_CASE("attribute_after_split", "[io][.]")
303303

304304
// attribute_after_split_edges.hdf contains a 1 in the "test_attribute"
305305
ParaviewWriter writer("attribute_after_split", "vertices", m, true, true, true, false);
306-
m.serialize(writer);
306+
CHECK_NOTHROW(m.serialize(writer));
307307
}

0 commit comments

Comments
 (0)