Data Structure
WAVI.jl uses a hierachical data structure, which is shown schematically below. This page provides a brief overview of each of these structures; you can find out more information about each of these via the tabs in the sidebar.

At the top of the hierarchy are Simulations
. Simulations are to be ran! A Simulation
object must be passed the sub-structures describing the following (terms in brackets are the names of the corresponding structures in WAVI.jl
):
- Model (
Model
): contains all the information about the current state, parameters, initial conditions, and process parametrizations (see below). - Timestepping Parameters (
TimesteppingParams
): contains parameters relating to timestepping (e.g. timestep, number of timesteps etc) - Output Parameters (
OutputParams
): optional structure that contains information relativng to the outputting of solutions (what to output, when to output etc).
A Model
structure contains sub-structures describing the following:
- Grid (
Grid
): contains information on the discretization of the model domain (e.g. number of grid cells, grid spacing etc) - Physical parameters (
Params
): contains physical parameters (e.g. density of the ice) - Solver parameters (
SolverParams
): contains parameters relating to the velocity solver (e.g. maximum number of iterations) - Initial conditions (
InitialConditions
): stores initial conditions relating to the ice sheet. - Fields (
Fields
): stores information on the current state of the model.
A Model
also owns a dict
named extra_physics
, which contains information on parametrizations of physical processes used by the model. See the Parametrizations tab on the left for more information.
- Supplementary physics: this describes various other models that can be coupled to WAVI.jl. At present, this is restricted to melt rate physics, but models of damage and calving are coming soon