Canonical RANS CTests: run without FFT in CI; terrain-height wall distance on z-split layouts - #409
Merged
Conversation
…ain cases on FFT No CI configuration builds with ERF_ENABLE_FFT, and every Canonical_RANS deck ran the anelastic projection with the FFT solver, so all nine RANS entries aborted at start-up in CI (the 2026-09-10 run: 9 of 9 on macOS, Linux GCC and Windows). The flat decks abort in ReadParameters on erf.use_fft; the 2D hill deck sets use_fft = false but its general-terrain projection is the FFT-preconditioned GMRES, which has no non-FFT path. - The three flat entries pass erf.use_fft=false (MLMG projection) and run in every build; the six terrain-fitted entries are registered only under if(ERF_ENABLE_FFT). - The test command echoes the tail of the run log when the executable exits non-zero, so ctest -VV shows the reason instead of nothing. - RegressionTests.rst and the Canonical_RANS README say so. Checked with a Debug build without FFT (3 entries registered, 3 pass), a configure with MPI off (3 entries), and a Release FFT build (9 pass). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 3eff4c7)
…; correct the dz != dx notes The terrain_height wall distance read z_nd(:,:,klo) from every box, but boxes above a z split of the BoxArray do not hold the surface nodes, so their distance was garbage (778 m error on the 3D hill deck at amr.max_grid_size_z = 10, clamped to epsilon). Gather the surface slab onto every box with a ParallelCopy first, and guard the gathered slab with a reduction over its own ghost width (a scalar-ghost MultiFab::max would read past the slab, which has no z ghosts). With the fix the split and unsplit layouts give bit-identical wall distances, and the unsplit distance is unchanged. The 1.788e139 pre-projection divergence recorded in PLAN.md phase 6, the 3D hill README, RESULTS.md, the deck and the Poisson solver comment as a dz != dx failure was the same z-split layout (unfilled momenta ghost faces in the initial projection and duplicated planar surface-layer arrays, fixed in erf-model#3970), not the aspect ratio; the text now says so. The Poisson wall-distance multigrid does still diverge at dx = 2 dz. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 9a9207f)
The sweep's spin-up deck runs the anelastic projection with the FFT solver, so in a build without ERF_ENABLE_FFT the three RANS_Timestep_Limits entries abort at start-up; gate them like the terrain-fitted Canonical_RANS entries. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Canonical RANS CTests: run without FFT in CI; terrain-height wall distance on z-split layouts
Hazard-side copy of the two fixes pushed to erf-model#3971 today (cherry-picks 3eff4c7 and 9a9207f, plus the
RANS_Neutral_ABL_Flat_Implicitentry that only exists here).Why
No CI configuration builds with
ERF_ENABLE_FFT, and every Canonical_RANS deck ran the anelastic projection with the FFT solver, so all ten RANS entries merged in #405 abort at start-up in CI: the flat decks in ReadParameters onerf.use_fft, the 2D hill deck (which already setsuse_fft = false) inproject_momenta, because the general-terrain projection is the FFT-preconditioned GMRES with no non-FFT path. The harness also swallowed the run log, soctest -VVshowed nothing. The upstream PR's CI run of 2026-09-10 failed 9 of 9 on macOS, Linux and Windows; every later run was cancelled or queued, so it went unnoticed.Changes
erf.use_fft=false(MLMG projection) and run in every build; the six terrain-fitted entries are registered only underif(ERF_ENABLE_FFT).erf.wall_dist_type = terrain_heightread the surface nodesz_nd(:,:,klo)from every box, but boxes above a z split of the BoxArray do not hold them (778 m error on the 3D hill atamr.max_grid_size_z = 10). The surface slab is now gathered onto every box first, with a guard that reduces over the slab's own ghost width.Verification
-L rans, 4 pass (the threeTimestep_Limitsdt-sweep entries, whose spin-up deck also uses FFT, are now gated the same way).max_step = 0,amr.max_grid_size_z = 10vs one box per column: wall distance bit-identical with the fix (778 m apart without it); the unsplit distance is unchanged.🤖 Generated with Claude Code