Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
d92a092
Rebuild acoustic substepper branch without validation outputs
glwagner May 9, 2026
d8c71fb
Fix vertical damping notation in substepper docs
glwagner May 10, 2026
8a3add7
Merge remote-tracking branch 'origin/main' into glw/hevi-imex-docs
giordano May 10, 2026
e92669c
Avoid duplication
giordano May 10, 2026
a8d0729
Match MPAS first acoustic substep sequencing
glwagner May 10, 2026
9e43bf7
Allow direct GPU sponge coefficient test
glwagner May 10, 2026
93971dc
Document split-explicit outer step cap
glwagner May 10, 2026
face5b3
Document LES timestep limits for split explicit runs
glwagner May 11, 2026
6a24128
Mask normal momentum tendencies on bounded faces
glwagner May 11, 2026
3e409c5
Revert bounded-face tendency masking
glwagner May 11, 2026
c603174
Update substepper stability documentation
glwagner May 11, 2026
bb58eeb
Test acoustic parameter float conversion
glwagner May 11, 2026
c4b7c68
Test acoustic vertical tridiagonal coefficients
glwagner May 12, 2026
2966e52
Tighten latitude-longitude metric drift test
glwagner May 12, 2026
fc7ebe1
Apply frozen pressure gradient on first acoustic substep
glwagner May 12, 2026
62a8e77
Clarify first substep pressure-gradient comment
glwagner May 12, 2026
c9bd8cb
Clarify upper sponge ramp documentation
glwagner May 12, 2026
eb16591
Merge branch 'main' into glw/hevi-imex-docs
glwagner May 12, 2026
48fdb6c
Allow traditional spherical Coriolis
glwagner May 12, 2026
ef6e06d
Seed compressible pressure with kernels
glwagner May 12, 2026
1fb3922
Update docs/src/compressible_dynamics.md
glwagner May 12, 2026
05a05f2
Update docs/src/compressible_dynamics.md
glwagner May 12, 2026
f1d5d30
Update docs/src/compressible_dynamics.md
glwagner May 12, 2026
ea61d1e
Update docs/src/compressible_dynamics.md
glwagner May 12, 2026
a77267f
Update src/AtmosphereModels/dynamics_interface.jl
glwagner May 12, 2026
5c02b80
Update src/TimeSteppers/acoustic_runge_kutta_3.jl
glwagner May 12, 2026
2f46cd5
Restore microphysics update in model state refresh
glwagner May 12, 2026
2099b48
Use frozen gamma coefficient in substepper test
glwagner May 12, 2026
f229b82
Update src/AtmosphereModels/dynamics_interface.jl
glwagner May 12, 2026
f45a75e
Trim stale substepper review comments
glwagner May 12, 2026
8c1119c
Prune acoustic substepper diagnostic experiments
glwagner May 13, 2026
72527a6
Remove redundant substepper boundary masks
glwagner May 13, 2026
3ddaf76
Reject removed tuple damping API
glwagner May 13, 2026
142d132
Trim stale substepper investigation comments
glwagner May 13, 2026
44fbc55
Temper substepper damping documentation
glwagner May 13, 2026
e1b9f63
Update docs/src/compressible_dynamics.md
glwagner May 13, 2026
dce7da2
Update src/CompressibleEquations/acoustic_substepping.jl
glwagner May 13, 2026
73ddace
Update src/CompressibleEquations/time_discretizations.jl
glwagner May 13, 2026
89df435
Update src/CompressibleEquations/acoustic_substepping.jl
glwagner May 13, 2026
5b77472
Merge branch 'main' into glw/hevi-imex-docs
glwagner May 13, 2026
97ee1dc
Make acoustic substep CFL configurable via `acoustic_cfl`
glwagner May 13, 2026
0ab21c0
Fix baroclinic wave documentation links
glwagner May 13, 2026
a436e2b
Fix Aqua ambiguity in acoustic transport
glwagner May 13, 2026
3d9ad1e
Remove trailing docs whitespace
glwagner May 13, 2026
d2d8da5
Do not use anelastic models on Metal GPUs
giordano May 13, 2026
22ce647
Tweak reference value for max w on different systems
giordano May 13, 2026
7cd425f
Avoid scalar indexing inside kernel
giordano May 13, 2026
e07eec8
More at-inbounds
giordano May 13, 2026
5d33b9c
Even more at-inbounds
giordano May 13, 2026
3d33f7b
Merge branch 'main' into glw/hevi-imex-docs
giordano May 13, 2026
58c41e5
Revert "More at-inbounds"
giordano May 13, 2026
503f846
Revert "Even more at-inbounds"
giordano May 13, 2026
a2afed4
Fix split explicit docs anchor and remove unused reference code
glwagner May 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,15 @@ Manifest.toml
Manifest-v*.toml

