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.