fmihpc / vlasiator

Vlasiator - ten letters you can count on
https://www.helsinki.fi/en/researchgroups/vlasiator
Other
47 stars 38 forks source link

Update DCCRG neighbor definitions, decrease neighborhood size by 1. #1000

Open ursg opened 3 months ago

ursg commented 3 months ago

After fixing a small number of bugs that were left, I suppose this is now ready for testing:

This PR updates the DCCRG submodel to point at my branch, in which the definition of what neighbor is has been changed. As a result, we no longer need any extra speculative neighborhood sizes to make sure we capture all relevant neighbors at AMR interfaces, and can run with a neighborhood_size that is one unit smaller.

This results in smaller induced refinement regions, less communication overhead and thus, hopefully, an overall speedup.

After running a number of testpackage tests by hand, I'm now keen to see if this runs the whole package, or whether there are still issues to iron out.

Note: This PR also updates all makefiles to build with c++20. Alternatively, the erase_if implementation in dccrg needs to be replaced with a backwards-compatible erase(remove) idiom.

ursg commented 3 months ago

Hmm, these testpackage outputs are a bit puzzling. Flowthrough_amr diffs make sense with smaller induced refinement, but those magnetospheres shouldn't probably be that different. And what's with those Waitall errors? It looks like output still got written? Are they happening at the end of runs?

ykempf commented 3 months ago

Hmm, these testpackage outputs are a bit puzzling. Flowthrough_amr diffs make sense with smaller induced refinement, but those magnetospheres shouldn't probably be that different. And what's with those Waitall errors? It looks like output still got written? Are they happening at the end of runs?

See my comments on Zulip...