Parallel Detector IO
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fluidity |
Fix Committed
|
High
|
Unassigned |
Bug Description
I have a very simple test case in a 1x1 2D square domain, with a prescribed horizontal velocity. I have 3 individual lagrangian detectors -- (0.5,0.0), (0.5,0.5), (0.5,1.0).
If I run this case in serial, the positions of these detectors, after each timestep, are output into the .detector file correctly. However, if I run this simulation in parallel, on only 2 cores, this is not the case - the position of the first detector is output correctly, but all other written detector positions are erroneuous.
I have followed individual detector positions through the code, and their positions are updated correctly, implying that this is strictly an issue with parallel detector IO. In other words, a write statement of detector positions at line 2787 of subroutine write_mpi_out in Diagnostic_
I have attached everything that is required to reproduce this bug (prescribed.flml is the serial case, parallel_
Related branches
- Jon Hill: Approve
- Rhodri Davies: Approve
-
Diff: 554 lines (+319/-59)13 files modifiedfemtools/Detector_Parallel.F90 (+25/-13)
femtools/Diagnostic_variables.F90 (+2/-1)
tests/detectors_parallel_adaptivity/detectors_parallel_adaptivity.xml (+12/-2)
tests/detectors_parallel_adaptivity/readtool.py (+0/-21)
tests/lagrangian_detectors/lagrangian_detectors.xml (+28/-2)
tests/lagrangian_detectors/lagrangian_detectors_rk.flml (+15/-0)
tests/lagrangian_detectors/readtool.py (+0/-20)
tests/lagrangian_detectors_checkpoint/Makefile (+9/-0)
tests/lagrangian_detectors_checkpoint/Xvals.txt (+1/-0)
tests/lagrangian_detectors_checkpoint/Yvals.txt (+1/-0)
tests/lagrangian_detectors_checkpoint/lagrangian_detectors.flml (+178/-0)
tests/lagrangian_detectors_checkpoint/lagrangian_detectors_checkpoint.xml (+35/-0)
tests/lagrangian_detectors_checkpoint/square.geo (+13/-0)
Changed in fluidity: | |
status: | New → Confirmed |
Changed in fluidity: | |
status: | Confirmed → Fix Committed |
Hi Rhodri,
Thanks for reporting this bug and providing the test case. The problem was that the names of lagrangian detectors were being overwritten during initialisation, causing I/O to fail, which I have fixed in the attached branch (lp:~fluidity-core/fluidity/fix-lagr-detectors).
Hope this helps
Michael