Skip to content

Reduce number of empty cells in extended high-resolution Greenland Ice Sheet mesh#937

Open
trhille wants to merge 8 commits intoMPAS-Dev:mainfrom
trhille:extended_gris_mesh
Open

Reduce number of empty cells in extended high-resolution Greenland Ice Sheet mesh#937
trhille wants to merge 8 commits intoMPAS-Dev:mainfrom
trhille:extended_gris_mesh

Conversation

@trhille
Copy link
Copy Markdown
Collaborator

@trhille trhille commented Feb 27, 2026

This merge includes changes needed for a new high-resolution (1–10 km) extended Greenland mesh with variable mesh resolution in the ocean and bare land. The goal is to have high enough resolution in the ocean to resolve fjords for coupling with the ocean, but to use lower resolution where possible to reduce wasted cells. The extended 1–10km without these changes contains 1.4 million cells, only ~350k of which contain ice. With these changes, the extended 1–10km mesh is 870k cells.

Checklist

  • User's Guide has been updated
  • Developer's Guide has been updated
  • Documentation has been built locally and changes look as expected
  • Document (in a comment titled Testing in this PR) any testing that was used to verify the changes

@trhille trhille added land ice in progress This PR is not ready for review or merging labels Feb 27, 2026
@trhille trhille changed the title Extended gris mesh Reduce number of empty cells in extended high-resolution Greenland Ice Sheet mesh Feb 27, 2026
@trhille
Copy link
Copy Markdown
Collaborator Author

trhille commented Feb 27, 2026

Testing

Using the .cfg file pasted below, I created a 1–10km mesh containing 870k cells instead of 1.4M. Only ~350k cells contain ice.
image

# config options for high_res_mesh test case
[mesh]

# number of levels in the mesh
levels = 10

# Bounds of GIS mesh. If any bound is set
# to None, the mesh will use the full extent
# of the gridded dataset.
x_min = None
x_max = None
y_min = None
y_max = None

# distance from ice margin to cull (km).
# Set to a value <= 0 if you do not want
# to cull based on distance from margin.
cull_distance = -100.0

# number of processors to use for ESMF_RegridWeightGen
nProcs = 2048

# mesh density parameters
# minimum cell spacing (meters)
min_spac = 1.e3
# maximum cell spacing (meters)
max_spac = 10.e3
# log10 of max speed for cell spacing
high_log_speed = 2.5
# log10 of min speed for cell spacing
low_log_speed = 0.75
# distance at which cell spacing = max_spac
high_dist = 1.e5
# distance within which cell spacing = min_spac
low_dist = 1.e4
# distance at which cell spacing in ocean = max_spac
high_dist_coast = 10.e3
# distance within which cell spaceing in ocean = min_spac
low_dist_coast = 2.e3
# distance at which bed topography has no effect
high_dist_bed = 1.e5
# distance within which bed topography has maximum effect
low_dist_bed = 7.5e4
# Bed elev beneath which cell spacing is minimized
low_bed = 50.0
# Bed elev above which cell spacing is maximized
high_bed = 100.0

# mesh density functions
use_speed = True
use_dist_to_grounding_line = False
use_dist_to_edge = True
use_dist_to_coast = True
use_bed = True

[greenland]
# path to directory containing BedMachine and Measures datasets
# (default value is for Perlmutter)
data_path = /global/cfs/cdirs/fanssie/standard_datasets/GIS_datasets/

# filename of the BedMachine thickness and bedTopography dataset
# (default value is for Perlmutter)
bedmachine_filename = BedMachineGreenland-v6_edits_floodFill_extrap.nc

# filename of the MEaSUREs ice velocity dataset
# (default value is for Perlmutter)
measures_filename = greenland_vel_mosaic500_extrap.nc

# projection of the source datasets, according to the dictionary keys
# create_scrip_file_from_planar_rectangular_grid from MPAS_Tools
src_proj = gis-gimp

# number of processors to use for ESMF_RegridWeightGen
nProcs = 2048

trhille added 4 commits April 22, 2026 13:48
Add option to set resolution in ocean based on distance from coast.
Fix coast mask definition
Remove constraint that forces maximum resolution everywhere on bare
land, which leads to enormous numbers of wasted cells in Greenland.
Create a separate .cfg file for the 1–10km Greenland mesh, and
change the default resolution from 3–30km to 4–40km to avoid
out-of-memory errors when running ESMF_RegridWeightGen on a single
Perlmutter node.
@trhille trhille force-pushed the extended_gris_mesh branch from b26249d to a02af8d Compare April 23, 2026 03:26
@trhille
Copy link
Copy Markdown
Collaborator Author

trhille commented Apr 23, 2026

Testing after rebase. 1–10km GIS mesh looks qualitatively the same as before.
image

Masks appear to be correct:
image

This took 31 minutes on one Perlmutter compute node with interpolate_data = False.

@trhille trhille requested review from matthewhoffman and removed request for matthewhoffman April 23, 2026 03:33
trhille added 3 commits April 22, 2026 20:56
Fix unconditional reads from config file in set_cell_width, so
that the config file does not need to have high_dist_coast if
use_dist_to_coast == False, for example.
Remove mention of using scikit-fmm to calculate distances to
grounding line, coast, and margin, since this algorithm is now very fast.
@trhille
Copy link
Copy Markdown
Collaborator Author

trhille commented Apr 23, 2026

All mesh_gen cases pass with these changes.

@trhille trhille requested a review from matthewhoffman April 23, 2026 20:58
@trhille
Copy link
Copy Markdown
Collaborator Author

trhille commented Apr 23, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in progress This PR is not ready for review or merging land ice

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant