incorrect initialisation of detectors near partition boundaries in parallel
Bug #967093 reported by
Hannah Hiester
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fluidity |
Fix Released
|
Low
|
Michael Lange |
Bug Description
In parallel when a detector is initialised in a region that falls into 3 different partitions it gets initialised to the origin rather than the specified coordinate. If debugging is enabled the simulation fails at the assert on line 1834:Diagnostic
This behaviour was seen initially in a run on cx2 and was reproduced with the attached files when run on 3 processors on dannii.
Related branches
lp:~michael-lange/fluidity/fix_detector_init
- Mark Filipiak (community): Approve
-
Diff: 325 lines (+235/-19)6 files modifiedfemtools/Diagnostic_variables.F90 (+18/-17)
femtools/Node_Owner_Finder_Fortran.F90 (+13/-2)
tests/detectors_parallel_init/Makefile (+15/-0)
tests/detectors_parallel_init/detectors.flml (+121/-0)
tests/detectors_parallel_init/detectors_parallel_init.xml (+61/-0)
tests/detectors_parallel_init/src/square.geo (+7/-0)
Changed in fluidity: | |
assignee: | nobody → Hannah Hiester (h-hiester07) |
importance: | Undecided → Low |
Changed in fluidity: | |
status: | New → Fix Committed |
status: | Fix Committed → In Progress |
Changed in fluidity: | |
assignee: | Hannah Hiester (h-hiester07) → Michael Lange (michael-lange) |
Changed in fluidity: | |
status: | In Progress → Fix Committed |
Changed in fluidity: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Hi Hannah,
create_ single_ detector looks suspect to me. The picker_inquire call has global = .false. which is a bit odd (presumably it's trying to guarantee that all containing elements are owned?). Then:
1377: if (.not.element_ owned(xfield, element) ) return
can return on all processes - local ownership inquiries can return different elements on different processes, and it's possible for all processes to determine that the node lies in their halo.