Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redefine grounding line mask #37

Merged
merged 6 commits into from
Oct 24, 2022

Conversation

trhille
Copy link

@trhille trhille commented May 12, 2022

Previously the the mask referred to as the grounding line was in fact the marine margin of grounded ice, whether or not it was at the floatation thickness. This led to trouble with mass budget calculations, which had to approximated using extensive and arduous post-processing with verbose model output, rather than calculated to machine precision on-line. Now, instead of defining the grounding line as a grounded cell with a floating or open ocean neighbor, this PR defines the grounding line as a grounded cell with a dynamic floating neighbor. Logic has been updated in calving and subglacial hydrology routines to be consistent with this new definition.

This addresses the first bullet point in the list of known issues in #23.

trhille added 2 commits May 12, 2022 15:11
Define grounding line for cells as grounded cells with at least one
dynamic floating neighbor, and for cells and vertices as those with
one grounded and one dynamic floating cell. Previously the grounding
line was defined as where a grounded cell was adjacent to a floating
(dynamic or non-dynamic) or open ocean cell. This definition is
problematic because it prevents us from closing a mass budget, since flux
at the grounding line in the previous definition was not necessarily
leading to loss of grounded ice.
Update logic for ablation velocity after redefining grounding line.
We will still use applyToGroundingLine to mean apply the ablation
velocity at the margin of grounded ice, whether there is an ice shelf
or not. However, the new definition of the grounding line required
a change from using li_mask_is_grounding_line to li_mask_is_grounded_ice
in one place.
@trhille trhille requested a review from matthewhoffman May 12, 2022 22:51
@trhille
Copy link
Author

trhille commented May 12, 2022

All tests in full_integration passed baseline comparison except for landice_humboldt_mesh-3km_restart_test_velo-fo_calving-von_mises_stress_damage-threshold_faceMelting, which failed due to differences in the definition of damage:

damage               Time index: 0, 1, 2, 3, 4, 5, 6
1:  l1: 7.24964477947553e-02  l2: 4.31950960357161e-02  linf: 3.83526507624174e-02
2:  l1: 3.05383043904466e-01  l2: 2.67129761001989e-01  linf: 2.65621955627602e-01
3:  l1: 3.88187952502012e-01  l2: 2.72624304711313e-01  linf: 2.57060336035175e-01
4:  l1: 6.31643256080481e-01  l2: 5.38078896743410e-01  linf: 5.32028902813449e-01
5:  l1: 2.03499903589404e-01  l2: 1.37956201465645e-01  linf: 1.14773117478111e-01
6:  l1: 5.99634754776379e-01  l2: 4.72591713222446e-01  linf: 4.65347094244404e-01

This is because damage is initialized at the grounding line, which means that prior to this PR the non-dynamic floating fringe was being given a damage value. It seems to me that the treatment in this PR is correct, i.e., that damage should be initialized when ice is changing from dynamic grounded to dynamic floating ice. However, I can't say I understand full how the different treatment results in the differences shown in the screen shots below, so this might require further testing beyond the full_integration suite.

Run starts 2007-01-01. Left panel is baseline run, right panel is using this branch. Thick white contour is cellMask_groundingLine and thin white contour is cellMask_dynamicIce.
image
image
image

@matthewhoffman
Copy link

@trhille , I ran this through COMPASS again today and confirmed it still gives the same result you indicated above - all tests pass except for landice_humboldt_mesh-3km_restart_test_velo-fo_calving-von_mises_stress_damage-threshold_faceMelting.

@matthewhoffman
Copy link

matthewhoffman commented Oct 17, 2022

The COMPASS results look acceptable, but we have some further questions about the impacts of this elsewhere in the code in areas that are not strongly tested by COMPASS currently.

Based on our discussion here is a task list of things we need to understand before we can merge this:

  • Do changes in damage initialization make sense and are desirable (or at least no undesirable)?
  • What changes (if any) occur to calving tests without damage and are those as desired?
  • Are changes to subglacial hydrology model correct?
  • What impact does this have (if any) to ongoing ISMIP6 simulations (with and without active calving)? Are the changes small and expected?

@matthewhoffman
Copy link

