Repository navigation
Conversation
Under DEVITO_MPI=overlap/overlap2/full the CORE and OWNED regions ignored the thicknesses of MultiSubDimensions, so points near the edges of a SubDomainSet (or DevitoPRO ABox) were skipped. These thicknesses are only known at runtime, so overlap2/full apply them to the OWNED region bounds in the remainder rather than storing them in the region struct.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3075 +/- ##
==========================================
- Coverage 84.23% 84.06% -0.17%
==========================================
Files 258 258
Lines 57074 57126 +52
Branches 4875 4882 +7
==========================================
- Hits 48076 48024 -52
- Misses 8170 8271 +101
- Partials 828 831 +3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
mloubout
left a comment
There was a problem hiding this comment.
This doesn't look right, having to track MultiSubs seaprately looks overly complicated, and having a haloscheme having separate arguments and runtime_tkns is not right.
|
The osx failure is the Apple-silicon detection flake, not this change: the job header reads |
Under
DEVITO_MPI=overlap,overlap2andfull, an equation over aSubDomainSetskipped points near the box edges: the halo scheme only honoredSubDimensionthicknesses, so the box thickness was applied relative to each CORE/OWNED region instead of being intersected with it.basicanddiag2were fine.HaloSchemenow honorsMultiSubDimensionthicknesses too, and records them as runtime thicknesses (they are set inside the Operator, one subdomain at a time). This alone fixesoverlap.overlap2/fullfill the OWNED region struct at argument time, when those values don't exist yet, so the remainder applies them relative to the region bounds instead.Found through DevitoPRO's ABox (devitocodespro/devitopro#941), which gave wrong FWI gradients under
full. New test:test_subdomainset_stencil_mpifails under overlap/overlap2/full on main and passes for all five modes here. Generated code for regular SubDomains is unchanged.🤖 Generated with Claude Code