Skip to content

Refuse domains whose fault buffer sits inside the SW4 sponge - #143

Draft
lispandfound wants to merge 1 commit into
sw4_stationsfrom
nzvm/domain-fault-buffer
Draft

Refuse domains whose fault buffer sits inside the SW4 sponge#143
lispandfound wants to merge 1 commit into
sw4_stationsfrom
nzvm/domain-fault-buffer

Conversation

@lispandfound

Copy link
Copy Markdown
Contributor

A fault buffer too small to clear the supergrid absorbing layer puts the
source inside the region where SW4 solves a damped, coordinate-stretched
equation rather than the wave equation. The run completes and produces
waveforms; they are just not ground motion predictions. That failure has
already cost a campaign once (validation_results_24-08), and it is
cheapest to catch before a domain is written rather than after a
simulation has run.

generate-domain now checks the buffer against the sponge, using the
same workflow.sw4 geometry create-sw4-input pads with, so the two
cannot disagree.

The depth is computed before the lateral domain so the refinements can
be resolved against it -- the sponge width depends on the coarsest grid,
which depends on how deep the domain goes. This is a reordering only;
domain_max_depth does not depend on the lateral extent.

Both sw4 and refinements are optional and their absence is not an
error: the v24.2.2.x defaults are EMOD3D-only and have neither section,
so those runs skip the check entirely and are unaffected.

This is a behaviour change for SW4 realisations: a configuration that
previously produced a domain may now be rejected. That is the point.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com


Stack created with GitHub Stacks CLIGive Feedback 💬

@lispandfound
lispandfound force-pushed the nzvm/domain-fault-buffer branch from a05e704 to 928302c Compare September 2, 2026 02:23
@lispandfound
lispandfound force-pushed the nzvm/domain-fault-buffer branch from 928302c to 4b1b46e Compare September 2, 2026 02:52
A fault buffer too small to clear the supergrid absorbing layer puts the
source inside the region where SW4 solves a damped, coordinate-stretched
equation rather than the wave equation. The run completes and produces
waveforms; they are just not ground motion predictions. That failure has
already cost a campaign once (validation_results_24-08), and it is
cheapest to catch before a domain is written rather than after a
simulation has run.

`generate-domain` now checks the buffer against the sponge, using the
same `workflow.sw4` geometry `create-sw4-input` pads with, so the two
cannot disagree.

The depth is computed before the lateral domain so the refinements can
be resolved against it -- the sponge width depends on the coarsest grid,
which depends on how deep the domain goes. This is a reordering only;
`domain_max_depth` does not depend on the lateral extent.

Both `sw4` and `refinements` are optional and their absence is not an
error: the v24.2.2.x defaults are EMOD3D-only and have neither section,
so those runs skip the check entirely and are unaffected.

This is a behaviour change for SW4 realisations: a configuration that
previously produced a domain may now be rejected. That is the point.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lispandfound
lispandfound force-pushed the nzvm/domain-fault-buffer branch from 4b1b46e to a775242 Compare September 4, 2026 01:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant