ice_shelf_2d
The ice_shelf_2d
test group
(polaris.ocean.tasks.ice_shelf_2d.IceShelf2d
)
implements a very simplified ice-shelf cavity that is invariant in the x
direction (see ice shelf 2d). Here, we describe the shared
framework for this test group and the 2 test cases.
framework
The shared config options for the ice_shelf_2d
test group
are described in ice shelf 2d in the User’s Guide.
Additionally, the test group has shared ssh_forward.yaml
and forward.yaml
files with common namelist options and streams related to the ssh_adjustment
and forward
steps, respectively.
The test case class is inherited from
polaris.ocean.ice_shelf.IceShelfTask
and
its polaris.ocean.ice_shelf.ssh_forward.SshForward
and
polaris.ocean.ice_shelf.ssh_adjustment.SshAdjustment
step classes
are used to set up one of each step for each iteration given by the config
option ssh_adjustment:iterations
.
init
The class :py:class:polaris.ocean.tasks.ice_shelf_2d.init.Init
defines a step for setting up the initial state for each test case.
First, a mesh appropriate for the resolution is generated using
mpas_tools.planar_hex.make_planar_hex_mesh()
. Then, the mesh is
culled to remove periodicity in the y direction. A vertical grid is generated,
with 20 layers of 100-m thickness each by default. Then, the 1D grid is either
“squashed” down so the sea-surface height corresponds to the location of the
ice-ocean interface (ice draft) using a z-star Vertical coordinate
or top layers are removed where there is an ice shelf using a z-level
coordinate. Finally, the initial salinity profile is computed along with
uniform temperature and zero initial velocity.
forward
The class polaris.ocean.tests.ice_shelf_2d.forward.Forward
defines a step for running MPAS-Ocean from the initial condition produced in
the init
step. For MPAS-Ocean, PIO namelist options are modified and a
graph partition is generated as part of runtime_setup()
. Next, the ocean
model is run.
validate
The class polaris.ocean.tasks.ice_shelf_2d.validate.Validate
defines a step for validating outputs in two step directories against one
another. This step ensures that temperature
, salinity
, layerThickness
and normalVelocity
are identical in output.nc
files in the two steps.
It also checks a number of land ice variables and frazil variables stored in
land_ice_fluxes.nc
and frazil.nc
, respectively. This step is used by the
restart test (see dev-ocean-ice-shelf-2d-restart).
viz
The class polaris.ocean.tasks.ice_shelf_2d.viz.Viz
uses the planar
visualization capabilities provided by
polaris.ocean.viz.compute_transect()
.
default
The polaris.ocean.tasks.ice_shelf_2d.default.Default
test case
config options are described in default.
The test creates and mesh and initial condition, performs 15 iterations of SSH adjustment to make sure the SSH is as close as possible to being in dynamic balance with the land-ice pressure. Then, it performs a 10-minute forward simulation. If a baseline is provided, a large number of variables (both prognostic and related to land-ice fluxes) are checked to make sure they match the baseline.
The restart test, ocean/planar/ice_shelf_2d/$RES/$COORD_TYPE/default/with_restart
is just a variant of the default test that has two additional steps, a forward
step and a validate
step.
The tidal forcing test, ocean/planar/ice_shelf_2d/$RES/$COORD_TYPE/default_tidal_forcing
is a variant of the default
test that has tidal forcing, is run for longer
(0.1 days), and uses the RK4 time integration scheme by default.