Update on item 4 above. Here is grounding line flux for 8km AIS ISMIP6 runs for four configurations all using the same initial condition.
blue=control using fixed calving front and without this PR or #50
orange=UKESM5-8.5 using fixed calving front and without this PR or #50
green= control using evolving vM calving (no damage) and with this PR and #50
red= UKESM5-8.5 using evolving vM calving (no damage) and with this PR and #50
(There is a 5 year offset in how these are plotted - the blue and orange should be shifted 5 years to the left.)

The difference in the first years between blue/orange and green/red is the effect of redefining the GL mask. I.e., by making the GL mask only consider regions going from grounded to floating and excluding grounded marine termini, the GL flux is reduced ~10%. That feels about right to me for the fraction of flux leaving AIS through grounded marine termini, but I don't know actual numbers. image

@trhille
Copy link
Author

trhille commented Oct 20, 2022

Results from the humboldt_calving_test suites against a baseline on develop commit a64342f:

00:16 PASS landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-none
00:13 PASS landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-floating
00:13 PASS landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-eigencalving
00:13 PASS landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-specified_calving_velocity
00:13 PASS landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-von_mises_stress
00:13 PASS landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-damagecalving
00:14 FAIL landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-ismip6_retreat
00:14 FAIL landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-von_mises_stress_damage-threshold_faceMelting
00:19 PASS landice_humboldt_mesh-3km_restart_test_velo-none_calving-none
00:19 PASS landice_humboldt_mesh-3km_restart_test_velo-none_calving-floating
00:19 PASS landice_humboldt_mesh-3km_restart_test_velo-none_calving-eigencalving
00:19 PASS landice_humboldt_mesh-3km_restart_test_velo-none_calving-specified_calving_velocity
00:19 PASS landice_humboldt_mesh-3km_restart_test_velo-none_calving-von_mises_stress
00:20 PASS landice_humboldt_mesh-3km_restart_test_velo-none_calving-damagecalving
00:05 FAIL landice_humboldt_mesh-3km_restart_test_velo-none_calving-ismip6_retreat
00:19 PASS landice_humboldt_mesh-3km_restart_test_velo-none_calving-von_mises_stress_damage-threshold_faceMelting

Execution error, also in baseline:

landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-ismip6_retreat
landice/humboldt/mesh-3km_restart_test/velo-none_calving-ismip6_retreat

Fails validation and baseline comparison:

landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-von_mises_stress_damage-threshold_faceMelting```


@trhille
Copy link
Author

trhille commented Oct 20, 2022

Results from the humboldt_calving_test_fo suites against a baseline on develop commit a64342f:

01:27 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-none
01:04 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-floating
01:17 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-eigencalving
01:09 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-specified_calving_velocity
01:18 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-von_mises_stress
01:10 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-damagecalving
00:15 FAIL landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-ismip6_retreat
01:11 FAIL landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-von_mises_stress_damage-threshold_faceMelting
00:56 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-none
00:50 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-floating
00:53 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-eigencalving
00:50 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-specified_calving_velocity
01:12 FAIL landice_humboldt_mesh-3km_restart_test_velo-fo_calving-von_mises_stress
00:51 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-damagecalving
00:09 FAIL landice_humboldt_mesh-3km_restart_test_velo-fo_calving-ismip6_retreat
00:49 FAIL landice_humboldt_mesh-3km_restart_test_velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

Execution errors, also in baseline:

landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-ismip6_retreat
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-ismip6_retreat

Execution errors, not in baseline:

landice/humboldt/mesh-3km_restart_test/velo-fo_calving-von_mises_stress

Fails validation and baseline comparison:

landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

Passes validation, fails baseline comparison:

landice/humboldt/mesh-3km_restart_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

@trhille
Copy link
Author

trhille commented Oct 20, 2022

Commit d65a0ab fixes a bug that was causing divergent behavior over several decades in Humboldt 1km test runs (HadGEM2, q=1/7, sigma_max = 170 kPa run from the Humboldt paper ensemble). The new mask definition was allowing ice-shelf melt to be applied on the floating non-dynamic fringe adjacent to the grounded margin, which was already being melted by the ISMIP6 face-melting parameterization.
image
Here, blue is using develop and orange is using this branch prior to d65a0ab. After implementing this fix in d65a0ab, the two runs are identical, although with a lower grounding line flux in the run with new grounding line mask, as expected:
image

@trhille
Copy link
Author

trhille commented Oct 20, 2022

full_integration results after commit d65a0ab: all tests pass except landice_humboldt_mesh-3km_restart_test_velo-fo_calving-von_mises_stress_damage-threshold_faceMelting.

@trhille
Copy link
Author

trhille commented Oct 20, 2022

humboldt_calving_tests results after d65a0ab are same as before.
Execution errors (same as baseline):

landice_humboldt_mesh-3km_restart_test_velo-none_calving-ismip6_retreat
landice_humboldt_mesh-3km_decomposition_test_velo-none_calving-ismip6_retreat

Fails validation and baseline comparison:

landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-von_mises_stress_damage-threshold_faceMelting

@trhille
Copy link
Author

trhille commented Oct 20, 2022

humboldt_calving_tests_fo results after d65a0ab

01:24 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-none
01:04 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-floating
01:13 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-eigencalving
01:10 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-specified_calving_velocity
01:17 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-von_mises_stress
01:10 PASS landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-damagecalving
00:09 FAIL landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-ismip6_retreat
01:12 FAIL landice_humboldt_mesh-3km_decomposition_test_velo-fo_calving-von_mises_stress_damage-threshold_faceMelting
00:55 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-none
00:50 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-floating
00:54 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-eigencalving
00:49 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-specified_calving_velocity
00:53 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-von_mises_stress
00:51 PASS landice_humboldt_mesh-3km_restart_test_velo-fo_calving-damagecalving
00:08 FAIL landice_humboldt_mesh-3km_restart_test_velo-fo_calving-ismip6_retreat
00:49 FAIL landice_humboldt_mesh-3km_restart_test_velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

Execution errors, also in baseline:

landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-ismip6_retreat
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-ismip6_retreat

Fails validation and baseline comparison:

landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

However, the above test also fails validation on develop. The failure with the baseline comparison is probably due to the corrected treatment of calving. I will look into that soon.

Passes validation, fails baseline comparison:

landice/humboldt/mesh-3km_restart_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

@trhille
Copy link
Author

trhille commented Oct 20, 2022

Baseline comparison failures in the following test cases are due to the new treatment of damage for floating non-dynamic cells:

landice/humboldt/mesh-3km_decomposition_test/velo-none_calving-von_mises_stress_damage-threshold_faceMelting
landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting
landice/humboldt/mesh-3km_restart_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting

The verbose output below shows that damage is different between develop and this branch, but that it leads to no difference in calvingThickness, thickness, or surfaceSpeed, so I think we can consider this change to be technically correct, but to have no practical effect (at least for this problem). The issue with validation for the decomposition test also arises in develop and so is not an issue resulting from this branch.

Damage results:

    Pass thresholds are:
       L1: 0.00000000000000e+00
       L2: 0.00000000000000e+00
       L_Infinity: 0.00000000000000e+00
damage               Time index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
1:  l1: 7.43181657008004e-02  l2: 4.41845631295545e-02  linf: 3.89906645275114e-02
2:  l1: 2.44831979404068e-02  l2: 1.42300872426473e-02  linf: 1.21480300992317e-02
3:  l1: 2.59745040572148e-01  l2: 1.17781589029035e-01  linf: 8.02839025482959e-02
4:  l1: 5.95239764769064e-01  l2: 5.01826187253777e-01  linf: 4.94956602907761e-01
5:  l1: 8.58287962425924e-01  l2: 5.38299529191870e-01  linf: 4.60936292270762e-01
6:  l1: 5.73127637572153e-01  l2: 4.35397591304021e-01  linf: 4.25628844251549e-01
7:  l1: 1.63804532026721e-01  l2: 1.05909930232883e-01  linf: 7.63052138696051e-02
8:  l1: 5.86640221745053e-01  l2: 3.70646083563549e-01  linf: 3.54990446770117e-01
9:  l1: 3.44025111306150e-01  l2: 2.62472609855553e-01  linf: 2.53629153391753e-01
10:  l1: 4.97209462620679e-01  l2: 3.29426177920434e-01  linf: 3.06909133312124e-01
  ESC[91mFAILESC[0m /lustre/scratch4/turquoise/trhille/test_MALI-Dev_PR37/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/16proc_run/output.nc
       /lustre/scratch4/turquoise/trhille/compass_baseline_a64342f/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/16proc_run/output.nc
    Pass thresholds are:
       L1: 0.00000000000000e+00
       L2: 0.00000000000000e+00
       L_Infinity: 0.00000000000000e+00
damage               Time index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
1:  l1: 7.36840306294298e-02  l2: 4.39087590733275e-02  linf: 3.89906645275117e-02
2:  l1: 3.04760694894221e-01  l2: 2.67050402722048e-01  linf: 2.65594268996983e-01
3:  l1: 3.86254352045511e-01  l2: 2.70248815547727e-01  linf: 2.54541533417015e-01
4:  l1: 6.30299435790537e-01  l2: 5.37321926505310e-01  linf: 5.31335743582063e-01
5:  l1: 2.03449764605786e-01  l2: 1.37979860730669e-01  linf: 1.15132951310095e-01
6:  l1: 5.98382689509045e-01  l2: 4.71584072896397e-01  linf: 4.64254178199329e-01
7:  l1: 1.05669149326898e+00  l2: 5.80861806211227e-01  linf: 4.30262444575446e-01
8:  l1: 8.27722355313565e-01  l2: 4.92460719959288e-01  linf: 3.47732510344936e-01
9:  l1: 8.54048800606327e-01  l2: 5.12978458585596e-01  linf: 3.69805487152053e-01
10:  l1: 4.60282092465329e-01  l2: 3.52931807606196e-01  linf: 3.45772164551068e-01
  ESC[91mFAILESC[0m /lustre/scratch4/turquoise/trhille/test_MALI-Dev_PR37/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/32proc_run/output.nc
       /lustre/scratch4/turquoise/trhille/compass_baseline_a64342f/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/32proc_run/output.nc

calvingThickness results:

calvingThickness     Time index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
1:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
2:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
3:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
4:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
5:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
6:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
7:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
8:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
9:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
10:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
  ESC[92mPASSESC[0m /lustre/scratch4/turquoise/trhille/test_MALI-Dev_PR37/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/16proc_run/output.nc
       /lustre/scratch4/turquoise/trhille/compass_baseline_a64342f/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/16proc_run/output.nc
    Pass thresholds are:
       L1: 0.00000000000000e+00
       L2: 0.00000000000000e+00
       L_Infinity: 0.00000000000000e+00
calvingThickness     Time index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
1:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
2:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
3:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
4:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
5:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
6:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
7:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
8:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
9:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
10:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
  ESC[92mPASSESC[0m /lustre/scratch4/turquoise/trhille/test_MALI-Dev_PR37/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/32proc_run/output.nc
       /lustre/scratch4/turquoise/trhille/compass_baseline_a64342f/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/32proc_run/output.nc

thickness results:

    Pass thresholds are:
       L1: 0.00000000000000e+00
       L2: 0.00000000000000e+00
       L_Infinity: 0.00000000000000e+00
thickness            Time index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
1:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
2:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
3:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
4:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
5:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
6:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
7:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
8:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
9:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
10:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
  ESC[92mPASSESC[0m /lustre/scratch4/turquoise/trhille/test_MALI-Dev_PR37/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/16proc_run/output.nc
       /lustre/scratch4/turquoise/trhille/compass_baseline_a64342f/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/16proc_run/output.nc
    Pass thresholds are:
       L1: 0.00000000000000e+00
       L2: 0.00000000000000e+00
       L_Infinity: 0.00000000000000e+00
thickness            Time index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
1:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
2:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
3:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
4:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
5:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
6:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
7:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
8:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
9:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
10:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
  ESC[92mPASSESC[0m /lustre/scratch4/turquoise/trhille/test_MALI-Dev_PR37/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/32proc_run/output.nc
       /lustre/scratch4/turquoise/trhille/compass_baseline_a64342f/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/32proc_run/output.nc

surfaceSpeed results:

    Pass thresholds are:
       L1: 0.00000000000000e+00
       L2: 0.00000000000000e+00
       L_Infinity: 0.00000000000000e+00
surfaceSpeed         Time index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
1:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
2:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
3:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
4:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
5:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
6:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
7:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
8:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
9:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
10:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
  ESC[92mPASSESC[0m /lustre/scratch4/turquoise/trhille/test_MALI-Dev_PR37/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/16proc_run/output.nc
       /lustre/scratch4/turquoise/trhille/compass_baseline_a64342f/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/16proc_run/output.nc
    Pass thresholds are:
       L1: 0.00000000000000e+00
       L2: 0.00000000000000e+00
       L_Infinity: 0.00000000000000e+00
surfaceSpeed         Time index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
1:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
2:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
3:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
4:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
5:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
6:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
7:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
8:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
9:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
10:  l1: 0.00000000000000e+00  l2: 0.00000000000000e+00  linf: 0.00000000000000e+00
  ESC[92mPASSESC[0m /lustre/scratch4/turquoise/trhille/test_MALI-Dev_PR37/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/32proc_run/output.nc
       /lustre/scratch4/turquoise/trhille/compass_baseline_a64342f/humboldt_calving_tests_fo/landice/humboldt/mesh-3km_decomposition_test/velo-fo_calving-von_mises_stress_damage-threshold_faceMelting/32proc_run/output.nc


floatingBasalMassBal(iCell) = 0.0_RKIND

cycle ! No need to look over other neighbors

Choose a reason for hiding this comment

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

Should this be exit instead of cycle? I believe cycle just skips the rest of this iteration of the do loop, but we're already at the end here, so that won't actually do anything. exit will skip the rest of the iterations.

Choose a reason for hiding this comment

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

I updated and tested changing this.

trhille and others added 2 commits October 24, 2022 08:34
When zeroing melt on floating non-dynamic fringe, use
li_mask_is_grounded_ice instead of li_mask_is_grounding_line. Using
the grounding line mask here is not consistent with the new definition
of the grounding line, and leads to ice-shelf melt being applied to
the floating non-dynamic fringe, resulting in spuriously high mass loss.
After various attempts, it was found that the best way to ensure BFB
behavior in the hydro model was to re-create the old GL mask (that
includes both grounded to floating and grounded open ocean) as a new
mask variable in the hydro model.  More work could be done to make a
more univerasl hydro mask and apply it uniformly, but this commit does
the minimum to keep the hydro model BFB using the existing logic in the
hydro model.
@matthewhoffman matthewhoffman force-pushed the redefine_grounding_line_mask branch from 28afc92 to 1bb4c76 Compare October 24, 2022 15:51
@matthewhoffman
Copy link

I have rewritten the changes to the hydro model to replicate the old GL mask just in the hydro module (1bb4c76), and that leads to my hydro tests being BFB with the old version of the code. With that, we have checked all to-do items, and this is ready to merge. I will perform a final full COMPASS test first.

@matthewhoffman
Copy link

The final COMPASS test yields a baseline difference for the landice_humboldt_mesh-3km_restart_test_velo-fo_calving-von_mises_stress_damage-threshold_faceMelting case:

damage               Time index: 0, 1, 2, 3, 4, 5, 6
1:  l1: 7.24964477947553e-02  l2: 4.31950960357161e-02  linf: 3.83526507624174e-02
2:  l1: 3.05383043904466e-01  l2: 2.67129761001989e-01  linf: 2.65621955627602e-01
3:  l1: 3.88187952502012e-01  l2: 2.72624304711313e-01  linf: 2.57060336035175e-01
4:  l1: 6.31643256080481e-01  l2: 5.38078896743410e-01  linf: 5.32028902813449e-01
5:  l1: 2.03499903589404e-01  l2: 1.37956201465645e-01  linf: 1.14773117478111e-01
6:  l1: 5.99634754776379e-01  l2: 4.72591713222446e-01  linf: 4.65347094244404e-01

This seems consistent with the differences @trhille identified above.

One is new in this branch, the other was longstanding.  In both cases,
the old usage was not hurting anything, but was not actually doing
anything.  With this change, the code will stop looing over neighbors
when it finds what it's looking for, which will be slightly more
efficient.  COMPASS testing indicates no change in results, as should be
the case.
@matthewhoffman matthewhoffman self-requested a review October 24, 2022 17:56
Previously said the change occured in May, but it is being merged in Oct
2022.
Copy link
Author

@trhille trhille left a comment

Choose a reason for hiding this comment

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

@matthewhoffman, your changes to the SGH code all make sense to me. I pushed one trivial commit to update comments that refer to the grounding line mask change happening in May 2022, which I've updated to say "Oct 2022". I think it's ready to merge!

@matthewhoffman matthewhoffman merged commit e044b40 into MALI-Dev:develop Oct 24, 2022
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