jcm.dycore¶
Pluggable dynamical-core backends for jax-gcm.
The DynamicalCore protocol in jcm.dycore.base defines the contract
between jcm.model.Model and a specific dycore implementation. Backends live
under this package (dinosaur, pyses, …) and register themselves with the
factory registry in jcm.dycore.registry.
The boundary between physics and dynamics is gridpoint on both sides on the
dycore’s own native horizontal layout. Physics arrays are shaped
(nlev, *horizontal_shape) where horizontal_shape comes from the dycore — a
regular (nlon, nlat) for the dinosaur spectral backend, (nelem, gll, gll) for a
cubed-sphere spectral-element backend, etc. There is no horizontal regrid at the
physics-dynamics seam; lat/lon regridding (when it happens) is a dycore-internal step
on the way to xarray output.
See docs/source/design.rst for the architecture overview.
Modules
The |
|
Contract tests for the |
|
Dinosaur-backed implementation of the |
|
Protocol-canary tests on a non-lat/lon horizontal layout. |
|
Name → factory registry for dynamical-core backends. |