68 const int dimensions = 3;
75 const int Nx = 5, Ny = 5, Nz = 5;
76 const double spacing = 1.0;
77 const double x0 = 0.0, y0 = 0.0, z0 = 0.0;
78 for (
int k = 0; k < Nz; ++k) {
79 for (
int j = 0; j < Ny; ++j) {
80 for (
int i = 0; i < Nx; ++i) {
81 Eigen::Vector3d p{x0 + spacing * i,
91 const double radius = 2.5;
93 mapping.setMeshes(inMesh, outMesh);
94 BOOST_TEST(
mapping.hasComputedMapping() ==
false);
95 BOOST_TEST(
mapping.isJustInTimeMapping() ==
true);
101 BOOST_TEST(
mapping.hasComputedMapping() ==
true);
103 Eigen::MatrixXd inCoords(dimensions, 1);
104 inCoords.setConstant(0.0);
105 Eigen::MatrixXd inData(scalar, 1);
106 inData.setConstant(1.0);
107 Eigen::MatrixXd outData(scalar, Nx * Ny * Nz);
109 mapping.mapConservativeAt(inCoords, inData, dummyCache, outData);
112 check_support_5x5x5(outData, radius, Eigen::Vector3d(0.0, 0.0, 0.0));
113 const double zeroEvaluation = 0.133690152197192;
114 BOOST_TEST(outData(0, 0) == zeroEvaluation);
115 const double sqrtOneEvaluation = 0.06352956032410564;
117 BOOST_TEST(outData(0, 1) == sqrtOneEvaluation);
120 inCoords(0, 0) = 2.0;
121 mapping.mapConservativeAt(inCoords, inData, dummyCache, outData);
122 BOOST_TEST(outData(0, 1) == 2 * sqrtOneEvaluation);
126 inCoords.setConstant(2.5);
127 mapping.mapConservativeAt(inCoords, inData, dummyCache, outData);
128 BOOST_TEST(outData(0, 0) == 0.0);
129 check_support_5x5x5(outData, radius, Eigen::Vector3d(2.5, 2.5, 2.5));
133 inData.row(0).setConstant(1);
134 inData.row(1).setConstant(2);
135 inData.row(2).setConstant(3);
136 inCoords.resize(dimensions, 2);
138 outData.resize(
vector, Nx * Ny * Nz);
141 mapping.mapConservativeAt(inCoords, inData, dummyCache, outData);
142 check_support_5x5x5(outData, radius, Eigen::Vector3d(0.0, 0.0, 0.0));
144 BOOST_TEST(outData(0, 0) == 2 * zeroEvaluation);
145 BOOST_TEST(outData(1, 0) == 2 * 2 * zeroEvaluation);
146 BOOST_TEST(outData(2, 0) == 2 * 3 * zeroEvaluation);
148 BOOST_TEST(outData(1, 2) == 2 * outData(0, 2));
149 BOOST_TEST(outData(2, 2) == 3 * outData(0, 2));