Skip to content

Start connecting NumericalEarth#757

Open
simone-silvestri wants to merge 50 commits intomainfrom
ss/attach-numerical-earth
Open

Start connecting NumericalEarth#757
simone-silvestri wants to merge 50 commits intomainfrom
ss/attach-numerical-earth

Conversation

@simone-silvestri
Copy link
Copy Markdown
Collaborator

This PR starts removing functionality in ClimaOcean in favor of NumericalEarth which is connected to the package.

@simone-silvestri simone-silvestri marked this pull request as ready for review March 4, 2026 15:16
simone-silvestri added a commit to NumericalEarth/NumericalEarth.jl that referenced this pull request Mar 24, 2026
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
simone-silvestri and others added 25 commits March 26, 2026 08:20
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Diagnostics submodule was included but never imported with `using`,
so its exports (simulation_report, compute_report_fields, etc.) were
not accessible via `using ClimaOcean`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
These functions were exported from the Diagnostics submodule and brought
into ClimaOcean's namespace via `using .Diagnostics`, but were missing
from the module's export list. This caused `UndefVarError` when example
scripts called `simulation_report` after `using ClimaOcean`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…pace overflow

The AbstractOperations-based `sqrt(uₛ^2 + vₛ^2)` created a deeply nested type
tree (5.656 KiB) exceeding the 4 KiB kernel parameter limit on sm_60.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ace overflow

Average(T, dims=1) on ImmersedBoundaryGrid creates a ConditionalOperation
type tree exceeding the 4 KiB sm_60 kernel parameter limit. Commented out
until the upstream parameter space issue is resolved.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nsion

The download_dataset method for WOA data lives in NumericalEarthWOAExt,
which requires WorldOceanAtlasTools to be loaded. Without it,
simulation_report fails with a MethodError when computing WOA bias.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ostics!

New ClimaOcean.OMIPConfigurations module providing a turnkey API for OMIP
coupled ocean-sea-ice simulations. omip_simulation(:half_degree | :orca)
builds the full coupled model with JRA55 atmosphere, salinity restoring,
and ECCO4 sea ice initial conditions. add_omip_diagnostics! attaches
standardized OMIP-protocol output: surface fields (SST, SSS, SSH, MLD,
fluxes, sea ice), 3D fields (T, S, velocity, TKE), zonal/global means,
and JLD2 checkpoints. Output files split yearly (365days) with 24 time
instances per file. Also refactors OceanConfigurations to accept physical
parameters (κ_skew, κ_symmetric, etc.) instead of closure objects.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move add_omip_diagnostics! and OMIPScalarCallback from OMIPConfigurations
into the Diagnostics module so they can be reused independently of the
OMIP pipeline. Transport diagnostics remain OMIP-specific and are called
from omip_simulation directly. Also remove plan document from tracking
and add docs/plans/* to .gitignore.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Refresh unit tests with closure type checks, henyey_diffusivity tests,
OMIPScalarCallback construction tests, and correct import paths after
the diagnostics module move. Add examples/omip_simulation.jl showing
turnkey OMIP usage with half_degree and ORCA configurations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
`ynodes` on a `LatitudeLongitudeGrid` returns `R·deg2rad(φ)` (meters of
arc length), but `simulation_report` uses `f.φ` for an axis labeled
"Latitude" — which expects degrees. Switch to `φnodes` so the zonal-mean
T/S panels are plotted against latitude in degrees, and call directly on
the grid to sidestep the broken `ynodes(::Field)` dispatch on LLG in
Oceananigans 0.106.4.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Revert pipeline.yml v100 GPU requirement. Add simplified_ocean_closure()
using ConvectiveAdjustmentVerticalDiffusivity to avoid CUDA parameter space
overflow on P100 GPUs. Add closure kwarg to half_degree, one_degree, and
orca ocean configs. Use simplified closure in doc examples.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
NumericalEarth main now requires Oceananigans 0.107/0.108 and includes
docs fixes (#179) not yet in the registered 0.2.3 release. Pin docs to
the main branch via [sources], and broaden ClimaOcean's Oceananigans
compat so both the registered (0.106) and git (0.107/0.108) paths can
resolve.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants