hydro_radial¶
The hydro_radial
test group (compass.landice.tests.hydro_radial.HydroRadial
)
implements variants of the radially symmetric hydrological test case at 1-km
uniform resolution and 3 vertical layers (see hydro_radial).
Here, we describe the shared framework for this test group and the 4 test
cases.
framework¶
The shared config options for the hydro_radial
test group are described in
hydro_radial in the User’s Guide.
Additionally, the test group has a shared namelist.landice
file with
a several shared namelist options related to time step, run duration, and
hydrology model, as well as a shared streams.landice
file that defines
input
, restart
, and output
streams.
setup_mesh¶
The class compass.landice.tests.hydro_radial.setup_mesh.SetupMesh
defines a step for setting up the mesh for each test case.
The horizontal mesh is constructed at runtime (using
mpas_tools.planar_hex.make_planar_hex_mesh()
). A MALI grid is
created with the MPAS-Tools script
create_landice_grid_from_generic_MPAS_grid.py
and a graph file is created
to partition the mesh before the model run.
Finally, the initial condition is defined in the private function
_setup_hydro_radial_initial_conditions()
. Most test cases use a
zero
initial condition (meaning a very thin initial ice sheet), but the
steady_state_drift_test
uses an exact
initial condition that uses
a nearly exact numerical solution in steady state, as described in
Bueler et al. (2015).
run_model¶
The class compass.landice.tests.hydro_radial.run_model.RunModel
defines a step for running MALI from the initial condition produced in the
setup_mesh
step. For the restart_test
test cases, the model will run
multiple times with different namelist and streams files. To support this
functionality, this step has an attribute suffixes
, which is a list of
suffixes for the these namelist and streams files. The model runs once for
each suffix. The default is just landice
.
visualize¶
The compass.landice.tests.hydro_radial.visualize.Visualize
step
is optional in each test case and can be run manually to plot the results of
the test case. It iscontrol by the config options in the hydro_radial_viz
section.
This step is not run by default by adding it with run_by_default=False
:
step = Visualize(test_case=self)
self.add_step(step, run_by_default=False)
spinup_test¶
The compass.landice.tests.hydro_radial.spinup_test.SpinupTest
performs a 10,000-year run from zero
initial conditions on 4 cores. It
doesn’t contain any Validation.
steady_state_drift_test¶
The compass.landice.tests.hydro_radial.steady_state_drift_test.SteadyStateDriftTest
performs a 1-month run from exact
initial conditions on 4 cores. It doesn’t
contain any Validation.
decomposition_test¶
The compass.landice.tests.hydro_radial.decomposition_test.DecompositionTest
performs a 1-month run once on 1 core and once on 3 cores. It ensures that
waterThickness
and waterPressure
are identical at the end of the two
runs (as well as with a baseline if one is provided when calling
compass setup).
restart_test¶
The compass.landice.tests.hydro_radial.restart_test.RestartTest
performs a 2-year run once on 4 cores, then a sequence of 2 1-year runs on 4
cores. It ensures that waterThickness
and waterPressure
are identical
at the end of the two runs (as well as with a baseline if one is provided when
calling compass setup).
The restart step works by creating two different namelist and streams files,
one each with landice
as the suffix and one each with landice.rst
as
the suffix. The former perform a 1-year run from the initial condition, while
the latter perform a 1-year restart run beginning with the end of the first.