Merge lp:~michael-lange/fluidity/fix_detector_init into lp:fluidity
Proposed by
Michael Lange
Status: | Merged |
---|---|
Approved by: | Mark Filipiak |
Approved revision: | 4031 |
Merged at revision: | 4127 |
Proposed branch: | lp:~michael-lange/fluidity/fix_detector_init |
Merge into: | lp:fluidity |
Diff against target: |
325 lines (+235/-19) 6 files modified
femtools/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) |
To merge this branch: | bzr merge lp:~michael-lange/fluidity/fix_detector_init |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Mark Filipiak (community) | Approve | ||
Review via email: mp+119699@code.launchpad.net |
Description of the change
Fixing the initialisation of detectors in parallel (lp:967093) and adding an according test case. Many thanks to M. Filipiak for providing the patch.
Also fixing detector initialisation from file in parallel, which would previously segfault, due to the legacy restriction to only one proc.
To post a comment you must log in.
Not sure if I'm allowed to review the changes since I'm one of the authors but I'd like to get this fix into the trunk so I can then add the fldecomp- to-flredecomp change.
The change to get the detectors read in from file in parallel looks ok (and matches what is done for a checkpointed detector file in parallel). The new test fails on the old trunk and passes with this branch.
I looked again at the code I added to work out the owner of a detector. I still think it's OK. It's has a slight inefficiency as James Maddison noticed but I don't know if changing the picker construction to consider only owned elements will break other things (e.g. interpolate_ boundary_ values( Geostrophic_ Pressure. F90)). Changing find_serial() to have the same ownership test as find_parallel() might *seem* cleaner but will certainly break interpolate_ boundary_ values( Geostrophic_ Pressure. F90).
I think the names of the routine find_serial() and find_parallel() are perhaps not descriptive, the first really means 'find any element, that this process has in its mesh, that contains the point, even if this process doesn't own that element': I don't think it is worth changing the names.
It can be merged into the trunk (Michael, I have a version of fix_detector_init that I merged trunk r4125 into and tested up to medium tests locally, not in buildbot).