preCICE
Loading...
Searching...
No Matches
MappingConfigurationTest.cpp
Go to the documentation of this file.
1#include <memory>
2#include <string>
3#include <vector>
4#include "logging/Logger.hpp"
5#include "mapping/Mapping.hpp"
11#include "testing/Testing.hpp"
12#include "xml/XMLTag.hpp"
13
14using namespace precice;
15using namespace precice::mapping;
16
17BOOST_AUTO_TEST_SUITE(MappingTests)
18BOOST_AUTO_TEST_SUITE(Configuration)
19
22{
24
25 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
26 std::string file(pathToTests + "mapping-config.xml");
27 using xml::XMLTag;
28 XMLTag tag = xml::getRootTag();
30 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
31 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
33
34 BOOST_TEST(meshConfig->meshes().size() == 3);
35 BOOST_TEST(mappingConfig.mappings().size() == 3);
36 BOOST_TEST(mappingConfig.mappings().at(0).fromMesh == meshConfig->meshes().at(0));
37 BOOST_TEST(mappingConfig.mappings().at(0).toMesh == meshConfig->meshes().at(2));
38 BOOST_TEST(mappingConfig.mappings().at(0).direction == MappingConfiguration::WRITE);
39
40 BOOST_TEST(mappingConfig.mappings().at(1).fromMesh == meshConfig->meshes().at(2));
41 BOOST_TEST(mappingConfig.mappings().at(1).toMesh == meshConfig->meshes().at(1));
42 BOOST_TEST(mappingConfig.mappings().at(1).direction == MappingConfiguration::READ);
43
44 BOOST_TEST(mappingConfig.mappings().at(2).fromMesh == meshConfig->meshes().at(1));
45 BOOST_TEST(mappingConfig.mappings().at(2).toMesh == meshConfig->meshes().at(0));
46 BOOST_TEST(mappingConfig.mappings().at(2).direction == MappingConfiguration::WRITE);
47}
48
50BOOST_AUTO_TEST_CASE(RBFDirectConfiguration)
51{
53
54 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
55 std::string file(pathToTests + "mapping-rbf-direct-config.xml");
56 using xml::XMLTag;
57 XMLTag tag = xml::getRootTag();
59 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
60 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
62
63 BOOST_TEST(meshConfig->meshes().size() == 13);
64 BOOST_TEST(mappingConfig.mappings().size() == 12);
65 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
66 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
67 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
68 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
69 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::READ);
70 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
71 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
72 }
73 {
74 // last configured RBF
76 BOOST_TEST(solverSelection);
77 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::OFF;
78 BOOST_TEST(poly);
79 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[0] == true);
80 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[1] == false);
81 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[2] == true);
82 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-9);
83 }
84}
85
87BOOST_AUTO_TEST_CASE(RBFPUMConfiguration)
88{
90
91 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
92 std::string file(pathToTests + "mapping-rbf-pum-direct-config.xml");
93 using xml::XMLTag;
94 XMLTag tag = xml::getRootTag();
96 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
97 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
99
100 BOOST_TEST(meshConfig->meshes().size() == 13);
101 BOOST_TEST(mappingConfig.mappings().size() == 12);
102 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
103 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
104 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
105 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
106 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::READ);
107 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
108 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
109 }
110 {
111 // last configured RBF
113 BOOST_TEST(solverSelection);
114 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::OFF;
115 BOOST_TEST(poly);
116 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-9);
117 BOOST_TEST(mappingConfig.rbfConfig().verticesPerCluster == 10);
118 BOOST_TEST(mappingConfig.rbfConfig().relativeOverlap == 0.4);
119 BOOST_TEST(mappingConfig.rbfConfig().projectToInput == true);
120 }
121}
122
123PRECICE_TEST_SETUP(1_rank)
124BOOST_AUTO_TEST_CASE(CGConfiguration)
125{
126 PRECICE_TEST();
127
128 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
129 std::string file(pathToTests + "mapping-config-cg.xml");
130 using xml::XMLTag;
131 XMLTag tag = xml::getRootTag();
133 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
134 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
135 mappingConfig.setExperimental(true);
137
138 BOOST_TEST(meshConfig->meshes().size() == 1);
139 BOOST_TEST(mappingConfig.mappings().size() == 1);
140 BOOST_TEST(mappingConfig.mappings().at(0).toMesh == meshConfig->meshes().at(0));
141 BOOST_TEST(mappingConfig.mappings().at(0).direction == MappingConfiguration::WRITE);
142 BOOST_TEST(mappingConfig.mappings().at(0).requiresBasisFunction == false);
143}
144
145#ifndef PRECICE_NO_PETSC
146
148BOOST_AUTO_TEST_CASE(RBFIterativeConfiguration)
149{
150 PRECICE_TEST();
151
152 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
153 std::string file(pathToTests + "mapping-rbf-iterative-config.xml");
154 using xml::XMLTag;
155 XMLTag tag = xml::getRootTag();
157 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
158 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
160
161 BOOST_TEST(meshConfig->meshes().size() == 13);
162 BOOST_TEST(mappingConfig.mappings().size() == 12);
163 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
164 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
165 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
166 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
167 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::WRITE);
168 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
169 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
170 }
171 {
172 // last configured RBF
174 BOOST_TEST(solverSelection);
175 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::OFF;
176 BOOST_TEST(poly);
177 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[0] == true);
178 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[1] == false);
179 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[2] == true);
180 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-6);
181 }
182}
183#endif
184
186BOOST_AUTO_TEST_CASE(RBFAliasConfiguration)
187{
188 PRECICE_TEST();
189
190 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
191 std::string file(pathToTests + "mapping-rbf-alias-config.xml");
192 using xml::XMLTag;
193 XMLTag tag = xml::getRootTag();
195 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
196 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
198
199 BOOST_TEST(meshConfig->meshes().size() == 3);
200 BOOST_TEST(mappingConfig.mappings().size() == 2);
201 BOOST_TEST(mappingConfig.mappings().at(0).mapping != nullptr);
202 BOOST_TEST(mappingConfig.mappings().at(0).fromMesh == meshConfig->meshes().at(0));
203 BOOST_TEST(mappingConfig.mappings().at(0).toMesh == meshConfig->meshes().at(2));
204 BOOST_TEST(mappingConfig.mappings().at(0).direction == MappingConfiguration::WRITE);
205 BOOST_TEST(mappingConfig.mappings().at(0).requiresBasisFunction == true);
206 BOOST_TEST(mappingConfig.mappings().at(0).configuredWithAliasTag == true);
207
208 // The second mapping
209 BOOST_TEST(mappingConfig.mappings().at(1).mapping != nullptr);
210 BOOST_TEST(mappingConfig.mappings().at(1).fromMesh == meshConfig->meshes().at(2));
211 BOOST_TEST(mappingConfig.mappings().at(1).toMesh == meshConfig->meshes().at(1));
212 BOOST_TEST(mappingConfig.mappings().at(1).direction == MappingConfiguration::READ);
213 BOOST_TEST(mappingConfig.mappings().at(1).requiresBasisFunction == true);
214 BOOST_TEST(mappingConfig.mappings().at(1).configuredWithAliasTag == true);
215 {
216 // last configured RBF
218 BOOST_TEST(solverSelection);
219 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::SEPARATE;
220 BOOST_TEST(poly);
221 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[0] == false);
222 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[1] == false);
223 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[2] == false);
224 BOOST_TEST(mappingConfig.rbfConfig().verticesPerCluster == 100);
225 BOOST_TEST(mappingConfig.rbfConfig().relativeOverlap == 0.3);
226 BOOST_TEST(mappingConfig.rbfConfig().projectToInput == true);
227 }
228}
229
230#ifndef PRECICE_NO_GINKGO
231
232#ifdef PRECICE_WITH_CUDA
233// This test mostly runs the configuration path, but it does not test the actual
234// setting in the Ginkgo solver class (being a cuda executor), since the mapping
235// configuration does not expose this information
236PRECICE_TEST_SETUP(1_rank)
237BOOST_AUTO_TEST_CASE(RBFGinkgoCudaConfiguration)
238{
239 PRECICE_TEST();
240
241 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
242 std::string file(pathToTests + "mapping-rbf-cuda-config.xml");
243 using xml::XMLTag;
244 XMLTag tag = xml::getRootTag();
246 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
247 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
249
250 BOOST_TEST(meshConfig->meshes().size() == 3);
251 BOOST_TEST(mappingConfig.mappings().size() == 2);
252 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
253 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
254 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
255 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
256 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::READ);
257 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
258 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
259 }
260 {
261 // last configured RBF
262 bool solverSelection = mappingConfig.rbfConfig().solver == MappingConfiguration::RBFConfiguration::SystemSolver::GlobalIterative;
263 BOOST_TEST(solverSelection);
264 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::OFF;
265 BOOST_TEST(poly);
266 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[0] == true);
267 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[1] == false);
268 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[2] == true);
269 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-6);
270 }
271}
272#endif
273
274#ifdef PRECICE_WITH_HIP
275// This test mostly runs the configuration path, but it does not test the actual
276// setting in the Ginkgo solver class (being a hip executor), since the mapping
277// configuration does not expose this information
278PRECICE_TEST_SETUP(1_rank)
279BOOST_AUTO_TEST_CASE(RBFGinkgoHipConfiguration)
280{
281 PRECICE_TEST();
282
283 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
284 std::string file(pathToTests + "mapping-rbf-hip-config.xml");
285 using xml::XMLTag;
286 XMLTag tag = xml::getRootTag();
288 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
289 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
291
292 BOOST_TEST(meshConfig->meshes().size() == 3);
293 BOOST_TEST(mappingConfig.mappings().size() == 2);
294 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
295 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
296 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
297 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
298 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::READ);
299 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
300 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
301 }
302 {
303 // last configured RBF
304 bool solverSelection = mappingConfig.rbfConfig().solver == MappingConfiguration::RBFConfiguration::SystemSolver::GlobalIterative;
305 BOOST_TEST(solverSelection);
306 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::OFF;
307 BOOST_TEST(poly);
308 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[0] == true);
309 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[1] == false);
310 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[2] == true);
311 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-6);
312 }
313}
314#endif
315
316#ifdef PRECICE_WITH_OPENMP
317// This test mostly runs the configuration path, but it does not test the actual
318// setting in the Ginkgo solver class (being an OpenMP executor), since the mapping
319// configuration does not expose this information
320PRECICE_TEST_SETUP(1_rank)
321BOOST_AUTO_TEST_CASE(RBFGinkgoOMPConfiguration)
322{
323 PRECICE_TEST();
324
325 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
326 std::string file(pathToTests + "mapping-rbf-omp-config.xml");
327 using xml::XMLTag;
328 XMLTag tag = xml::getRootTag();
330 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
331 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
333
334 BOOST_TEST(meshConfig->meshes().size() == 2);
335 BOOST_TEST(mappingConfig.mappings().size() == 1);
336 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
337 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
338 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
339 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
340 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::WRITE);
341 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
342 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
343 }
344 {
345 // last configured RBF
346 bool solverSelection = mappingConfig.rbfConfig().solver == MappingConfiguration::RBFConfiguration::SystemSolver::GlobalIterative;
347 BOOST_TEST(solverSelection);
348 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::OFF;
349 BOOST_TEST(poly);
350 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[0] == true);
351 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[1] == false);
352 BOOST_TEST(mappingConfig.rbfConfig().deadAxis[2] == true);
353 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-6);
354 }
355}
356#endif
357#endif
358
359#ifndef PRECICE_NO_KOKKOS_KERNELS
360
361#ifdef PRECICE_WITH_CUDA
362PRECICE_TEST_SETUP(1_rank)
363BOOST_AUTO_TEST_CASE(RBFPUMCudaConfiguration)
364{
365 PRECICE_TEST();
366
367 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
368 std::string file(pathToTests + "mapping-rbf-pum-direct-cuda-config.xml");
369 using xml::XMLTag;
370 XMLTag tag = xml::getRootTag();
372 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
373 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
375
376 BOOST_TEST(meshConfig->meshes().size() == 5);
377 BOOST_TEST(mappingConfig.mappings().size() == 4);
378 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
379 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
380 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
381 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
382 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::READ);
383 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
384 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
385 }
386 {
387 // last configured RBF
388 bool solverSelection = mappingConfig.rbfConfig().solver == MappingConfiguration::RBFConfiguration::SystemSolver::PUMDirect;
389 BOOST_TEST(solverSelection);
390 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::SEPARATE;
391 BOOST_TEST(poly);
392 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-9);
393 BOOST_TEST(mappingConfig.rbfConfig().verticesPerCluster == 10);
394 BOOST_TEST(mappingConfig.rbfConfig().relativeOverlap == 0.4);
395 BOOST_TEST(mappingConfig.rbfConfig().projectToInput == false);
396 }
397}
398#endif
399
400#ifdef PRECICE_WITH_HIP
401PRECICE_TEST_SETUP(1_rank)
402BOOST_AUTO_TEST_CASE(RBFPUMHipConfiguration)
403{
404 PRECICE_TEST();
405
406 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
407 std::string file(pathToTests + "mapping-rbf-pum-direct-hip-config.xml");
408 using xml::XMLTag;
409 XMLTag tag = xml::getRootTag();
411 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
412 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
414
415 BOOST_TEST(meshConfig->meshes().size() == 5);
416 BOOST_TEST(mappingConfig.mappings().size() == 4);
417 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
418 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
419 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
420 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
421 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::READ);
422 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
423 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
424 }
425 {
426 // last configured RBF
427 bool solverSelection = mappingConfig.rbfConfig().solver == MappingConfiguration::RBFConfiguration::SystemSolver::PUMDirect;
428 BOOST_TEST(solverSelection);
429 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::SEPARATE;
430 BOOST_TEST(poly);
431 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-9);
432 BOOST_TEST(mappingConfig.rbfConfig().verticesPerCluster == 10);
433 BOOST_TEST(mappingConfig.rbfConfig().relativeOverlap == 0.4);
434 BOOST_TEST(mappingConfig.rbfConfig().projectToInput == false);
435 }
436}
437#endif
438
439#ifdef PRECICE_WITH_OPENMP
440PRECICE_TEST_SETUP(1_rank)
441BOOST_AUTO_TEST_CASE(RBFPUMOpenMPConfiguration)
442{
443 PRECICE_TEST();
444
445 std::string pathToTests = testing::getPathToSources() + "/mapping/tests/";
446 std::string file(pathToTests + "mapping-rbf-pum-direct-omp-config.xml");
447 using xml::XMLTag;
448 XMLTag tag = xml::getRootTag();
450 mesh::PtrMeshConfiguration meshConfig(new mesh::MeshConfiguration(tag, dataConfig));
451 mapping::MappingConfiguration mappingConfig(tag, meshConfig);
453
454 BOOST_TEST(meshConfig->meshes().size() == 5);
455 BOOST_TEST(mappingConfig.mappings().size() == 4);
456 for (unsigned int i = 0; i < mappingConfig.mappings().size(); ++i) {
457 BOOST_TEST(mappingConfig.mappings().at(i).mapping != nullptr);
458 BOOST_TEST(mappingConfig.mappings().at(i).fromMesh == meshConfig->meshes().at(i + 1));
459 BOOST_TEST(mappingConfig.mappings().at(i).toMesh == meshConfig->meshes().at(i));
460 BOOST_TEST(mappingConfig.mappings().at(i).direction == MappingConfiguration::READ);
461 BOOST_TEST(mappingConfig.mappings().at(i).requiresBasisFunction == true);
462 BOOST_TEST(mappingConfig.mappings().at(i).configuredWithAliasTag == false);
463 }
464 {
465 // last configured RBF
466 bool solverSelection = mappingConfig.rbfConfig().solver == MappingConfiguration::RBFConfiguration::SystemSolver::PUMDirect;
467 BOOST_TEST(solverSelection);
468 bool poly = mappingConfig.rbfConfig().polynomial == Polynomial::SEPARATE;
469 BOOST_TEST(poly);
470 BOOST_TEST(mappingConfig.rbfConfig().solverRtol == 1e-9);
471 BOOST_TEST(mappingConfig.rbfConfig().verticesPerCluster == 10);
472 BOOST_TEST(mappingConfig.rbfConfig().relativeOverlap == 0.4);
473 BOOST_TEST(mappingConfig.rbfConfig().projectToInput == false);
474 }
475}
476#endif
477#endif
478
BOOST_AUTO_TEST_CASE(testIQNIMVJPPWithSubsteps)
BOOST_AUTO_TEST_CASE(Configuration)
BOOST_AUTO_TEST_SUITE(PreProcess)
BOOST_AUTO_TEST_SUITE_END()
#define PRECICE_TEST()
Definition Testing.hpp:39
#define PRECICE_TEST_SETUP(...)
Creates and attaches a TestSetup to a Boost test case.
Definition Testing.hpp:29
Performs XML configuration and holds configured mappings.
const std::vector< ConfiguredMapping > & mappings()
Returns all configured mappings.
const RBFConfiguration & rbfConfig() const
Performs and provides configuration for Data objects from XML files.
Represents an XML tag to be configured automatically.
Definition XMLTag.hpp:28
constexpr auto size(const C &c) -> decltype(c.size())
Definition span.hpp:182
contains data mapping from points to meshes.
std::shared_ptr< DataConfiguration > PtrDataConfiguration
std::shared_ptr< MeshConfiguration > PtrMeshConfiguration
@ PETSc
Require to initialize PETSc. This implies the initialization of Events.
std::string getPathToSources()
Returns the base path to the sources.
Definition Testing.cpp:33
XMLTag getRootTag()
Returns an empty root tag with name "configuration".
Definition XMLTag.cpp:278
std::string configure(XMLTag &tag, const precice::xml::ConfigurationContext &context, std::string_view configurationFilename)
Configures the given configuration from file configurationFilename.
Definition XMLTag.cpp:284
Main namespace of the precice library.
Tightly coupled to the parameters of Participant()
Definition XMLTag.hpp:21