ESCOMP / CISM

Community Ice Sheet Model
GNU Lesser General Public License v3.0
6 stars 11 forks source link

Basal hydrology scheme, new basal friction and inversion options #61

Closed whlipscomb closed 3 months ago

whlipscomb commented 5 months ago

This PR includes three main lines of effort: (1) updates to the slab test (2) a steady-state flux routing basal hydrology scheme (3) various basal friction and inversion options to support Antarctic ice sheet experiments

The slab test is as described in Section 3.4 of Robinson et al. (TC, 2022). It was used in that paper to test the stability of various solvers (SIA, SSA, DIVA, L1L2) in the simple case of an infinite slab of ice flowing down an inclined plane. Various test parameters can be specified when launching the run script. See the README file for details.

The hydrology scheme is based on the idea that all water input at the bed is conservatively routed down the hydraulic gradient until it reaches the ice margin. Steady state means that for each grid cell, the water output is equal to the input. Water can be routed to one downstream neighbor (D8), two neighbors (Dinf), or all downstream neighbors (FD8). The scheme uses the efficient algorithm of Planchon & Darboux (2001) to fill depressions. It is fully parallel, unlike the similar scheme in old Glimmer. The scheme has been tested for the Greenland and Antarctic ice sheets; more testing and tuning will follow.

The basal friction and inversion changes include the following:

Results from this branch were compared to main for several standard test cases. Using LIVVkit (with several dome, ISMIP-HOM, shelf, and stream tests), all tests pass. The stream test requires a config file change. MISMIP+ results are also BFB, with several config file changes. DIVA dome tests are not quite BFB, but agree within machine roundoff. I think this is acceptable, given the large number of changes on this branch.

gunterl commented 5 months ago

The code itself provides BFB results with main for the tested that were run. However, due to modification in the configuration options related to this PR, modifications needed to be done in the configuration files of some tests highlighted below.

  1. In tests/MISMIP/mismip.code/mismip.config.template powerlaw_c -> powerlaw_c_const remove the line "which_ho_effecpress = 3 # ocean connection"

  2. tests/MISMIP3d/mismip3d.code/mismip3d.config.template coulomb_c -> coulomb_c_const remove the line "which_ho_effecpress = 3 # ocean connection"

  3. tests/MISOMIP/mismip+/mismip+.config.template powerlaw_c -> powerlaw_c_const coulomb_c -> coulomb_c_const remove the line "which_ho_effecpress = 3 # ocean connection"

Also, the README files and runCISM scripts will need to be reviewed as they were tailored to Cheyenne. But this is minor and does not impact the code or the run of the tests themselves. These changes can be addressed later.

whlipscomb commented 3 months ago

@gunterl and @Katetc, I've finished testing this branch and comparing to main. All the standard LIVV tests pass. I confirmed that MISMIP+ results are BFB, given the config file changes described above by @gunterl. These changes are now checked in. I ran some additional DIVA dome tests and found that the agreement with main is not BFB but is within machine roundoff, which I'd say is good enough. Would one of you like to do the merge?

whlipscomb commented 3 months ago

@Katetc, Thank you!