-
Notifications
You must be signed in to change notification settings - Fork 37
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
Add a tides test case for the VR45to5 mesh #802
base: main
Are you sure you want to change the base?
Conversation
# from skimage.filters.rank import median, percentile | ||
|
||
|
||
class VRTidesMesh(SphericalBaseStep): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should probably inherit from QuasiUniformSphericalMeshStep
then I can reuse the setup
and run
methods (if I refactor the return variables from build_cell_width_lat_lon
and the input variables to make_jigsaw_mesh
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If possible, that does seem better. But we would want to avoid updating QuasiUniformSphericalMeshStep
if it can be avoided.
super().__init__(test_case=test_case, name='pixel', | ||
ntasks=1, min_tasks=1, openmp_threads=1) | ||
|
||
self.add_input_file( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Building these DEM datasets could be done once and cached somewhere, as it's pretty expensive and is typically only redone when GEBCO release a new bathymetry (once per year).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll keep these tools updated in https://github.com/dengwirda/dem for the latest GEBCO etc.
@@ -4,10 +4,14 @@ config_calendar_type = 'noleap' | |||
config_pio_num_iotasks = 0 | |||
config_pio_stride = 1 | |||
config_time_integrator = 'RK4' | |||
config_use_mom_del2 = .true. | |||
config_mom_del2 = 3.333 | |||
config_use_mom_del4 = .true. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't do a lot of tuning on the del^k dissipation, so this could be looked at in the future if there's interest.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the model is BTR-only, the following is a simple non-iterative adjustment of the SSH due to ISC pressure.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @sbrus89 this runs for me successfully on pm-cpu using E3SM-Project/E3SM#6310. A few things I noticed:
- It looks like the plots show TPXO8 rather than TPXO9?
- It looks like the wave-drag step may be printing quite a bit of output to the logs which could be suppressed? Also some long python loops which may be expensive.
- You may see improved performance if jigsaw is upgraded to a more recent version that runs with multi-threading + accelerated steepest descent.
Not relevant to this PR specifically, but since the errors in M2 are quite competitive here, I wonder if tuning for other constituents too (RMSE_total: https://gmd.copernicus.org/articles/14/1125/2021/) may make sense in the future, so as not to over fit on M2. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving based on @sbrus89's testing above. Thank you! It is great to have this published test case in the repository!
@sbrus89, thanks for the reminder. I'm testing an update to the submodule now. |
@sbrus89, as I just mentioned on slack, my attempt to update the submodule was not very successful. E3SM-Project/E3SM#6310 seems to be causing segfaults on Chrysalis with Intel and OpenMPI. |
Almost there, just waiting on #827 |
@xylar, yes I will do that. Thanks for helping with the submodule update! |
Following up from a month ago, a reminder to rebase and retest. |
This PR adds the workflow to generate the mesh and initial conditions for the VR45to5 barotropic tides mesh, run the simulation, and perform the global tidal constituent error analysis. It relies on the developments from E3SM-Project/E3SM#6310. This case reproduces the MPAS-Ocean configuration that gives the best deep water M2 RMSE accuracy (3.3 cm compared to TPXO9) to date.
Checklist
api.rst
) has any new or modified class, method and/or functions listedE3SM-Project
submodule has been updated with relevant E3SM changes