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.