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

New Mesh: WC12to60kmL60E3SMv2r01 #555

Conversation

mark-petersen
Copy link
Contributor

@mark-petersen mark-petersen commented May 11, 2020

Design discussion Water Cycle mesh, 12km high resolution region.

@mark-petersen
Copy link
Contributor Author

mark-petersen commented May 11, 2020

Instructions to create CUSP mesh on LANL IC. See general MPAS instructions for other machines and configurations.

  1. Clone this branch
2. Create the test case:

source /usr/projects/climate/SHARED_CLIMATE/anaconda_envs/load_latest_compass.sh
cd testing_and_setup/compass
./list_testcases.py | grep CUSP
  65: -o ocean -c global_ocean -r CUSP12 -t init
  66: -o ocean -c global_ocean -r CUSP12 -t spin_up
./setup_testcase.py \
  --config_file general.config.ocean \
  --work_dir $WORKDIR \
  --model_runtime runtime_definitions/mpirun.xml \
  -o ocean -c global_ocean -r CUSP12 -t init

where $WORKDIR is a path, usually to your scratch space. For example,
--work_dir /lustre/scratch4/turquoise/mpeterse/runs/200429_test_new_branch
and general.config.ocean is a file that specifies directory and file paths. Here is an example for LANL IC: general.config.ocean

3. Create mesh

On LANL IC, you can do this interactively:

salloc -N 1 -t 4:0:0 --qos=interactive
source /usr/projects/climate/SHARED_CLIMATE/anaconda_envs/load_latest_compass.sh
cd $WORKDIR
cd ocean/global_ocean/CUSP12/init
./run.py

That will proceed through the base_mesh and culled_mesh steps. It creates these files:

base_mesh: base_mesh.nc cellWidthGlobal.png   mesh_construction.png
culled_mesh:  culled_mesh.nc

You should look at the png files, and can also explore the netcdf files.

4. Create the initial state

You need a compiled version of MPAS for this, as it uses the MPAS init mode. See machine specific instructions. Then:

salloc -N 1 -t 4:0:0 --qos=interactive
source /usr/projects/climate/SHARED_CLIMATE/anaconda_envs/load_latest_compass.sh
cd $WORKDIR
cd ocean/global_ocean/CUSP12/init/initial_state
./run.py

where there is a link to your compiled ocean_model there, and you can increase the core count in run.py if needed. You will then see:

initial_state:
initial_state.nc initial_state.png vertical_grid.png

and you should look at those files as well.

5. spin up

This is the same as step 2 above, but use the spin-up:

./setup_testcase.py \
  --config_file general.config.ocean \
  --work_dir $WORKDIR \
  --model_runtime runtime_definitions/mpirun.xml \
  -o ocean -c global_ocean -r CUSP12 -t spin_up
6. E3SM coupling files

source /usr/projects/climate/SHARED_CLIMATE/anaconda_envs/load_latest_compass.sh
cd $WORKDIR
cd ocean/global_ocean/CUSP12/init/e3sm_coupling/
./run.py

@mark-petersen
Copy link
Contributor Author

