dome

The dome test group (compass.landice.tests.dome.Dome) implements variants of the dome test case either at 2000-m uniform or variable horizontal resolution and 10 vertical layers (see dome). Here, we describe the shared framework for this test group and the 3 test cases implemented for each resolution.

framework

The shared config options for the dome test group are described in dome in the User’s Guide.

Additionally, the test group has a shared namelist.landice file with a few common namelist options related to time step and run duration, and a shared streams.landice file that defines input, restart, and output streams.

SetupMesh

The class compass.landice.tests.dome.setup_mesh.SetupMesh defines a step for setting up the mesh for each test case.

For test cases at uniform, 2000-m resolution, the horizontal mesh is constructed at runtime (using mpas_tools.planar_hex.make_planar_hex_mesh()). The variable resolution mesh is downloaded from dome_varres_grid.nc:

self.add_input_file(filename='mpas_grid.nc',
                    target='dome_varres_grid.nc', database='')

Note

In this case, we use database='' as a trick to download the file from the LCRC server but without any subdirectory relative to the path pointed to by the server_base_url and core_path options in the download section of the config file.

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_dome_initial_conditions().

RunModel

The class compass.landice.tests.dome.run_model.RunModel defines a step for running MALI from the initial condition produced in SetupMesh. For the RestartTest test cases, the model will run multiple times with different namelist and streams files. To support this functionality, this constructor takes an argument 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.dome.visualize.Visualize step is optional in each test case and can be run manually to plot the results of the test case. It is control by the config options in the dome_viz section.

This step is not run by default by adding it with run_by_default=False:

step = Visualize(test_case=self, mesh_type=mesh_type)
self.add_step(step, run_by_default=False)

SmokeTest

The compass.landice.tests.dome.smoke_test.SmokeTest performs a 200-year run on 4 cores. It doesn’t contain any Validation.

DecompositionTest

The compass.landice.tests.dome.decomposition_test.DecompositionTest performs a 200-year run once on 1 core and once on 4 cores. It ensures that thickness and normalVelocity are identical at the end of the two runs (as well as with a baseline if one is provided when calling compass setup).

RestartTest

The compass.landice.tests.dome.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 thickness and normalVelocity 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.