-
Notifications
You must be signed in to change notification settings - Fork 371
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
A quasi-monotone flux limiter for isopycnal diffusion (Redi) #5945
A quasi-monotone flux limiter for isopycnal diffusion (Redi) #5945
Conversation
- Add a new config_Redi_use_quasi_monotone_limiter option for the isopycnal diffusion operator to better control non-monotone departure of tracer values. - Limiter expands on existing strategy of disabling cross-fluxes, but uses a more comprehensive test based on min/max values over stencil of neighbouring cells in the adjacent layers.
- Scale cross-fluxes toward zero proportional to the degree of non-monotonicity. Enables softer limiter compared to default on/off switch. Control ramp with quasi_monotone_safety_factor.
- Ensure fluxes are only scaled once by accumulating scaling on cells and then interpolating scaling to edges/levels. - Change default safety_factor to 1.0, based on QU30km spin-ups showing fully monotone behaviour. - Add local variables to OMP directives.
- Update use of triad slope in Redi term-3. - Fix edge-to-cell remapping weights for Redi term-3. - Switch to module-level config. variables.
@dengwirda thank you for your detailed investigation and testing that resulted in the PR. Feel free to make further comments here, as time permits with your new schedule. |
Copying over documentation and testing from E3SM-Ocean-Discussion#53 so that this PR is complete. FormulationIsopycnal diffusion of a tracer where which leads to the 'four-term' expression that is implemented in MPAS-O These four terms are denoted Evaluating
|
Thanks @mark-petersen, @vanroekel and all for your testing and work on this --- please let me know if any questions come up as this goes through. @jonbob and all re: E3SM defaults:
|
Testing three PRs together: #5946, #5947, #5945 (this one). I merged them as follows:
I then had to remove variables Specifically, those changes are as follows:
Alternatively, you could do this:
and then choose the second block of the conflicted code for all cases, and remove
With these changes, the three-PR merge passes the nighty suite with gnu and intel, both debug and optimized on chrysalis. |
components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml
Outdated
Show resolved
Hide resolved
And |
Thanks. We are currently testing a G case with |
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.
Approved by visual inspection and extensive testing in idealized, G-, and B-cases
) A quasi-monotone flux limiter for isopycnal diffusion (Redi) This PR addresses a range of issues concerning the isopycnal diffusion operator (Redi): * Updating the use of the triad slopes in one of the Redi fluxes. * Correcting the implementation of the Redi fluxes. * Adding a new new quasi-monotone flux limiting strategy that attempts to prevent the development of non-monotone tracer values. [non-BFB] [CC]
merged to next |
Re-merged to next after fix for threading issues |
merged to master |
This merge updates the E3SM-Project submodule from [894b5b2](https://github.com/E3SM-Project/E3SM/tree/894b5b2) to [5d5f15c](https://github.com/E3SM-Project/E3SM/tree/5d5f15c). This update includes the following MPAS-Ocean and MPAS-Frameworks PRs (check mark indicates bit-for-bit with previous PR in the list): - [ ] (ocn) E3SM-Project/E3SM#5945 - [ ] (ocn) E3SM-Project/E3SM#5946 - [ ] (ocn) E3SM-Project/E3SM#5947 - [ ] (ocn) E3SM-Project/E3SM#5999 - [ ] (ocn) E3SM-Project/E3SM#6037 - [ ] (ocn) E3SM-Project/E3SM#5989 - [ ] (ocn) E3SM-Project/E3SM#6035 - [ ] (ocn) E3SM-Project/E3SM#6077
These improvements were originally written by @dengwirda, as described in E3SM-Ocean-Discussion#53. Please refer to that PR for additional test results and discussion.
This PR addresses a range of issues concerning the isopycnal diffusion operator (Redi):
[non-BFB]
[CC]