Switch to 64 vertical levels for 3 meshes#581
Conversation
|
@vanroekel and @philipwjones, I'm flagging you both for a review mostly to make sure you're aware of this work and the numbers look okay to you. I'll post a list of layer interface locations shortly once I run a test. |
|
@milenaveneziani, I wanted to check with you if you think switching ARRM from the hard-coded 80-layer grid from E3SM v1 to the algorithmic (tanh) approach here makes sense to you. I think the results will be quite similar to before, but this would give you flexibility to adjust the number of layers or their thicknesses in the future with relative ease. I'll post the layer thicknesses and an example initial condition as soon as I have one. |
philipwjones
left a comment
There was a problem hiding this comment.
Looks ok to me. Thanks for moving to 64. I think it will help across all machines.
Testing 64 level meshesThe new vertical coordinate is: EC30to60 initial condition available at: The mesh, init and performance tests passed successfully. dz vs. zdz vs. z zoomdz vs. indexdz vs. index zoom |
Testing 80 layer ARRMThe new vertical coordinate is: EC30to60 initial condition available at: The mesh, init and performance tests passed successfully. dz vs. zdz vs. z zoom |
|
@vanroekel and @milenaveneziani, please let me know what you think. |
|
@vanroekel, if you are concerned about that linearly increasing dz at the surface in the new coordinate vs. the unchanging values in PHC, we could add another type of vertical coordinate that is more similar to PHC. My hunch is that it won't matter (i.e. the values of dz matter at the surface but not their derivative as long as it's not too large). |
|
@xylar my hunch is the same as yours. I definitely expect the near surface dz to be the dominant control here. However, it is possible that the resolution change near the bottom of the boundary layer will have consequences for simulated entrainment. Not sure what that change would be though. Either way I think this layer distribution is worth a test. |
|
@xylar, @vanroekel: the changes to the 80-level discretization seem really small to me. But about the 60-64 level change: I am concerned by the fact that we loose 5 layers in the upper 150 m (we go from 15 to 10). |
|
@milenaveneziani, do you have an alternative suggestion for how we should do this? Higher res at the surface? A different functional form? |
|
Let us wait until @vanroekel weighs in, but yes, I wonder whether we could have more layers in the upper 200 meters, maybe borrowing them from the 1000-2000 m range, where the 64-levels seem to have many more than the 60-levels case. Not sure if you would have to change the functional form to achieve that. |
I will need to add another degree of freedom to our current tanh function or a different functional form to allow a more constant resolution near the surface. I'll think about it. Thanks for the feedback. |
|
I would certainly support some more resolution near the top, but it's not immediately clear to me what the impact on the simulations would be. My gut feeling is the important aspect will be resolution near the boundary layer base. So it's possible that if we move closer to the PHC distribution we may have very coarse resolution in this region for very deep boundary layers and this could impact simulated entrainment. But without testing it's hard to say. I'd say we try add a few more layers near the top if possible and run some tests to see the impact of these coordinate choices. |
3f1b6ca to
d01010c
Compare
Updated 64 level meshesThis time, I did a The new vertical coordinate is: ECwISC30to60 initial condition available at: The mesh and init tests passed successfully. I didn't run performance this time. dz vs. zdz vs. z zoomdz vs. indexdz vs. index zoom |
|
@milenaveneziani and @vanroekel, I think you'll likely be happier with these new results. If so, I will also use them for the other 2 meshes with 64 vertical levels. |
For the EC30to60, SO12to60 and WC14 meshes, switch from 60 to 64 vertical levels. The surface and deep-ocean resolutions are the same as before (10 and 250 m, respecitively) as is the bottom depth (5500 m). For the ARRM10to60 mesh, we stick with 80 vertical levels. These have thicknesses between 2 and 150 m, and a bottom depth of 5500 m. These values are quite similar to but not identical to the E3SM v1 80-layer mesh, see: https://github.com/MPAS-Dev/compass/blob/main/compass/ocean/vertical/80layerE3SMv1.json
This merge also breaks out functions related to `tanh_dz` into their own module.
We want a shorter time step for ssh adjustment and performance because fast waves have not yet been dissipated by dynamic adjustment.
We want a shorter time step for ssh adjustment and performance because fast waves have not yet been dissipated by dynamic adjustment.
We want a shorter time step for ssh adjustment and performance because fast waves have not yet been dissipated by dynamic adjustment.
d01010c to
dab07f9
Compare
Add info about index_tanh_dz vertical coordinate. Add missing 80layerE3SMv1 vertical coordinate to docs.
|
In my testing of the SOwISC12to60 mesh with this new coordinate, it seems that the Haney-number vertical coordinate didn't converge. This needs to be addressed but this PR is not the place. Perhaps as part of #582. The ECwISC30to60 mesh worked fine with the time step adjustments included here. The WCwISC14 tests are still running but seem to be on track (in SSH adjustment). The Haney-number coordinate converged fine. SSH adjustment also appears to be proceeding as expected (changes in SSH are diminishing with each iteration). |
|
@xylar I really like the new version of the 64 layer coordinate! I'll be very interested to see this one in use. Thanks! |
|
Yes, I agree, the new version is really nice! Thanks @xylar. |
|
Thanks @vanroekel and @milenaveneziani. |










For the EC30to60, SO12to60 and WC14 meshes, switch from 60 to 64 vertical levels. The surface and deep-ocean resolutions are the same as before (10 and 250 m, respecitively) as is the bottom depth (5500 m).
For the ARRM10to60 mesh, we stick with 80 vertical levels. These have thicknesses between 2 and 150 m, and a bottom depth of 5500 m. These values are quite similar to but not identical to the E3SM v1 80-layer mesh, see:
https://github.com/MPAS-Dev/compass/blob/main/compass/ocean/vertical/80layerE3SMv1.json
This merge also updates time steps for the EC30to60, SO12to60 and WC14. The time steps for SSH adjustment (in ice-shelf cavities) and performance are made smaller because waves have not yet been dissipated in these runs. The time step in the final (
simulation) step of dynamic adjustment has been changed for each mesh to have bothconfig_dtandconfig_btr_dtto match E3SM.Checklist
Testingin this PR) any testing that was used to verify the changes