Based on the conversations the last few months, I made a best guess at the CUSP mesh using the signed distance function (PR #523). I created the mesh today with this PR and compass 0.1.5. It produces this mesh:
cellWidthGlobal
and these auxiliary images:

mesh construction steps

mesh_construction

vertical grid

vertical_grid

initial state pdfs

initial_state

@mark-petersen
Copy link
Contributor Author

Here are a few questions for discussion for this mesh design:

  • 1. What should the minimum resolution be? Currently 12km
    That is set here. I created these:
    12km min: 485k cells.
    14km min: 405k cells.
    For reference, EC60to30 has 265k cells.
    On IC, meshes are available at:
/lustre/scratch4/turquoise/mpeterse/runs/200511_cusp14_cusp_coastal_US_plus_mesh/ocean/global_ocean/CUSP14/init
/lustre/scratch4/turquoise/mpeterse/runs/200511_cusp12_cusp_coastal_US_plus_mesh/ocean/global_ocean/CUSP12/init
  • 2. How many vertical levels? Currently 60 and 64 layers are generated in COMPASS.

  • 3. Should the high-resolution region be revised? In particular,
    a. Coastal width is 600km, set here
    b. North Atlantic transition is set here with the file region_Gulf_Stream_extension.geojson, and can be easily changed.

  • 4. Minor items
    a. Black and Capain seas are still there.
    b. At -180, high-res. region slightly degraded near Russia.

@xylar
Copy link
Collaborator

xylar commented May 12, 2020

@mark-petersen, your instructions involve e3sm_coupling before spin_up but it needs to be the opposite. Though I wouldn't worry too much until after Thursday's meeting since we will likely need to do some reorganization anyway following that discussion.

@xylar
Copy link
Collaborator

xylar commented May 12, 2020

  1. Minor items
    Black and Caspian Seas are still there.

Are you sure this is still true once you make the mesh? There should be a critical land blockage to remove the Black Sea and the Caspian sea has no connection to the global ocean and should be culled by the normal flood-fill procedure. If you are going on the image above, it's just a cartopy map and has no relevance for the MPAS mesh.

At -180, high-res. region slightly degraded near Russia.

It looks like the region_Bering_Sea feature isn't periodic at +/-180:
https://github.com/mark-petersen/MPAS-Model/blob/ocean/cusp_coastal_US_plus_mesh/testing_and_setup/compass/ocean/global_ocean/CUSP12/init/region_Bering_Sea.geojson
For the boundary at +/-180 to be handled correctly, you need to have exactly the same points at exactly +180 and -180. It is not valid (at least for the purposes of the signed distance function) to have points above +180 or below -180. We should add checks and error messages to this effect.

@pwolfram
Copy link
Contributor

Following on from our discussion at https://acme-climate.atlassian.net/wiki/spaces/ECG/pages/1410270496/05-14-2020+Special+Topics+MPAS+E3SM+initialization, would recommend capturing physical basis or reasoning (several bullets, 30s-1min view) of design of mesh.

@xylar
Copy link
Collaborator

xylar commented May 14, 2020

@pwolfram, I think this is at least one point where the info you requested on why the resolution is distributed where it is could go here:
https://github.com/mark-petersen/MPAS-Model/blob/ocean/cusp_coastal_US_plus_mesh/testing_and_setup/compass/ocean/global_ocean/CUSP12/init/config_E3SM_coupling_files.ini#L14-L16

This comes from the discussion here #507

@xylar
Copy link
Collaborator

xylar commented May 14, 2020

capturing physical basis or reasoning (several bullets, 30s-1min view) of design of mesh.

Would you do that here in the PR? In the metadata I pointed to above? Somewhere else?

@pwolfram
Copy link
Contributor

@xylar, I'd do that in the PR description and copy/paste these top points into the field you point to above.

@proteanplanet
Copy link

@xylar and @mark-petersen. I've been running the ruler over this mesh over the past few days, and am close to sharing a host of plots and checks on the mesh. As I finish off my work, I want to supply you with a file of Arctic Shipping Assessment ship tracks through the Arctic that you may or may not wish to include in forced-open channels. With very minor changes, the 14km mesh would accommodate this. What is your preferred format for that - Would a KML file work, or a Geoshape, or netcdf trace, or GeoJSON?

@proteanplanet
Copy link

Of course, with my new-found knowledge after the tutorial, I could even venture to do this myself.... with your supervision.

@xylar
Copy link
Collaborator

xylar commented May 21, 2020

@proteanplanet, it would be great if you want to add some new critical passages and critical blockages! Eventually, I will add the following to future COMPASS documentation.

Adding new transects (critical blockages or passages) can be done through geometric_features but currently not directly in COMPASS in MPAS-Model. Adding new features to geometric_features not quite trivial but it shouldn't be too hard.

  • First, go to http://geojson.io and make your transects. It's fine to have multiple transects in the same file for now
  • Add the required properties (name, component='ocean', object='transect', author= and tags), see Geometric Data for details
  • Make sure the list of tags includes Critical_Passage or Critical_Land_Blockage. Other tags are up to you. Tags are separated by semicolons
  • Copy the geojson data on the right and paste it into a file in the root of the branch of geometric_features for your modification.
  • Make a copy of the example script for Adding New Features, change my_new_features.geojson to the name of your new geojson file, and run the script.
  • Commit the changes to the repo and make a pull request to geometric_features, which I will review.

These changes will make their way into the next geometric_features release and the next compass conda environment. So they're not immediately available for testing. If you want me to set up a test compass environment, though, it's not too hard and we can talk about that. Eventually, that process will also be in the documentation, too...

@xylar
Copy link
Collaborator

xylar commented May 21, 2020

@maltrud, @katsmith133 and possibly others had mentioned not being big fans of the name "CUSP" for this mesh. I think this PR is a reasonable place to discuss alternatives. @katsmith133, what was your suggestion again?

@katsmith133
Copy link

@xylar not something that should actually be considered. It was very much a joke, but I will think about real names for the mesh and post any that I think are good.

@philipwjones
Copy link
Contributor

philipwjones commented May 21, 2020

CONUS-Coast (like Kona coast and with our own coffee blend), crush (coastal refined US...), lots of other cr- words work. What about Crusty? Also, cousin, Custer, couscous, cuscus, cuss, cussed, custody...just a quick brain dump of c-words...can fill in an acronym for any of those and inverting word order opens up more...

@pwolfram
Copy link
Contributor

pwolfram commented May 21, 2020 via email

@vanroekel
Copy link
Contributor

Now that we resolve a good chunk of the N. Atlantic and all the arctic, Coastal no longer seems like the most important item to include. Not sure what the best choice is though.

@vanroekel vanroekel assigned vanroekel and unassigned mark-petersen May 22, 2020
@maltrud
Copy link
Contributor

maltrud commented May 22, 2020

North America Shelf Coastal and Arctic Refined
though we might have some copyright issues with this....

@philipwjones
Copy link
Contributor

Excellent! But I only watch it for the crashes...

@proteanplanet
Copy link

I am close to publishing quality control on CUSP12 and CUSP14 for this PR. I see on Confluence that WC12 and WC14 may be the new names for these meshes per Luke. If so, I very much like this convention - shorter and focused on the simulation campaign at which they are targeted. The rest of the information is now in the metadata.

@pwolfram
Copy link
Contributor

@proteanplanet
Copy link

Quality control of mesh for global and polar performance: The first stage is to share the mesh characteristics for 42 designated areas of oceanographic or coupled importance, including a comparison of the coastline with the E3SM-HR V1 mesh. These will be shared in two separate posts following this one for WC12 and WC14, respectively. Further quality control posts will follow these two with comments on parts of the mesh that need to be addressed.

@proteanplanet
Copy link

WC12 sector plots - Indicating zoomed-in regions for the next post

WC12_sector_1
WC12_sector_2
WC12_sector_3
WC12_sector_4
WC12_sector_5
WC12_sector_6

@proteanplanet
Copy link

WC12 zoomed plots - Numbers correspond to the figure in the previous post

WC12_zoom_1
WC12_zoom_2
WC12_zoom_3
WC12_zoom_4
WC12_zoom_5
WC12_zoom_6
WC12_zoom_7
WC12_zoom_8
WC12_zoom_9
WC12_zoom_10
WC12_zoom_11
WC12_zoom_12
WC12_zoom_13
WC12_zoom_14
WC12_zoom_15
WC12_zoom_16
WC12_zoom_17
WC12_zoom_18
WC12_zoom_19
WC12_zoom_20
WC12_zoom_21
WC12_zoom_22
WC12_zoom_23
WC12_zoom_24
WC12_zoom_25
WC12_zoom_26
WC12_zoom_27
WC12_zoom_28
WC12_zoom_29
WC12_zoom_30
WC12_zoom_31
WC12_zoom_32
WC12_zoom_33
WC12_zoom_34
WC12_zoom_35
WC12_zoom_36
WC12_zoom_37
WC12_zoom_38
WC12_zoom_39
WC12_zoom_40
WC12_zoom_41
WC12_zoom_42

@xylar
Copy link
Collaborator

xylar commented Jun 4, 2020

Adding the "Don't merge" tag until changes to #584 get brought in and metadata gets updated.

@proteanplanet
Copy link

@pwolfram and @proteanplanet, if we want to maintain two meshes with a lot of redundancy in the long run, it would be good to reorganize things so they share the shapes used to construct them to avoid the current redundancy (in both shapes and commits).

Thanks @xylar. The critical deciding factor will likely be the be timing statistics for WC14 for InteRFACE. @pwolfram and I will discuss this in the coming week.

@vanroekel vanroekel force-pushed the ocean/cusp_coastal_US_plus_mesh branch from 1893bab to 89479f6 Compare July 7, 2020 15:53
@vanroekel
Copy link
Contributor

@xylar I've rebased and tested this. I think it is ready to merge, but want to check with you as you have a comment above about metadata. That PR is merged but want to make sure you are good with this going in.

@xylar xylar removed the Don't merge label Jul 7, 2020
@xylar xylar self-requested a review July 7, 2020 16:06
Copy link
Collaborator

@xylar xylar left a comment

Choose a reason for hiding this comment

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

@vanroekel, this looks ready to merge as far as I can tell.

@xylar
Copy link
Collaborator

xylar commented Jul 7, 2020

@mark-petersen, is the timing right for @vanroekel to merge this or should we wait for an e3sm/develop merge before that?

@mark-petersen
Copy link
Contributor Author

Should this still be merged in, or was it superseded by the 14km version in #628 or others?

@xylar
Copy link
Collaborator

xylar commented Aug 18, 2020

@mark-petersen, my feeling is that all revisions need to be in the commit history for ocean/develop even if we don't end up using them. If we close the PR and delete the branch, all info on this mesh is lost. @vanroekel, what is your feeling?

@mark-petersen mark-petersen force-pushed the ocean/cusp_coastal_US_plus_mesh branch from 89479f6 to 454303a Compare August 18, 2020 12:05
@mark-petersen
Copy link
Contributor Author

I agree. Let's merge in, so we have both 14 and 12km options.

mark-petersen added a commit that referenced this pull request Aug 18, 2020
…elop

Add support for custom critical passages and land blockages #586

This is added to support potential addition of "custom" passages or
blockages in #555 and #584. The custom transects could come from a local
file or it could be pulled in from geometric_features, e.g. with the
merge_features command.
@mark-petersen mark-petersen merged commit 06568e6 into MPAS-Dev:ocean/develop Aug 18, 2020
mark-petersen added a commit that referenced this pull request Aug 18, 2020
* ocean/develop:
Fix ISOMIP+ viz scripts #642
Add support for custom critical passages and land blockages #586
New Mesh: WC12to60kmL60E3SMv2r01 #555
jonbob added a commit to E3SM-Project/E3SM that referenced this pull request Aug 18, 2020
Update MPAS-Source: COMPASS and Documentation files

This PRi brings in a new mpas-source submdoule with changes only to the ocean
core. It updates files unrelated to the E3SM forward model, including:
* Move load_compass_env.sh to the ocean dir  (MPAS-Dev/MPAS-Model#618);
* Update ISOMIP+ docs, including tutorial for Ocean0 on LANL IC
  (MPAS-Dev/MPAS-Model#653);
* Fix path to docs in Travis CI  (MPAS-Dev/MPAS-Model#644);
* atmosphere core init changes  (MPAS-Dev/MPAS-Model#637);
* New Mesh: WC14to60kmL60E3SMv2r03  (MPAS-Dev/MPAS-Model#628);
* Fix ISOMIP+ viz scripts  (MPAS-Dev/MPAS-Model#642);
* Add support for custom critical passages and land blockages
  (MPAS-Dev/MPAS-Model#586); and
* New Mesh: WC12to60kmL60E3SMv2r01  (MPAS-Dev/MPAS-Model#555)

[BFB]
jonbob added a commit to E3SM-Project/E3SM that referenced this pull request Aug 19, 2020
Update MPAS-Source: COMPASS and Documentation files

This PR brings in a new mpas-source submdoule with changes only to the ocean
core. It updates files unrelated to the E3SM forward model, including:
* Move load_compass_env.sh to the ocean dir  (MPAS-Dev/MPAS-Model#618);
* Update ISOMIP+ docs, including tutorial for Ocean0 on LANL IC
  (MPAS-Dev/MPAS-Model#653);
* Fix path to docs in Travis CI  (MPAS-Dev/MPAS-Model#644);
* atmosphere core init changes  (MPAS-Dev/MPAS-Model#637);
* New Mesh: WC14to60kmL60E3SMv2r03  (MPAS-Dev/MPAS-Model#628);
* Fix ISOMIP+ viz scripts  (MPAS-Dev/MPAS-Model#642);
* Add support for custom critical passages and land blockages
  (MPAS-Dev/MPAS-Model#586); and
* New Mesh: WC12to60kmL60E3SMv2r01  (MPAS-Dev/MPAS-Model#555)

[BFB]
caozd999 pushed a commit to caozd999/MPAS-Model that referenced this pull request Jan 14, 2021
… into ocean/develop

New Mesh: WC12to60kmL60E3SMv2r01 MPAS-Dev#555

Design discussion Water Cycle mesh, 12km high resolution region.
@mark-petersen mark-petersen deleted the ocean/cusp_coastal_US_plus_mesh branch March 3, 2021 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet