Repository navigation
Higher Order Flux Corrected Horizontal Transport. - #447
Conversation
|
@overfelt I think in the meeting you mentioned success comparing the |
1403553 to
1b66468
Compare
ab09d81 to
9e7262f
Compare
|
Testing: Polaris omega_pr run against baselines on Chrysalis and passed. The TEND_PLANE_TEST and TEND_SPHERE_TEST test all of the new functions added for higher order FCT. There is no previous higher order FCT to compare against. |
Some notes from Claude Opus from testing horizontal FCT on a global configurationFeedback for the Motivation for trying it: Omega's unlimited horizontal tracer advection drives The configuration that worked: Omega:
Advection:
HorzTracerFluxOrder: 3
Coef3rdOrder: 0.25
HorzTracerFluxLimiterEnable: true
HorzTracerFluxLimiterBudgetsEnable: false
HorzTracerFluxLimiterMonotonicityCheckEnable: falseTwo things I hit that might be worth addressing before merge. 1.
|
81dab92 to
b9c2d57
Compare
|
@overfelt Are you able to post relevant plots generated by the |
4af06b6 to
d0434c3
Compare
|
@overfelt Can you rebase when you have a chance? Thanks! |
d0434c3 to
45ee3e9
Compare
|
@cbegeman , I rebased the branch. |
|
Closed by accident, I assume? |
|
oops
|
Build issues on aurora, gpu:Successful build with aurora, oneapi-ifxgpu, E3SM-Project/polaris@5546b58 + Omega submodule at c83fe0d Unsuccessful build with aurora, oneapi-ifxgpu, E3SM-Project/polaris@8aa9ccb, Omega this branch 5e38631 Build log can be found here: Claude attributes the fail to https://github.com/overfelt/Omega/blob/d31b35395899bf9ae21671a7fa4abbf725f4dc7e/components/omega/src/ocn/TendencyTerms.h#L729-L744:
|
|
I ran CTests on The seg faults happen because the vertical advection module is not initialized in these tests. I opened #503 to fix this issue and to add checks for module dependencies.
You probably know this, but the fix is to use |
eb73410 to
87d8ead
Compare
|
@mwarusz - thanks for reviewing. Are you ready to approve, or do you have more suggestions? |
|
@overfelt, it looks like this is getting close! It seems like the CI is picking up some linting issues. |
|
@sbrus89 It looks like the lint check has problems installing the environment. The "install dependencies" step fails when trying to install conda. |
sbrus89
left a comment
There was a problem hiding this comment.
@overfelt, I'm seeing 3 CTest fails on Frontier (craygnu). Most of these are probably just tolerances that need to be recalibrated, but there are some inf values reported.
TEND_PLANE_TEST
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHProvInv LInf FAIL, expected 0, got inf
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHProvInv L2 FAIL, expected 0, got inf
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHNewInv LInf FAIL, expected 0, got inf
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHNewInv L2 FAIL, expected 0, got inf
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHighAndLowOrderFlux_High LInf FAIL, expected 6.938893903907228e-18, got 5.204170427930421e-18
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHighAndLowOrderFlux_High L2 FAIL, expected 5.762546266224026e-18, got 3.645353341218854e-18
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTAccumulateHighOrderFlux_0 LInf FAIL, expected 1.2480435640527313e-15, got 1.1987786865243336e-15
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTAccumulateHighOrderFlux_0 L2 FAIL, expected 6.665476716753009e-16, got 5.663839253635848e-16
TEND_PLANE_SINGLE_PRECISION_TEST
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHProv LInf FAIL, expected 0, got 1.5258789e-05
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHProv L2 FAIL, expected 0, got 1.5258789e-05
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHProvInv LInf FAIL, expected 0, got inf
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHProvInv L2 FAIL, expected 0, got inf
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHNewInv LInf FAIL, expected 0, got inf
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHNewInv L2 FAIL, expected 0, got inf
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHighAndLowOrderFlux_Low LInf FAIL, expected 1.0095554e-15, got 0
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHighAndLowOrderFlux_Low L2 FAIL, expected 1.0095554e-15, got 0
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHighAndLowOrderFlux_High LInf FAIL, expected 6.938894e-18, got 1.8626451e-09
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHighAndLowOrderFlux_High L2 FAIL, expected 5.7625463e-18, got 1.643791e-09
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTAccumulateHighOrderFlux_0 LInf FAIL, expected 1.2480435e-15, got 7.405691e-07
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTAccumulateHighOrderFlux_0 L2 FAIL, expected 6.665477e-16, got 3.0637568e-07
TEND_SPHERE_TEST
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHProvInv LInf FAIL, expected 3.0541724683419424e-05, got inf
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHProvInv L2 FAIL, expected 1.0779233406323438e-06, got inf
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTHNewInv LInf FAIL, expected 3.0541724683419424e-05, got inf
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTHNewInv L2 FAIL, expected 1.0779233406323438e-06, got inf
[error] [OceanTestCommon.h:676] TendencyTermsTest: FCTAccumulateHighOrderFlux_0 LInf FAIL, expected 1.632639958580968e-15, got 1.521323597768628e-15
[error] [OceanTestCommon.h:681] TendencyTermsTest: FCTAccumulateHighOrderFlux_0 L2 FAIL, expected 7.582979124216783e-16, got 7.094408556615681e-16
|
@sbrus89 , I'll see if I can still access Frontier and try to replicate these failures. Some of the failing tests look like tolerances that can just be adjusted for Frontier but others are significant diffs. |
|
Sounds good @overfelt, I'm also seeing similar fails on Frontier with craygnu-mphicc in case it's helpful for adjusting tolerances: TEND_PLANE_TEST TEND_PLANE_SINGLE_PRECISION_TEST TEND_SPHERE_TEST I'll run on pm-cpu/gpu and post any fails I see as well. |
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
0f3c75e to
a555abb
Compare
mwarusz
left a comment
There was a problem hiding this comment.
Needs a couple of changes to consistently use transport velocity for tracers.
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
mwarusz
left a comment
There was a problem hiding this comment.
All of my comments have been addressed. CTests pass on pm-cpu (gnu) and pm-gpu (gnugpu). Moreover I ran ocean/spherical/icos/rotation_2d/with_viz using 3rd order monotonic transport and ocean/spherical/icos/divergent_2d/with_viz using 4th order monotonic transport with Omega and MPAS-O. The results are indistinguishable visually and almost identical in terms of convergence rates. For example,
MPAS-O divergent_2d
Omega divergent_2d
Approving. Thanks for your work on this @overfelt !
|
Thought it would be worth mentioning here: While running some initial G-Cases using #507, we ran into some unrealistic global maxima in temperature and salinity. After rebasing onto this branch and re-running with FCT turned on, the unrealistic global maxima have gone away!
Here are the performance changes for Omega between the runs, where everything else was consistent between the simulations:
|
|
With FCT turned off, this PR passes omega_pr on Frontier (craygnu) and on PM (gnu and gnugpu). There are machine precision diffs on Frontier with craygnu-mphipcc that will be blessed via polaris submodule update. I also tested |
|
This last commit is needed to make FCT the default in polaris in E3SM-Project/polaris#790 |
|
Passes CTests on Frontier (craygnu and craygnu-mphipcc) |
|
Thanks @overfelt for all the great work! |
|
Note that we should expect to see fails on several nightly tests until E3SM-Project/polaris#790 is merged. FCT is now on by default and current 2nd order cases do not turn it off in polaris. Running omega with 2nd order advection + FCT triggers a critical error in Omega. |









Checklist
Testingwith the following:have been run on and indicate that are all passing.
has passed, using the Polaris
e3sm_submodules/Omegabaseline-pfor both the baseline (Polarise3sm_submodules/Omega) and the PR build