# output files
validation_output/
*.jld2
*.nc
*.gif
*.pdf
*.png
*.mp4
*.svg
*.zip

# other files we don't want
*.swp
Expand All @@ -43,6 +47,7 @@ Manifest-v*.toml
# Claude Code — ignore user-specific settings, track shared rules/skills
.claude/settings.local.json
.claude/debug/
.claude/*.lock

# Paper references (kept locally only)
examples/tropical_cyclone_world.md
Expand Down
4 changes: 2 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[weakdeps]
CloudMicrophysics = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b"
RRTMGP = "a01a1ee8-cea4-48fc-987c-fc7878d79da1"
ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d"
RRTMGP = "a01a1ee8-cea4-48fc-987c-fc7878d79da1"
Reactant = "3c362404-f566-11ee-1572-e11a4b42c853"
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"

Expand All @@ -43,7 +43,7 @@ KernelAbstractions = "0.9"
Oceananigans = "0.107.4"
Printf = "1"
RRTMGP = "0.21"
SpecialFunctions = "2"
Reactant = "0.2.203"
SpecialFunctions = "2"
Statistics = "<0.0.1, 1"
julia = "1.11.9"
1 change: 1 addition & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ examples = [
Example("Cloud formation in prescribed updraft", "kinematic_driver"; build_always=true, gpu=false),
Example("Schär mountain wave with terrain-following coordinates", "two_dimension_mountain_wave"; build_always=false, gpu=true),
Example("Splitting supercell", "splitting_supercell"; build_always=false, gpu=true),
Example("Baroclinic wave on the sphere", "baroclinic_wave"; build_always=true, gpu=false),
Example("Tropical cyclone world", "tropical_cyclone_world"; build_always=false, gpu=true),
Example("Diurnal cycle of radiative convection", "radiative_convection"; build_always=false, gpu=true),
]
Expand Down
20 changes: 12 additions & 8 deletions docs/src/appendix/notation.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,17 @@ The following table also uses a few conventions that suffuse the source code and
| ``N_A`` | `ℕᴬ` | | Avogadro's number, molecules per mole |
| ``\mathcal{U}`` | `𝒰` | | Thermodynamic state struct (e.g., `StaticEnergyState`) |
| ``\mathcal{M}`` | `ℳ` | | Microphysical state struct (e.g., `WarmPhaseOneMomentState`) |
| ``\psi`` | `ψ` | `AcousticSubstepper.pressure_coefficient` | Pressure coefficient for acoustic substepping, ``ψ = Rᵐ T`` |
| ``{\mathbb{C}^{ac}}^2`` | `ℂᵃᶜ²` | | Acoustic sound speed squared, ``ℂᵃᶜ² = γᵐ ψ = γᵐ Rᵐ T`` |
| ``Π^L`` | `Πᴸ` | `AcousticSubstepper.linearization_exner` | Stage-entry Exner function, ``Π^L = (p^L / p^{st})^κ`` |
| ``θ^L`` | `θᴸ` | `AcousticSubstepper.linearization_potential_temperature` | Stage-entry potential temperature, ``θ^L = (ρθ)^L / ρ^L`` |
| ``γ^m R^m\vert_L`` | `γRᵐᴸ` | `AcousticSubstepper.linearization_gamma_R_mixture` | Stage-entry equation-of-state coefficient in ``p' = γ^m R^m\vert_L Π^L (ρθ)'`` |
| ``C^L`` | `Cᴸ` | | Linearized pressure coefficient, ``C^L = γ^m R^m\vert_L Π^L`` |
| ``G^n`` | `Gⁿ` | | Tendency fields at time step ``n`` |
| ``G^s`` | `Gˢ` | | Slow tendencies (excludes fast pressure gradient and buoyancy) |
| ``N_s`` | `Ns` | `AcousticSubstepper.Ns` | Number of acoustic substeps per full time step |
| ``\Delta \tau`` | `Δτ` | | Acoustic substep time step, ``Δτ = Δt / Ns`` |
| ``\kappa^d`` | `κᵈ` | `AcousticSubstepper.κᵈ` | Divergence damping coefficient for acoustic substepping |
| ``\rho_r`` | `ρᵣ` | `AcousticSubstepper.ρᵣ` | Reference density for divergence damping (start of acoustic loop) |
| ``w^{avg}`` | `averaging_weight` | | Time-averaging weight for velocity fields in acoustic substepping |
| ``\bar{u}, \bar{v}, \bar{w}`` | `ū, v̄, w̄` | | Time-averaged velocities for scalar advection |
| ``N`` | `N` | `AcousticSubstepper.substeps` | Acoustic substeps per outer time step, or adaptive substep count before stage partitioning |
| ``N_τ`` | `Nτ` | | Acoustic substeps in one Runge-Kutta stage |
| ``\Delta \tau`` | `Δτ` | | Acoustic substep size, ``Δτ = Δt / N`` for proportional substep distribution |
| ``ρ'`` | `ρ′` | `AcousticSubstepper.density_perturbation` | Density perturbation about the stage-entry state |
| ``(ρθ)'`` | `ρθ′` | `AcousticSubstepper.density_potential_temperature_perturbation` | Thermodynamic-density perturbation about the stage-entry state |
| ``(ρu)', (ρv)', (ρw)'`` | `ρu′, ρv′, ρw′` | `AcousticSubstepper.momentum_perturbation` | Momentum perturbations about the stage-entry state |
| ``D_τ`` | `Dτ` | | Klemp-Skamarock-Ha divergence-damping proxy, ``D_τ = ((ρθ)'_τ - (ρθ)'_{τ-\Delta τ}) / θ^L`` |
| ``\bar{u}, \bar{v}, \bar{w}`` | `ū, v̄, w̄` | `AcousticSubstepper.time_averaged_velocities` | Time-averaged velocities for non-acoustic scalar advection |
44 changes: 44 additions & 0 deletions docs/src/breeze.bib
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
@article{JablonowskiWilliamson2006,
author = {Jablonowski, Christiane and Williamson, David L.},
title = {A baroclinic instability test case for atmospheric model dynamical cores},
journal = {Quarterly Journal of the Royal Meteorological Society},
volume = {132},
number = {621C},
pages = {2943--2975},
year = {2006},
doi = {10.1256/qj.06.12}
}

@article{Baldauf2010,
author = {Baldauf, Michael},
title = {Linear stability analysis of {Runge}-{Kutta}-based partial time-splitting schemes for the {Euler} equations},
journal = {Monthly Weather Review},
volume = {138},
number = {12},
pages = {4475--4496},
year = {2010},
doi = {10.1175/2010MWR3355.1}
}

@article{KlempSkamarockHa2018,
author = {Klemp, Joseph B. and Skamarock, William C. and Ha, So-Young},
title = {Damping acoustic modes in compressible horizontally explicit vertically implicit ({HEVI}) and split-explicit time integration schemes},
journal = {Monthly Weather Review},
volume = {146},
number = {6},
pages = {1911--1923},
year = {2018},
doi = {10.1175/MWR-D-17-0384.1}
}

@article{KnothWensch2014,
author = {Knoth, Oswald and Wensch, J{\"o}rg},
title = {Generalized split-explicit {Runge}-{Kutta} methods for the compressible {Euler} equations},
journal = {Monthly Weather Review},
volume = {142},
number = {5},
pages = {2067--2081},
year = {2014},
doi = {10.1175/MWR-D-13-00068.1}
}

@article{SkamarockEtAl2012,
author = {Skamarock, William C. and Klemp, Joseph B. and Duda, Michael G. and Fowler, Laura D. and Park, Sang-Hun and Ringler, Todd D.},
title = {A Multiscale Nonhydrostatic Atmospheric Model Using Centroidal {Voronoi} Tesselations and {C}-Grid Staggering},
Expand Down
Loading
Loading