-
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
Update weights for ocean barotropic subcycling in split-explicit solver #6035
Update weights for ocean barotropic subcycling in split-explicit solver #6035
Conversation
* Update weight for the barotropic subcycling in split_explicit and split_explicit_ab2 solver by @dengwirda - config_btr_gam1_velWt1: 0.5 -> 0.5333 - config_btr_gam2_SSHWt1: 1.0 -> 0.5333 - config_btr_dt for EC30to60 meshes: 60 s -> 75 s * PR in E3SM-Ocean-Discussion E3SM-Ocean-Discussion#48
@dengwirda, @jeremy-lilly, @gcapodag: Many thanks for your work on time-stepping methods this past year, and this tuning in particular. Feel free to comment here as time permits. |
Adding previous comment for completeness (and the great images!!!): This PR updates the default Following Shchepetkin et al., the behaviour of a time-stepping scheme can be analysed using a dissipation-dispersion diagram, in which a 'perfect' integration scheme would reproduce the unit-circle exactly, stability requires the scheme to lie inside the circle, dissipative errors are represented by a reduced curve radius and dispersive errors by angular offset. The current weights achieve Though there is a third weight I've confirmed the new weights allow
|
<config_btr_dt ocn_grid="ECwISC30to60E1r2">'0000_00:01:00'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oEC60to30v3">'0000_00:01:15'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oEC60to30v3wLI">'0000_00:01:15'</config_btr_dt> | ||
<config_btr_dt ocn_grid="ECwISC30to60E1r2">'0000_00:01:15'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oRRS30to10v3">'0000_00:00:24'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oRRS30to10v3wLI">'0000_00:00:18'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oRRS18to6v3">'0000_00:00:12'</config_btr_dt> |
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.
To take full advantage of this PR, we should lengthen config_btr_dt
where we can for other meshes. @hyungyukang could you please extend your 18to6 run a bit (10 days?) with the new btr weights, and see if you can use config_btr_dt of 15s (or even 16?) rather than 12s?
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.
@mark-petersen , Sure, I'm going to run the same 18to6 run I've done with updated btr weights and see if we can use larger BTR time step size. I will report here once I finish the tests.
<config_btr_dt ocn_grid="oRRS30to10v3">'0000_00:00:24'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oRRS30to10v3wLI">'0000_00:00:18'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oRRS18to6v3">'0000_00:00:12'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oRRS15to5">'0000_00:00:11.25'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oARRM60to10">'0000_00:00:24'</config_btr_dt> | ||
<config_btr_dt ocn_grid="oARRM60to6">'0000_00:00:10'</config_btr_dt> | ||
<config_btr_dt ocn_grid="ARRM10to60E2r1">'0000_00:00:24'</config_btr_dt> | ||
<config_btr_dt ocn_grid="EC30to60E2r2">'0000_00:01:00'</config_btr_dt> | ||
<config_btr_dt ocn_grid="EC30to60E2r2">'0000_00:01:15'</config_btr_dt> | ||
<config_btr_dt ocn_grid="WC14to60E2r3">'0000_00:00:15'</config_btr_dt> | ||
<config_btr_dt ocn_grid="WCAtl12to45E2r4">'0000_00:00:15'</config_btr_dt> | ||
<config_btr_dt ocn_grid="SOwISC12to60E2r4">'0000_00:00:15'</config_btr_dt> |
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.
@jonbob, @darincomeau and @xylar, I suspect these three could all be extended from 15s to 19 or 20s. I think it is too much to test all this right now for this PR, but as we test and add E3 version grids, we should test with the value of config_btr_dt
that is 25% longer.
I ran one year of this PR plus #5989 with gnu on chrysalis in MPAS-O standalone, using compass |
@mark-petersen and all, as you've said, these changes should allow In addition to the longer Overall, hopefully this is simply some 'free' MPAS-O performance improvement, via optimisation of the time integrator CFL + truncation behaviour. |
@hyungyukang please review. |
@rljacob and @mark-petersen , sorry for my late review. I ran several real-world test cases on RRS18to6v3 mesh using the standalone MAPS-O with updated weights and tried to increase btr dt from 12 s (default). Both AB2 and forward-backward schemes were stable for 18 s of btr dt, where AB2 uses 75% of the default del 4 coefficient ( |
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'm approving this PR based on visual inspection and testing from @dengwirda , @mark-petersen , and @hyungyukang (also in #5989).
Update weights for ocean barotropic subcycling in split-explicit solver This PR updates the weights config_btr_gam1_velWt1, config_btr_gam2_SSHWt1 in the MPAS-Ocean barotropic solver based on recent analysis of this scheme. This update applies to "split explicit" time stepping schemes, i.e. config_time_integrator = 'split_explicit' and the new config_time_integrator = 'split_explicit_ab2' in #5989. The new weights allow for a barotropic time step config_btr_dt to be 25% longer in the tests of EC30to60, thus speeding up the barotropic subcycling. We expect that values of config_btr_dt can be increased by 25% for all meshes. [NML] [non-BFB]
passes sanity testing with expected DIFFs -- merged to next |
merged to master and expected DIFFs blessed |
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#48. Please refer to that PR for additional test results and discussion. Also see test results run in combination with AB2 at #5989 (comment).
This PR updates the weights
config_btr_gam1_velWt1
,config_btr_gam2_SSHWt1
in the MPAS-Ocean barotropic solver based on recent analysis of this scheme. This update applies to "split explicit" time stepping schemes, i.e.config_time_integrator = 'split_explicit'
and the newconfig_time_integrator = 'split_explicit_ab2'
in #5989. The new weights allow for a barotropic time stepconfig_btr_dt
to be 25% longer in the tests of EC30to60, thus speeding up the barotropic subcycling. We expect that values ofconfig_btr_dt
can be increased by 25% for all meshes.[NML]
[non-BFB]