36 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
37 exportVTP.doExport(0, 0.0);
51 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
52 exportVTP.doExport(0, 0.0);
65 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
66 exportVTP.doExport(0, 0.0);
75 if (context.isPrimary()) {
83 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
84 exportVTP.doExport(0, 0.0);
85 if (context.isPrimary()) {
87 "Mesh-io-VTPExport.init_0.vtp",
88 "Mesh-io-VTPExport.init.pvtp");
99 if (context.isPrimary()) {
100 mesh.createVertex(Eigen::Vector2d::Zero());
102 mesh.createVertex(Eigen::Vector2d::Constant(1));
107 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
109 if (context.isPrimary()) {
111 "Mesh-io-VTPExport.init_0.vtp",
112 "Mesh-io-VTPExport.init.pvtp");
123 if (context.isPrimary()) {
124 mesh.createVertex(Eigen::Vector2d::Zero());
126 mesh.createVertex(Eigen::Vector2d::Constant(1));
129 BOOST_TEST_REQUIRE(
data->timeStepsStorage().empty());
131 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
133 if (context.isPrimary()) {
135 "Mesh-io-VTPExport.init_0.vtp",
136 "Mesh-io-VTPExport.init.pvtp");
147 if (context.isPrimary()) {
148 mesh.createVertex(Eigen::Vector2d::Zero());
150 mesh.createVertex(Eigen::Vector2d::Constant(1));
152 auto missing = mesh.createData(
"missing", 2, 0_dataID);
153 BOOST_TEST_REQUIRE(missing->timeStepsStorage().empty());
157 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
159 if (context.isPrimary()) {
161 "Mesh-io-VTPExport.init_0.vtp",
162 "Mesh-io-VTPExport.init.pvtp");
172 const int dimensions = 2;
177 dataScalar->requireDataGradient();
178 dataVector->requireDataGradient();
183 scalar.
values.setLinSpaced(0, 1);
185 dataScalar->setSampleAtTime(0, scalar);
188 vectorial.
values.setLinSpaced(0, 1);
190 dataVector->setSampleAtTime(0, vectorial);
192 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
193 exportVTP.doExport(0, 0.0);
194 exportVTP.doExport(1, 1.0);
202 const int dimensions = 3;
207 dataScalar->requireDataGradient();
208 dataVector->requireDataGradient();
213 scalar.
values.setLinSpaced(0, 1);
215 dataScalar->setSampleAtTime(0, scalar);
218 vectorial.
values.setLinSpaced(0, 1);
220 dataVector->setSampleAtTime(0, vectorial);
222 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
223 exportVTP.doExport(0, 0.0);
224 exportVTP.doExport(1, 1.0);
242 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
243 exportVTP.doExport(0, 0.0);
244 exportVTP.doExport(1, 1.0);
255 if (context.isRank(0)) {
264 }
else if (context.isRank(1)) {
266 }
else if (context.isRank(2)) {
274 }
else if (context.isRank(3)) {
278 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
279 exportVTP.doExport(0, 0.0);
280 exportVTP.doExport(1, 1.0);
282 fmt::format(
"Mesh-io-VTPExport.dt1_{}.vtp", context.rank));
283 if (context.isPrimary()) {
285 "Mesh-io-VTPExport.init.pvtp",
286 "Mesh-io-VTPExport.dt1.pvtp");
297 if (context.isRank(0)) {
298 mesh::Vertex &v1 = mesh.createVertex(Eigen::Vector3d::Zero());
299 mesh::Vertex &v2 = mesh.createVertex(Eigen::Vector3d::Constant(1));
300 mesh::Vertex &v3 = mesh.createVertex(Eigen::Vector3d{1.0, 0.0, 0.0});
305 mesh.createTriangle(e1, e2, e3);
306 mesh.setVertexOffsets({3, 3, 6, 7});
308 }
else if (context.isRank(1)) {
310 }
else if (context.isRank(2)) {
311 mesh::Vertex &v1 = mesh.createVertex(Eigen::Vector3d::Constant(1));
312 mesh::Vertex &v2 = mesh.createVertex(Eigen::Vector3d::Constant(2));
313 mesh::Vertex &v3 = mesh.createVertex(Eigen::Vector3d{0.0, 1.0, 0.0});
318 mesh.createTriangle(e1, e2, e3);
319 }
else if (context.isRank(3)) {
320 mesh.createVertex(Eigen::Vector3d::Constant(3.0));
323 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
325 exportVTP.doExport(1, 1.0);
327 fmt::format(
"Mesh-io-VTPExport.dt1_{}.vtp", context.rank));
328 if (context.isPrimary()) {
330 "Mesh-io-VTPExport.init.pvtp",
331 "Mesh-io-VTPExport.dt1.pvtp");
342 mesh::Vertex &vm = mesh.createVertex(Eigen::Vector3d::Zero());
343 if (context.isRank(0)) {
344 mesh::Vertex &v1 = mesh.createVertex(Eigen::Vector3d{-1.0, 1.0, 0.0});
345 mesh::Vertex &v2 = mesh.createVertex(Eigen::Vector3d{1.0, 1.0, 0.0});
346 mesh::Vertex &vo = mesh.createVertex(Eigen::Vector3d{0.0, 2.0, 0.0});
350 mesh.createTriangle(em1, e12, e2m);
353 mesh.createTriangle(eo1, e12, e2o);
355 mesh.setVertexOffsets({3, 6, 9, 12});
356 }
else if (context.isRank(1)) {
357 mesh::Vertex &v1 = mesh.createVertex(Eigen::Vector3d{1.0, -1.0, 0.0});
358 mesh::Vertex &v2 = mesh.createVertex(Eigen::Vector3d{-1.0, -1.0, 0.0});
359 mesh::Vertex &vo = mesh.createVertex(Eigen::Vector3d{0.0, -2.0, 0.0});
363 mesh.createTriangle(em1, e12, e2m);
366 mesh.createTriangle(eo1, e12, e2o);
367 }
else if (context.isRank(2)) {
368 mesh::Vertex &v1 = mesh.createVertex(Eigen::Vector3d{-1.0, 1.0, 0.0});
369 mesh::Vertex &v2 = mesh.createVertex(Eigen::Vector3d{-1.0, -1.0, 0.0});
370 mesh::Vertex &vo = mesh.createVertex(Eigen::Vector3d{-2.0, 0.0, 0.0});
374 mesh.createTriangle(em1, e12, e2m);
377 mesh.createTriangle(eo1, e12, e2o);
378 }
else if (context.isRank(3)) {
379 mesh::Vertex &v1 = mesh.createVertex(Eigen::Vector3d{1.0, 1.0, 0.0});
380 mesh::Vertex &v2 = mesh.createVertex(Eigen::Vector3d{1.0, -1.0, 0.0});
381 mesh::Vertex &vo = mesh.createVertex(Eigen::Vector3d{2.0, 0.0, 0.0});
385 mesh.createTriangle(em1, e12, e2m);
388 mesh.createTriangle(eo1, e12, e2o);
391 io::ExportVTP exportVTP{
"io-VTPExport",
".", mesh, io::Export::ExportKind::TimeWindows, 1, context.rank, context.size};
393 exportVTP.doExport(1, 1.0);
395 fmt::format(
"Mesh-io-VTPExport.dt1_{}.vtp", context.rank));
396 if (context.isPrimary()) {
398 "Mesh-io-VTPExport.init.pvtp",
399 "Mesh-io-VTPExport.dt1.pvtp");
BOOST_AUTO_TEST_CASE(ExportScalar)
BOOST_AUTO_TEST_SUITE(PreProcess)
BOOST_AUTO_TEST_SUITE_END()
#define PRECICE_TEST_SETUP(...)
Creates and attaches a TestSetup to a Boost test case.
void doExport(int index, double time) final override
Export the mesh and writes files.
Linear edge of a mesh, defined by two Vertex objects.
Container and creator for meshes.
PtrData & createData(const std::string &name, int dimension, DataID id, int waveformDegree=time::Time::DEFAULT_WAVEFORM_DEGREE)
Create only data for vertex.
void setVertexOffsets(VertexOffsets vertexOffsets)
Only used for tests.
Edge & createEdge(Vertex &vertexOne, Vertex &vertexTwo)
Creates and initializes an Edge object.
Vertex & createVertex(const Eigen::Ref< const Eigen::VectorXd > &coords)
Creates and initializes a Vertex object.
provides Mesh, Data and primitives.
void expectFiles(Args... args)
Main namespace of the precice library.
Eigen::MatrixXd gradients
The gradients of the data. Use gradients.col(d*i+k) to get the gradient of vertex i,...
Sample & setZero()
Sets values and gradients to zero.