-
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 test cases for subgrid scale wetting and drying corrections #785
Conversation
Thanks! Does this file need to be added?
|
@sbrus89, bathymetry would ideally go in the bathymetry database, not in the initial condition database: |
And sorry for not reviewing. I was waiting on the E3SM PR. |
Thanks! |
@mark-petersen, the bathymetry should be available now. |
Passes all tests using intel on chrysalis and gnu on perlmutter, both debug and optimized. Tests are as follows: perlmutter
chyrsalis
|
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.
@sbrus89 this is excellent! Approving based on documentation, output plots, and passing functional testing with two compilers. I did not review the details of the compass code implementation.
Thanks for testing, @mark-petersen! |
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 looks fantastic! I ran the standard test cases successfully. Just a few minor suggestions.
- resolution names km->m - Reduce to 2 day runtime - Viz clean up
- Add 64m res as default - remove Coriolis config - Add viz doc strings and fix title space
@xylar, thanks for the submodule update. I just rebased. |
@sbrus89, I was able to run the Buttermilk Bay test just fine! I had trouble with the viz step in both parabolic bowl test cases. The
The
|
Could you see if you are able to reproduce those errors? (This was on Chrysalis with the default Intel and OpenMPI configuration.) |
@xylar, thanks for testing. I'm looking into it now. |
@xylar, both the |
@sbrus89, I'll try running again first and point to the errors if they happen again. |
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.
@sbrus89, I reran and didn't see the errors from before. I must have messed things up the first time. My job ran out of time and maybe stepped on its own toes somehow.
Great, thank you @xylar! |
ax.loglog(self.resolutions, np.flip(rmse_1st_order), | ||
ax.loglog(self.resolutions, rmse_1st_order, |
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.
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.
@sbrus89 Great. I just closed the issue.
This pull request introduces two test cases for the subgrid scale correction scheme added in this E3SM PR: E3SM-Project/E3SM#6288. These test cases were developed under the ICoM project in collaboration with Dam Wirasaet at U. of Notre Dame.
The subgrid corrections used in these tests account for the nonlinear relationship between ssh and grid-averaged wet volume per unit area for partially wet cells. These relationships are calculated as lookup tables from high-resolution, subgrid scale, bathymetry data. This pre-processing step is implemented in MPAS-Ocean init mode 🙈. Using the subgrid correction scheme increases the accuracy of wetting and drying, and is especially advantageous at coarser resolutions. Currently, this capability is only implemented for single layer configurations.
The two test cases are:
A subgrid version of the existing parabolic bowl test case
A simulation of Buttermilk Bay, MA with idealized tidal boundary forcing
More information on the subgrid correction methodology can be found in Kennedy et al. 2019. This paper also discusses the Buttermilk Bay test case.
This PR also exercises a new (optional) update to the existing wetting and drying algorithm that takes into account the ssh gradient between cells that share a previously limited edge. This treatment of limited edges improves the wetting and drying convergence for the parabolic bowl. However, this approach is currently limited to a single layer configuration. Thanks to Dam for contributing this improvement!
Checklist
api.rst
) has any new or modified class, method and/or functions listedE3SM-Project
submodule has been updated with relevant E3SM changesTesting
in this PR) any testing that was used to verify the changes