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.