jcm.model.Model

class jcm.model.Model(coords: CoordinateSystem, time_step=30.0, terrain: TerrainData = None, physics: Physics = None, diffusion: DiffusionFilter = None, start_date: Datetime = jax_datetime.Datetime(delta=jax_datetime.Timedelta(days=10957, seconds=0)), log_level=50)

Top level class for a JAX-GCM configuration using the Speedy physics on an aquaplanet.

__init__(coords: CoordinateSystem, time_step=30.0, terrain: TerrainData = None, physics: Physics = None, diffusion: DiffusionFilter = None, start_date: Datetime = jax_datetime.Datetime(delta=jax_datetime.Timedelta(days=10957, seconds=0)), log_level=50) None

Initialize the model with the given time step, save interval, and total time.

Args:
coords:

CoordinateSystem object describing the model coordinates. To enable SPMD parallelization, pass spmd_mesh to the coords helper (e.g. get_speedy_coords).

time_step:

Model time step in minutes

terrain:

TerrainData object describing boundary conditions (orography, land-sea mask, etc.)

physics:

Physics object describing the model physics

diffusion:

DiffusionFilter object describing horizontal diffusion filter params

start_date:

jax_datetime.Datetime object containing start date of the simulation (default January 1, 2000)

log_level:

(int) indicates what level of messages will be output, use logging.INFO (20) for verbose (defaults logging.CRITICAL)

Methods

__init__(coords[, time_step, terrain, ...])

Initialize the model with the given time step, save interval, and total time.

resume([forcing, save_interval, total_time, ...])

Run the full simulation forward in time starting from end of previous call to model.run or model.resume.

run([initial_state, forcing, save_interval, ...])

Set model.initial_nodal_state and model.start_date and run the full simulation forward in time.

run_from_state(initial_state, forcing[, ...])

Run the full simulation forward in time starting from given initial state.