Test suites

The landice core currently includes a number of Test Suites that can be used to run a series of land-ice test cases and optionally compare them against a baseline run of the same tests. The test suites are described in order of typical usage.

sia_integration test suite

compass suite -c landice -t sia_integration ...

The sia_integration test suite includes the following test cases:

landice/dome/2000m/sia_restart_test
landice/dome/2000m/sia_decomposition_test
landice/dome/variable_resolution/sia_restart_test
landice/dome/variable_resolution/sia_decomposition_test
landice/enthalpy_benchmark/A
landice/eismint2/decomposition_test
landice/eismint2/enthalpy_decomposition_test
landice/eismint2/restart_test
landice/eismint2/enthalpy_restart_test
landice/greenland/restart_test
landice/greenland/decomposition_test
landice/hydro_radial/restart_test
landice/hydro_radial/decomposition_test

These are all meant to be short tests that are appropriate for regression testing with the part of the MALI code that uses the shallow ice approximation (SIA) and therefore does not require the Albany library. These tests should expose problems with the tools for creating meshes and initial conditions as well as unexpected changes in any operations, such as advection and diffusion, that affect the 2 main prognostic variables, ice thickness and velocity, as well as other fields related to ice thermodynamics.

Several additional tests determine that the model behavior is exactly the same for a long run or a shorter continuation run from a restart file (restart_test). Others ensure that the code produces the same result when it is run on different numbers of cores (decomposition_test).

fo_integration test suite

compass suite -c landice -t fo_integration ...

The fo_integration test suite includes the following test cases:

landice/circular_shelf/decomposition_test
landice/dome/2000m/fo_decomposition_test
landice/dome/2000m/fo_restart_test
landice/dome/variable_resolution/fo_restart_test
landice/dome/variable_resolution/fo_decomposition_test
landice/greenland/fo_decomposition_test
landice/greenland/fo_restart_test
landice/thwaites/decomposition_test
landice/thwaites/restart_test
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

All of these tests use the FO velocity solver and require that MALI be compiled with the Albany library.

full_integration test suite

The full_integration test suite is a combination of the sia_integration and fo_integration test suites. This is the suite that should primarily be used for testing and integration of MALI Pull Requests.

humboldt_calving_tests

The humboldt_calving_tests test suite provide complete coverage of all calving laws currently support by MALI applied to a 3 km resolution Humboldt Glacier domain. For the tests in this suite, the velocity solver is disabled, and the velocity field comes from an input field, allowing for rapid testing and for testing bit-for-bit behavior of the calving physics implementations. The suite includes:

landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-none
landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-floating
landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-eigencalving
landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-specified_calving_velocity
landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-von_mises_stress
landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-damagecalving
landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-ismip6_retreat
landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-von_mises_stress_damage-threshold_faceMelting
landice/humboldt/mesh-3km_restart_test/velo-none_calving-none
landice/humboldt/mesh-3km_restart_test/velo-none_calving-floating
landice/humboldt/mesh-3km_restart_test/velo-none_calving-eigencalving
landice/humboldt/mesh-3km_restart_test/velo-none_calving-specified_calving_velocity
landice/humboldt/mesh-3km_restart_test/velo-none_calving-von_mises_stress
landice/humboldt/mesh-3km_restart_test/velo-none_calving-damagecalving
landice/humboldt/mesh-3km_restart_test/velo-none_calving-ismip6_retreat
landice/humboldt/mesh-3km_restart_test/velo-none_calving-von_mises_stress_damage-threshold_faceMelting

humboldt_calving_tests_fo

The humboldt_calving_tests_fo test suite is identical to humboldt_calving_tests but with the FO solver enabled. In this case decomposition tests are not required to be bit-for-bit to pass but instead use a small tolerance to account for expected differences of the FO solver on differing numbers of processor. The suite includes:

landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-none
landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-floating
landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-eigencalving
landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-specified_calving_velocity
landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress
landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-damagecalving
landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-ismip6_retreat
landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-none
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-floating
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-eigencalving
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-specified_calving_velocity
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-von_mises_stress
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-damagecalving
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-ismip6_retreat
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

calving_dt_convergence

The calving_dt_convergence test suite runs timestep convergence tests for calving physics for a number of different model meshes, calving laws, and velocity solver options. The tests with “none” velocity solver use data velocity fields, and collectively take about 15 minutes. The tests with FO velocity solver each take about 100 minutes and one may prefer to run them in individual jobs (which is why they are listed last in the test suite). Each test generates a .png image summarizing the results. The suite includes:

landice/calving_dt_convergence/mismip+.specified_calving_velocity.none
landice/calving_dt_convergence/mismip+.von_Mises_stress.none
landice/calving_dt_convergence/humboldt.specified_calving_velocity.none
landice/calving_dt_convergence/humboldt.von_Mises_stress.none
landice/calving_dt_convergence/thwaites.specified_calving_velocity.none
landice/calving_dt_convergence/thwaites.von_Mises_stress.none
landice/calving_dt_convergence/mismip+.von_Mises_stress.FO
landice/calving_dt_convergence/humboldt.von_Mises_stress.FO
landice/calving_dt_convergence/thwaites.von_Mises_stress.FO