51 mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
52 mesh->createVertex(Eigen::Vector2d(0.0, 1.0));
53 mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
54 mesh->createVertex(Eigen::Vector2d(1.0, 1.0));
56 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
57 doubleData->emplaceSampleAtTime(0, {1., 2., 3., 4.});
59 std::string fileName(
"precice-WatchIntegralTest-scalarData-noConnectivity.log");
69 doubleData->emplaceSampleAtTime(1, {2., 3., 4., 5.});
74 doubleData->moveToNextWindow();
79 BOOST_TEST_CONTEXT(
"Validating WatchIntegral ScalarData NoConnectivity")
81 auto result = readDoublesFromTXTFile(fileName, 2);
86 BOOST_TEST(result == expected, boost::test_tools::per_element());
100 mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
101 mesh->createVertex(Eigen::Vector2d(0.0, 1.0));
102 mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
103 mesh->createVertex(Eigen::Vector2d(1.0, 1.0));
105 PtrData vectorData = mesh->createData(
"DoubleData", 2, 0_dataID);
106 vectorData->emplaceSampleAtTime(0, {1., 2., 3., 4., 5., 6., 7., 8.});
108 std::string fileName(
"precice-WatchIntegralTest-vectorData-noConnectivity.log");
118 vectorData->emplaceSampleAtTime(1, {2., 3., 4., 5., 6., 7., 8., 9.});
123 vectorData->moveToNextWindow();
128 BOOST_TEST_CONTEXT(
"Validating WatchIntegral VectorData NoConnectivity")
130 auto result = readDoublesFromTXTFile(fileName, 3);
135 BOOST_TEST(result == expected, boost::test_tools::per_element());
143 using namespace mesh;
149 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
150 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
151 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector2d(1.0, 2.0));
153 mesh->createEdge(v1, v2);
154 mesh->createEdge(v2, v3);
156 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
157 doubleData->emplaceSampleAtTime(0, {1., 2., 3.});
158 std::string fileName(
"precice-WatchIntegralTest-scalarData-edgeConnectivity.log");
168 doubleData->emplaceSampleAtTime(1, {2., 3., 4.});
173 doubleData->moveToNextWindow();
178 BOOST_TEST_CONTEXT(
"Validating WatchIntegral ScalarData EdgeConnectivity")
180 auto result = readDoublesFromTXTFile(fileName, 3);
185 BOOST_TEST(result == expected, boost::test_tools::per_element());
193 using namespace mesh;
199 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
200 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
201 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector2d(1.0, 2.0));
203 mesh->createEdge(v1, v2);
204 mesh->createEdge(v2, v3);
206 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
207 doubleData->emplaceSampleAtTime(0, {1., 2., 3.});
209 std::string fileName(
"precice-WatchIntegralTest-scalarData-edgeConnectivity-noScale.log");
219 doubleData->emplaceSampleAtTime(1, {2., 3., 4.});
224 doubleData->moveToNextWindow();
229 BOOST_TEST_CONTEXT(
"Validating WatchIntegral ScalarData EdgeConnectivity NoScale")
231 auto result = readDoublesFromTXTFile(fileName, 3);
236 BOOST_TEST(result == expected, boost::test_tools::per_element());
244 using namespace mesh;
250 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
251 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
252 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector2d(1.0, 2.0));
254 mesh->createEdge(v1, v2);
255 mesh->createEdge(v2, v3);
257 PtrData vectorData = mesh->createData(
"DoubleData", 2, 0_dataID);
258 vectorData->emplaceSampleAtTime(0, {1., 2., 3., 4., 5., 6.});
260 std::string fileName(
"precice-WatchIntegralTest-scalarData-edgeConnectivity.log");
270 vectorData->emplaceSampleAtTime(1, {2., 3., 4., 5., 6., 7.});
275 vectorData->moveToNextWindow();
280 BOOST_TEST_CONTEXT(
"Validating WatchIntegral VectorData EdgeConnectivity")
283 auto result = readDoublesFromTXTFile(fileName, 4);
285 0.0, 10.0, 13.0, 3.0,
286 1.0, 13.0, 56.0, 3.0,
287 2.0, 13.0, 56.0, 3.0};
288 BOOST_TEST(result == expected, boost::test_tools::per_element());
297 using namespace mesh;
303 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
304 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
305 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector2d(1.0, 2.0));
307 mesh->createEdge(v1, v2);
308 mesh->createEdge(v2, v3);
310 PtrData vectorData = mesh->createData(
"DoubleData", 2, 0_dataID);
311 vectorData->emplaceSampleAtTime(0, {1., 2., 3., 4., 5., 6.});
313 std::string fileName(
"precice-WatchIntegralTest-scalarData-edgeConnectivity-noScale.log");
323 vectorData->emplaceSampleAtTime(1, {2., 3., 4., 5., 6., 7.});
328 vectorData->moveToNextWindow();
333 BOOST_TEST_CONTEXT(
"Validating WatchIntegral VectorData EdgeConnectivity NoScale")
336 auto result = readDoublesFromTXTFile(fileName, 4);
339 1.0, 12.0, 15.0, 3.0,
340 2.0, 12.0, 15.0, 3.0};
341 BOOST_TEST(result == expected, boost::test_tools::per_element());
350 using namespace mesh;
356 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
357 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector3d(3.0, 0.0, 0.0));
358 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
359 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector3d(0.0, 4.0, 0.0));
367 mesh->createTriangle(e1, e2, e5);
368 mesh->createTriangle(e3, e4, e5);
370 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
371 doubleData->emplaceSampleAtTime(0, {1., 2., 3., 4.});
373 std::string fileName(
"precice-WatchIntegralTest-scalarData-faceConnectivity.log");
383 doubleData->emplaceSampleAtTime(1, {2., 3., 4., 5.});
388 doubleData->moveToNextWindow();
393 BOOST_TEST_CONTEXT(
"Validating WatchIntegral ScalarData FaceConnectivity")
395 auto result = readDoublesFromTXTFile(fileName, 3);
400 BOOST_TEST(result == expected, boost::test_tools::per_element());
408 using namespace mesh;
414 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
415 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector3d(3.0, 0.0, 0.0));
416 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
417 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector3d(0.0, 4.0, 0.0));
425 mesh->createTriangle(e1, e2, e5);
426 mesh->createTriangle(e3, e4, e5);
428 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
429 doubleData->emplaceSampleAtTime(0, {1., 2., 3., 4.});
431 std::string fileName(
"precice-WatchIntegralTest-scalarData-faceConnectivity-noScale.log");
441 doubleData->emplaceSampleAtTime(1, {2., 3., 4., 5.});
446 doubleData->moveToNextWindow();
451 BOOST_TEST_CONTEXT(
"Validating WatchIntegral ScalarData FaceConnectivity NoScale")
453 auto result = readDoublesFromTXTFile(fileName, 3);
458 BOOST_TEST(result == expected, boost::test_tools::per_element());
466 using namespace mesh;
472 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
473 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector3d(3.0, 0.0, 0.0));
474 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
475 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector3d(0.0, 4.0, 0.0));
483 mesh->createTriangle(e1, e2, e5);
484 mesh->createTriangle(e3, e4, e5);
486 PtrData vectorData = mesh->createData(
"DoubleData", 2, 0_dataID);
487 vectorData->emplaceSampleAtTime(0, {1., 2., 3., 4., 5., 6., 7., 8.});
489 std::string fileName(
"precice-WatchIntegralTest-vectorData-faceConnectivity.log");
499 vectorData->emplaceSampleAtTime(1, {2., 3., 4., 5., 6., 7., 8., 9.});
504 vectorData->moveToNextWindow();
509 BOOST_TEST_CONTEXT(
"Validating WatchIntegral VectorData FaceConnectivity")
511 auto result = readDoublesFromTXTFile(fileName, 4);
513 0.0, 44.0, 56.0, 12.0,
514 1.0, 56.0, 68.0, 12.0,
515 2.0, 56.0, 68.0, 12.0};
516 BOOST_TEST(result == expected, boost::test_tools::per_element());
524 using namespace mesh;
530 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
531 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector3d(3.0, 0.0, 0.0));
532 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
533 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector3d(0.0, 4.0, 0.0));
541 mesh->createTriangle(e1, e2, e5);
542 mesh->createTriangle(e3, e4, e5);
544 PtrData vectorData = mesh->createData(
"DoubleData", 2, 0_dataID);
545 vectorData->emplaceSampleAtTime(0, {1., 2., 3., 4., 5., 6., 7., 8.});
547 std::string fileName(
"precice-WatchIntegralTest-vectorData-faceConnectivity-noScale.log");
557 vectorData->emplaceSampleAtTime(1, {2., 3., 4., 5., 6., 7., 8., 9.});
562 vectorData->moveToNextWindow();
567 BOOST_TEST_CONTEXT(
"Validating WatchIntegral VectorData FaceConnectivity NoScale")
569 auto result = readDoublesFromTXTFile(fileName, 4);
571 0.0, 16.0, 20.0, 12.0,
572 1.0, 20.0, 24.0, 12.0,
573 2.0, 20.0, 24.0, 12.0};
574 BOOST_TEST(result == expected, boost::test_tools::per_element());
582 using namespace mesh;
588 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
589 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector3d(3.0, 0.0, 0.0));
590 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
591 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector3d(0.0, 4.0, 0.0));
599 mesh->createTriangle(e1, e2, e5);
600 mesh->createTriangle(e3, e4, e5);
602 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
603 doubleData->emplaceSampleAtTime(0, {1., 2., 3., 4.});
605 std::string fileName(
"precice-WatchIntegralTest-meshChange-faceConnectivity.log");
615 v2.
setCoords(Eigen::Vector3d(3.0, -4.0, 0.0));
620 doubleData->moveToNextWindow();
625 BOOST_TEST_CONTEXT(
"Validating WatchIntegral MeshChange FaceConnectivity")
627 auto result = readDoublesFromTXTFile(fileName, 3);
632 BOOST_TEST(result == expected, boost::test_tools::per_element());
640 using namespace mesh;
645 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
648 mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
649 mesh->createVertex(Eigen::Vector2d(0.0, 1.0));
650 }
else if (context.isRank(1)) {
651 mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
652 mesh->createVertex(Eigen::Vector2d(1.0, 1.0));
653 }
else if (context.isRank(2)) {
654 mesh->createVertex(Eigen::Vector2d(2.0, 0.0));
655 mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
656 }
else if (context.isRank(3)) {
657 mesh->createVertex(Eigen::Vector2d(3.0, 0.0));
658 mesh->createVertex(Eigen::Vector2d(0.0, 1.0));
662 doubleData->emplaceSampleAtTime(0, {1.0, 2.0});
663 }
else if (context.isRank(1)) {
664 doubleData->emplaceSampleAtTime(0, {3.0, 4.0});
665 }
else if (context.isRank(2)) {
666 doubleData->emplaceSampleAtTime(0, {5.0, 6.0});
667 }
else if (context.isRank(3)) {
668 doubleData->emplaceSampleAtTime(0, {7.0, 8.0});
671 std::string fileName(
"precice-WatchIntegralTest-scalarData-noConnectivity-parallel.log");
682 doubleData->emplaceSampleAtTime(1, {2.0, 3.0});
683 }
else if (context.isRank(1)) {
684 doubleData->emplaceSampleAtTime(1, {4.0, 5.0});
685 }
else if (context.isRank(2)) {
686 doubleData->emplaceSampleAtTime(1, {6.0, 7.0});
687 }
else if (context.isRank(3)) {
688 doubleData->emplaceSampleAtTime(1, {8.0, 9.0});
694 doubleData->moveToNextWindow();
699 BOOST_TEST_CONTEXT(
"Validating WatchIntegral ScalarData NoConnectivity Parallel")
702 auto result = readDoublesFromTXTFile(fileName, 2);
707 BOOST_TEST(result == expected, boost::test_tools::per_element());
716 using namespace mesh;
721 PtrData vectorData = mesh->createData(
"DoubleData", 2, 0_dataID);
724 mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
725 mesh->createVertex(Eigen::Vector2d(0.0, 1.0));
726 }
else if (context.isRank(1)) {
727 mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
728 mesh->createVertex(Eigen::Vector2d(1.0, 1.0));
729 }
else if (context.isRank(2)) {
730 mesh->createVertex(Eigen::Vector2d(2.0, 0.0));
731 mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
732 }
else if (context.isRank(3)) {
733 mesh->createVertex(Eigen::Vector2d(3.0, 0.0));
734 mesh->createVertex(Eigen::Vector2d(0.0, 1.0));
738 vectorData->emplaceSampleAtTime(0, {1.0, 2.0, 3.0, 4.0});
739 }
else if (context.isRank(1)) {
740 vectorData->emplaceSampleAtTime(0, {5.0, 6.0, 7.0, 8.0});
741 }
else if (context.isRank(2)) {
742 vectorData->emplaceSampleAtTime(0, {9.0, 10.0, 11.0, 12.0});
743 }
else if (context.isRank(3)) {
744 vectorData->emplaceSampleAtTime(0, {13.0, 14.0, 15.0, 16.0});
747 std::string fileName(
"precice-WatchIntegralTest-vectorData-noConnectivity-parallel.log");
751 watchIntegral.initialize();
754 watchIntegral.exportIntegralData(0.0);
758 vectorData->emplaceSampleAtTime(1, {2.0, 3.0, 4.0, 5.0});
759 }
else if (context.isRank(1)) {
760 vectorData->emplaceSampleAtTime(1, {6.0, 7.0, 8.0, 9.0});
761 }
else if (context.isRank(2)) {
762 vectorData->emplaceSampleAtTime(1, {10.0, 11.0, 12.0, 13.0});
763 }
else if (context.isRank(3)) {
764 vectorData->emplaceSampleAtTime(1, {14.0, 15.0, 16.0, 17.0});
768 watchIntegral.exportIntegralData(1.0);
770 vectorData->moveToNextWindow();
772 watchIntegral.exportIntegralData(2.0);
775 BOOST_TEST_CONTEXT(
"Validating WatchIntegral VectorData NoConnectivity Parallel")
778 auto result = readDoublesFromTXTFile(fileName, 3);
783 BOOST_TEST(result == expected, boost::test_tools::per_element());
792 using namespace mesh;
799 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
800 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
801 mesh->createEdge(v1, v2);
803 if (context.isRank(1)) {
804 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector2d(1.0, 1.0));
805 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector2d(1.0, 2.0));
806 mesh->createEdge(v3, v4);
808 if (context.isRank(2)) {
809 mesh::Vertex &v5 = mesh->createVertex(Eigen::Vector2d(2.0, 1.0));
810 mesh::Vertex &v6 = mesh->createVertex(Eigen::Vector2d(2.0, 2.0));
811 mesh->createEdge(v5, v6);
813 if (context.isRank(3)) {
814 mesh::Vertex &v7 = mesh->createVertex(Eigen::Vector2d(3.0, 1.0));
815 mesh::Vertex &v8 = mesh->createVertex(Eigen::Vector2d(3.0, 3.0));
816 mesh->createEdge(v7, v8);
819 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
822 doubleData->emplaceSampleAtTime(0, {1.0, 2.0});
824 if (context.isRank(1)) {
825 doubleData->emplaceSampleAtTime(0, {3.0, 4.0});
827 if (context.isRank(2)) {
828 doubleData->emplaceSampleAtTime(0, {5.0, 6.0});
830 if (context.isRank(3)) {
831 doubleData->emplaceSampleAtTime(0, {7.0, 8.0});
834 std::string fileName(
"precice-WatchIntegralTest-scalarData-edgeConnectivity-parallel.log");
838 watchIntegral.initialize();
841 watchIntegral.exportIntegralData(0.0);
845 doubleData->emplaceSampleAtTime(1, {2.0, 3.0});
847 if (context.isRank(1)) {
848 doubleData->emplaceSampleAtTime(1, {4.0, 5.0});
850 if (context.isRank(2)) {
851 doubleData->emplaceSampleAtTime(1, {6.0, 7.0});
853 if (context.isRank(3)) {
854 doubleData->emplaceSampleAtTime(1, {8.0, 9.0});
858 watchIntegral.exportIntegralData(1.0);
860 doubleData->moveToNextWindow();
862 watchIntegral.exportIntegralData(2.0);
865 BOOST_TEST_CONTEXT(
"Validating WatchIntegral ScalarData EdgeConnectivity Parallel")
868 auto result = readDoublesFromTXTFile(fileName, 3);
873 BOOST_TEST(result == expected, boost::test_tools::per_element());
882 using namespace mesh;
889 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector2d(0.0, 0.0));
890 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector2d(1.0, 0.0));
891 mesh->createEdge(v1, v2);
893 if (context.isRank(1)) {
894 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector2d(1.0, 1.0));
895 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector2d(1.0, 2.0));
896 mesh->createEdge(v3, v4);
898 if (context.isRank(2)) {
899 mesh::Vertex &v5 = mesh->createVertex(Eigen::Vector2d(2.0, 1.0));
900 mesh::Vertex &v6 = mesh->createVertex(Eigen::Vector2d(2.0, 2.0));
901 mesh->createEdge(v5, v6);
903 if (context.isRank(3)) {
904 mesh::Vertex &v7 = mesh->createVertex(Eigen::Vector2d(3.0, 1.0));
905 mesh::Vertex &v8 = mesh->createVertex(Eigen::Vector2d(3.0, 3.0));
906 mesh->createEdge(v7, v8);
909 PtrData vectorData = mesh->createData(
"DoubleData", 2, 0_dataID);
912 vectorData->emplaceSampleAtTime(0, {1.0, 2.0, 3.0, 4.0});
914 if (context.isRank(1)) {
915 vectorData->emplaceSampleAtTime(0, {5.0, 6.0, 7.0, 8.0});
917 if (context.isRank(2)) {
918 vectorData->emplaceSampleAtTime(0, {9.0, 10.0, 11.0, 12.0});
920 if (context.isRank(3)) {
921 vectorData->emplaceSampleAtTime(0, {13.0, 14.0, 15.0, 16.0});
924 std::string fileName(
"precice-WatchIntegralTest-scalarData-edgeConnectivity-parallel.log");
928 watchIntegral.initialize();
931 watchIntegral.exportIntegralData(0.0);
935 vectorData->emplaceSampleAtTime(1, {2.0, 3.0, 4.0, 5.0});
937 if (context.isRank(1)) {
938 vectorData->emplaceSampleAtTime(1, {6.0, 7.0, 8.0, 9.0});
940 if (context.isRank(2)) {
941 vectorData->emplaceSampleAtTime(1, {10.0, 11.0, 12.0, 13.0});
943 if (context.isRank(3)) {
944 vectorData->emplaceSampleAtTime(1, {14.0, 15.0, 16.0, 17.0});
948 watchIntegral.exportIntegralData(1.0);
950 vectorData->moveToNextWindow();
952 watchIntegral.exportIntegralData(2.0);
955 BOOST_TEST_CONTEXT(
"Validating WatchIntegral VectorData EdgeConnectivity Parallel")
958 auto result = readDoublesFromTXTFile(fileName, 4);
960 0.0, 46.0, 51.0, 5.0,
961 1.0, 51.0, 56.0, 5.0,
962 2.0, 51.0, 56.0, 5.0};
963 BOOST_TEST(result == expected, boost::test_tools::per_element());
972 using namespace mesh;
979 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
980 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector3d(3.0, 0.0, 0.0));
981 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
985 mesh->createTriangle(e1, e2, e5);
987 if (context.isRank(1)) {
989 if (context.isRank(2)) {
991 if (context.isRank(3)) {
992 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
993 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
994 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector3d(0.0, 4.0, 0.0));
998 mesh->createTriangle(e3, e4, e5);
1001 PtrData doubleData = mesh->createData(
"DoubleData", 1, 0_dataID);
1004 doubleData->emplaceSampleAtTime(0, {1.0, 2.0, 3.0});
1006 if (context.isRank(1)) {
1007 doubleData->emplaceSampleAtTime(0);
1009 if (context.isRank(2)) {
1010 doubleData->emplaceSampleAtTime(0);
1012 if (context.isRank(3)) {
1013 doubleData->emplaceSampleAtTime(0, {1.0, 3.0, 4.0});
1016 std::string fileName(
"precice-WatchIntegralTest-scalarData-faceConnectivity-parallel.log");
1020 watchIntegral.initialize();
1023 watchIntegral.exportIntegralData(0.0);
1027 doubleData->emplaceSampleAtTime(1, {2.0, 3.0, 4.0});
1029 if (context.isRank(1)) {
1030 doubleData->emplaceSampleAtTime(1);
1032 if (context.isRank(2)) {
1033 doubleData->emplaceSampleAtTime(1);
1035 if (context.isRank(3)) {
1036 doubleData->emplaceSampleAtTime(1, {2.0, 4.0, 5.0});
1040 watchIntegral.exportIntegralData(1.0);
1042 doubleData->moveToNextWindow();
1044 watchIntegral.exportIntegralData(2.0);
1047 BOOST_TEST_CONTEXT(
"Validating WatchIntegral ScalarData FaceConnectivity Parallel")
1050 auto result = readDoublesFromTXTFile(fileName, 3);
1055 BOOST_TEST(result == expected, boost::test_tools::per_element());
1064 using namespace mesh;
1071 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
1072 mesh::Vertex &v2 = mesh->createVertex(Eigen::Vector3d(3.0, 0.0, 0.0));
1073 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
1077 mesh->createTriangle(e1, e2, e5);
1079 if (context.isRank(1)) {
1081 if (context.isRank(2)) {
1083 if (context.isRank(3)) {
1084 mesh::Vertex &v1 = mesh->createVertex(Eigen::Vector3d(0.0, 0.0, 0.0));
1085 mesh::Vertex &v3 = mesh->createVertex(Eigen::Vector3d(3.0, 4.0, 0.0));
1086 mesh::Vertex &v4 = mesh->createVertex(Eigen::Vector3d(0.0, 4.0, 0.0));
1090 mesh->createTriangle(e3, e4, e5);
1093 PtrData doubleData = mesh->createData(
"DoubleData", 3, 0_dataID);
1096 doubleData->emplaceSampleAtTime(0, {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0});
1098 if (context.isRank(1)) {
1099 doubleData->emplaceSampleAtTime(0);
1101 if (context.isRank(2)) {
1102 doubleData->emplaceSampleAtTime(0);
1104 if (context.isRank(3)) {
1105 doubleData->emplaceSampleAtTime(0, {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0});
1108 std::string fileName(
"precice-WatchIntegralTest-vectorData-faceConnectivity-parallel.log");
1112 watchIntegral.initialize();
1115 watchIntegral.exportIntegralData(0.0);
1119 doubleData->emplaceSampleAtTime(1, {2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0});
1121 if (context.isRank(1)) {
1122 doubleData->emplaceSampleAtTime(1);
1124 if (context.isRank(2)) {
1125 doubleData->emplaceSampleAtTime(1);
1127 if (context.isRank(3)) {
1128 doubleData->emplaceSampleAtTime(1, {2.0, 3.0, 6.0, 7.0, 8.0, 9.0, 8.0, 9.0, 10.0});
1132 watchIntegral.exportIntegralData(1.0);
1134 doubleData->moveToNextWindow();
1136 watchIntegral.exportIntegralData(2.0);
1139 BOOST_TEST_CONTEXT(
"Validating WatchIntegral VectorData FaceConnectivity Parallel")
1142 auto result = readDoublesFromTXTFile(fileName, 5);
1144 0.0, 48.0, 60.0, 72.0, 12.0,
1145 1.0, 64.0, 76.0, 92.0, 12.0,
1146 2.0, 64.0, 76.0, 92.0, 12.0};
1147 BOOST_TEST(result == expected, boost::test_tools::per_element());
BOOST_AUTO_TEST_SUITE(PreProcess)
BOOST_AUTO_TEST_SUITE_END()
#define PRECICE_TEST_SETUP(...)
Creates and attaches a TestSetup to a Boost test case.
BOOST_AUTO_TEST_CASE(ScalarDataNoConnectivity)
Track and output transient integral data on a mesh.
void initialize()
Adds surface area information based on mesh connectivity.
void exportIntegralData(double time)
Writes one line with data of the integral over the mesh into the output file.
Linear edge of a mesh, defined by two Vertex objects.
void setCoords(const VECTOR_T &coordinates)
Sets the coordinates of the vertex.
static bool isPrimary()
True if this process is running the primary rank.
provides Mesh, Data and primitives.
std::shared_ptr< Data > PtrData
std::shared_ptr< Mesh > PtrMesh
void ignore(Arguments &&...)
Main namespace of the precice library.