Stable-TC defaults: spline_order=3, dt-scaled wind-sea floor on by default#66
Merged
Conversation
…fault Default the validated stable tropical-cyclone configuration so a symmetric TC eye is steady and axisymmetric out of the box. - WaveGrowth2D: spline_order default 1 -> 3 (cubic deposition). Order 1 (CIC) and 2 (TSC) imprint a 4-fold grid-axis "cross" on a symmetric TC eye (issue #59); cubic restores axisymmetry. Tripolar grids auto-fall-back to order 1 with a warning (was a hard error), so the new default works on any grid. - ODESettings.windsea_alpha default 0.0 -> 0.005 (wind-sea-scaled reconstruction floor). Damps the remesh limit cycle at wind/calm interfaces and the rotating eyewall, energy-conserving for a resolved eyewall. - mapping_2D: the floor is now automatically dt-scaled, alpha_eff = windsea_alpha * min(1, dt/10min). Erosion per unit time scales as alpha/dt, so a constant alpha drains the field at small dt; the dt-scaling bounds erosion and prevents the small-dt collapse, making the floor safe to leave on by default. Guidance (docstrings): resolve the eyewall (dx <~ Rmax/20), pick dt so the wave Courant C_cg = c_g*dt/dx ~ 2-5 (advective C_U = U*dt/dx ~ 10-20) — the eyewall stability sweet spot. On an under-resolved eyewall the floor can still collapse the storm; resolve first. Full analysis: analysis/stability FINDINGS_eyewall_stability. NB: changes default numerics — existing test/regression baselines will shift and need re-blessing. Co-Authored-By: Claude Opus 4.8 <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.
Summary
Make the validated stable tropical-cyclone configuration the default, so a stationary symmetric TC eye is both steady in time and axisymmetric in space out of the box. Derived from a 900+ run eyewall/discontinuity stability sweep (
analysis/stabilityin the parent repo).Changes
WaveGrowth2D:spline_orderdefault1 → 3(cubic deposition). Order 1 (CIC) / 2 (TSC) imprint a 4-fold grid-axis "cross" on a symmetric eye (#59); cubic restores axisymmetry. Tripolar grids auto-fall-back to order 1 with a warning (previously a hard error), so the new default is safe on any grid.ODESettings.windsea_alphadefault0.0 → 0.005— the wind-sea-scaled reconstruction floor that damps the remesh limit cycle at wind/calm interfaces and the rotating eyewall (energy-conserving for a resolved eyewall).mapping_2D: the floor is now automatically dt-scaled,α_eff = windsea_alpha · min(1, dt/10min). Erosion per unit time ∝α/dt, so a constantαdrains the field at smalldt; the dt-scaling bounds erosion and prevents the small-dt collapse, making the floor safe to leave on by default.Recommended regime (now in docstrings)
dx ≲ Rmax/20(≥40 ideal).dtso the wave CourantC_cg = c_g·dt/dx ≈ 2–5(advectiveC_U = U·dt/dx ≈ 10–20) — the eyewall stability sweet spot (both temporal pulsing and spatial asymmetry minimize atC_cg ≈ 3). Typicaldt ≈ 5–10 min.Validation
With these defaults (order 3,
windsea_alpha=0.005dt-scaled,dx ≲ Rmax/20,C_cg ≈ 3), a CAT3–5 storm eyewall reachescv ~ 1e-3(temporal) andasym ~ 1e-3(axisymmetry); wind/calm discontinuities are fully steady. Full write-up:analysis/stability/FINDINGS_eyewall_stability_courant.{md,pdf}.This changes default numerics. Existing test/regression baselines will shift and need re-blessing. Downstream code that omits
spline_order/windsea_alphawill get the new behavior; pass explicit values to keep the old behavior.🤖 Generated with Claude Code