New treatment of ice shelf boundaries #467
Conversation
Codecov Report
@@ Coverage Diff @@
## dev/gfdl #467 +/- ##
============================================
- Coverage 37.83% 37.83% -0.01%
============================================
Files 270 270
Lines 78336 78340 +4
Branches 14500 14503 +3
============================================
Hits 29639 29639
- Misses 43293 43297 +4
Partials 5404 5404
... and 1 file with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
8a66adc to
9de6ce7
Compare
Hallberg-NOAA
left a comment
There was a problem hiding this comment.
These changes seem sensible after a visual inspection, and this code does compile.
We are not yet testing the ice-shelf dynamics code or using it in any active configurations. As written, these changes seem safe enough, but once the series of ~10 PRs are accepted to bring the ice-shelf dynamics up to the point where it is working properly in the first few test cases, the entirety of the MOM6 ice-shelf code should undergo a comprehensive code review, including extensive self-consistency testing. For now, though, it is my recommendation that we should accept this PR.
Previously, ice-shelf Dirichlet boundary conditions only allowed u-velocity and v-velocity to be set to the same value (which is enforced by setting the value of parameters u_face_mask or v_face_mask to 3). This functionality is retained here, but now setting u_face_mask or v_face_mask to 5 enforces a Dirichlet boundary for u-velocity only along the respective cell face. Similarly, setting u_face_mask or v_face_mask to 6 enforces the Dirichlet boundary for v-velocity only along the respective cell face. This functionality is required for most ice-sheet modeling configurations, e.g. the idealized MISMIP+ configuration requires setting v-velocity only to 0 along its lateral boundaries, but with free-slip conditions enforced for u-velocity. Adding this capability required changes throughout the ice-shelf code. Further changes were needed for how driving stress and Neummann conditions at computational boundaries are calculated in subroutine calc_shelf_driving_stress, and calls to subroutine apply_boundary_values were eliminated because they were not justified and caused errors. The new boundary treatment was tested by comparing simulated and analytical solutions for 1-D ice shelf flow with free-slip lateral boundary conditions and positive u_velocity enforced at the western boundary. This required the addition of a new parameter ADVECT_SHELF, which if false (as in the 1-D test case), turns off ice-shelf thickness evolution. By default, ADVECT_SHELF=True. The new boundary treatment was also justified in 2-D by correctly simulating the expected MISMIP+ steady-state.
137c075 to
a0c20c8
Compare
|
This has passed pipeline testing at https://gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/20857. |
Previously, ice-shelf Dirichlet boundary conditions only allowed u-velocity and v-velocity to be set to the same value (which is enforced by setting the value of parameters u_face_mask or v_face_mask to 3). This functionality is retained here, but now setting u_face_mask or v_face_mask to 5 enforces a Dirichlet boundary for u-velocity only along the respective cell face. Similarly, setting u_face_mask or v_face_mask to 6 enforces the Dirichlet boundary for v-velocity only along the respective cell face. This functionality is required for most ice-sheet modeling configurations, e.g. the idealized MISMIP+ configuration requires setting v-velocity only to 0 along its lateral boundaries, but with free-slip conditions enforced for u-velocity. Adding this capability required changes throughout the ice-shelf code.
Further changes were needed for how driving stress and Neumann conditions at computational boundaries are calculated in subroutine calc_shelf_driving_stress, and calls to subroutine apply_boundary_values were eliminated because they were not justified and caused errors. The new boundary treatment was tested by comparing simulated and analytical solutions for 1-D ice shelf flow with free-slip lateral boundary conditions and steady inflow enforced at the upstream boundary. This test required the addition of a new parameter ADVECT_SHELF, which if false (as in the 1-D test case), turns off ice-shelf thickness evolution. By default, ADVECT_SHELF=True.
The new boundary treatment was also justified in 2-D by correctly simulating the expected MISMIP+ steady-state.