Skip to content

New treatment of ice shelf boundaries #467

Merged
Hallberg-NOAA merged 1 commit into
NOAA-GFDL:dev/gfdlfrom
alex-huth:IS_BC_edits
Oct 7, 2023
Merged

New treatment of ice shelf boundaries #467
Hallberg-NOAA merged 1 commit into
NOAA-GFDL:dev/gfdlfrom
alex-huth:IS_BC_edits

Conversation

@alex-huth
Copy link
Copy Markdown

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.

@codecov
Copy link
Copy Markdown

codecov Bot commented Aug 24, 2023

Codecov Report

Merging #467 (2a189b2) into dev/gfdl (e2deaec) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

❗ Current head 2a189b2 differs from pull request most recent head a0c20c8. Consider uploading reports for the commit a0c20c8 to get more accurate results

@@             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              
Files Coverage Δ
src/ice_shelf/MOM_ice_shelf_initialize.F90 0.00% <0.00%> (ø)
src/ice_shelf/MOM_ice_shelf_dynamics.F90 0.00% <0.00%> (ø)

... and 1 file with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

Copy link
Copy Markdown
Member

@Hallberg-NOAA Hallberg-NOAA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
@Hallberg-NOAA
Copy link
Copy Markdown
Member

This has passed pipeline testing at https://gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/20857.

@Hallberg-NOAA Hallberg-NOAA merged commit 3650339 into NOAA-GFDL:dev/gfdl Oct 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants