Island¶
veris.setups.island provides a small Cartesian sea on a rectangular x/y
grid, surrounding a two-by-two-cell island. It is periodic by default: each
outer edge connects to its opposite edge. The default interior is 8 by 12
cells at 8 km spacing. Arrays include two halo cells on each side, which hold
boundary or neighboring data. Face masks identify blocked cell faces to
prevent transport across the coastline. Temperatures use kelvin, the absolute
temperature scale. Thicknesses are grid-cell means, averaged over each cell’s
whole area.
See veris.initialize_experiment() in the
Python API for creating preset arrays, and
veris.advance() for the complete pure timestep. A pure timestep returns
results without changing outside resources.
The numerical State, the collection of model arrays, keeps ice velocity and
stress fields between steps. Stress is force per area. advance returns
output-only ocean coupling stresses and fluxes (transfers between ice and
ocean) separately. Its sequence is mass and area averaging, wind forcing, ice
strength, EVP dynamics, ocean stress, advection, cleanup, ridging, growth, and
boundary halo refresh. EVP means elastic-viscous-plastic, the ice-motion
solution method. Advection moves values between cells; ridging piles up ice;
growth calculates freezing and melting. Set
settings={"enable_cyclic_y": False} on the Experiment to close the global y
edges; see Model settings. The timestep restores prescribed open-water
heat forcing each step because growth returns ocean-coupling fluxes in the
same state fields.
Use Experiment.builtin("island", grid=Grid(nx, ny), ...) with
Simulation.initialize for shared initialization, prescribed heat, forcing
and time counted from the start of the simulation, and output. The public run
interface supports a single device and explicit x/y device meshes with global
physical dimensions. The caller prepares JAX resources; see
Define, run and resume a sea-ice experiment and Simulation lifecycle.
Coupled Experiments combine ice motion with freezing and melting. They require equal dynamics and thermodynamic durations so their single model clock is unambiguous.
Use the public veris.step to repeat the coupled transition with a scan
(a timestep loop) and checkpointing (recalculating intermediate values to save
memory during reverse differentiation). See Scan rollouts and checkpointing for selected
diagnostics and time-varying cooling, and Define, run and resume a sea-ice experiment for a
complete example.
Scenario controls¶
This setup defines ISLAND_SETTINGS and the frozen IslandSettings class,
whose fields cannot be reassigned. They describe prescribed initial fields
and example controls. They do not add fields to model Configuration,
PhysicalConstants or State. These controls include saltOcn_ref, the
prescribed ocean salinity, which you can change through
Experiment.builtin("island", scenario={...}). Use
initial_conditions={...} to replace physical fields directly. Prescribe
heat through the Experiment forcing definition or the forcing argument of
advance. The island built-in setup supplies the heat default below.
Setting |
Default |
Type |
Description |
|---|---|---|---|
|
|
|
Prescribed ocean salinity in the island example |
|
|
|
Uniform Cartesian grid spacing in the island example |
|
|
|
Prescribed signed zonal wind in the island example |
|
|
|
Prescribed atmosphere and initial ice-surface temperature in the island example |
|
|
|
Initial grid-cell mean ice thickness over ocean in the island example |
|
|
|
Initial grid-cell mean snow thickness over ocean in the island example |
|
|
|
Initial ocean-cell ice concentration in the island example |
|
|
|
Signed ocean bottom elevation in the island example |
|
|
|
Uniform Coriolis frequency in the island example |
|
|
|
Default upward open-water cooling imposed each island step |
|
|
|
Default dynamics and thermodynamics timestep for the island example |
|
|
|
Default EVP substeps in the island example |