-
Notifications
You must be signed in to change notification settings - Fork 435
EAMxx: dycore energy fixer #7553
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
Conversation
Discussing with @bartgol results from CI tests:
That is, fill patterns changed (dp, water species, z-based fields), because of code
that we needed initially to make cime tests with certain IO pass (otherwise dp is not init-ed properly before homme, but it is needed for the fixer). Standalone sp and fpe tests do not run homme, this is why they pass. Cime tests with baselines fail in comparison, but pass if there is no baseline comparison. |
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 have some last minute comments.
} | ||
|
||
//OG do we really need this check? It gets triggered for homme, but i do not see much use of this, disabling. | ||
#if 0 |
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 would remove the chunk of code then, rather than ifdeffing it out...
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.
done, thanks
<!-- Frequency in physics steps to output a global hash over the dycore's | ||
in-fields. <= 0 disables hashing. --> | ||
<enable_column_conservation_checks>false</enable_column_conservation_checks> | ||
<enable_energy_fixer>true</enable_energy_fixer> |
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.
Would you mind adding some metadata to these new XML entries? Namely, the "type" and "doc" metadata. We use these metadata entries when we auto-generate documentation for model inputs (which gets deployed on the online docs).
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.
done, thanks
<!-- Frequency in physics steps to output a global hash over the dycore's | ||
in-fields. <= 0 disables hashing. --> | ||
<enable_column_conservation_checks>false</enable_column_conservation_checks> | ||
<enable_energy_fixer>true</enable_energy_fixer> |
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.
do you have a preference for this being true as opposed to false for now?
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.
The fixer should be on always, otherwise we have a model that leaks energy (though it is a question how much is leaked and at what resolutions, we only know a little about these numbers from ne30 EAM runs). I believe the idea was to have the fixer on for all runs.
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.
Yeah, I agree, I meant from the perspective of integration. If you wanted to integrate all-BFB then in a follow-up PR do the NBFB, or just go at once. Either way is fine, up to you
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.
One small comment, feel free to ignore if you like.
components/eamxx/src/share/property_checks/mass_and_energy_conservation_check.hpp
Show resolved
Hide resolved
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 took a pretty close look at the new python. It looks good for the most part, just a cpl suggestions.
Adds (dycore) energy fixer. The infrastructure can be used for another process (and will be used for IEFLX), but the current impl is for the dycore. It is identical to the EAM impl, where pressure adjustment and dycore energy leaks are fixed as one global change to temperature for each column/level as the same temperature tendency. There is a check if fixer debug output is on ( enable_energy_fixer_debug_info ) , which computes global energy after the fixer to confirm that it does match. This debug output is used in a test that has postproc *py script to confirm that the energy is fixed up to a tolerance. For full discussion see #7276 . Climo results ( model vs model, with fixer and without from the same branch) https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.onguba/theta/ fixerJuly24-2025/latlon-pdf-vs-default/viewer/lat_lon/index.html . [nonBFB] for any cime runs with eamxx and dycore. Potentially climate-changing, too.
in next. i reintroduced |
Adds (dycore) energy fixer. The infrastructure can be used for another process (and will be used for IEFLX), but the current impl is for the dycore. It is identical to the EAM impl, where pressure adjustment and dycore energy leaks are fixed as one global change to temperature for each column/level as the same temperature tendency. There is a check if fixer debug output is on ( enable_energy_fixer_debug_info ) , which computes global energy after the fixer to confirm that it does match. This debug output is used in a test that has postproc *py script to confirm that the energy is fixed up to a tolerance. For full discussion see #7276 . Climo results ( model vs model, with fixer and without from the same branch) https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.onguba/theta/ fixerJuly24-2025/latlon-pdf-vs-default/viewer/lat_lon/index.html . [nonBFB] for any cime runs with eamxx and dycore. Potentially climate-changing, too.
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.
Oksana will do the python stuff in a subsequent PR.
Adds (dycore) energy fixer. The infrastructure can be used for another process (and will be used for IEFLX),
but the current impl is for the dycore.
It is identical to the EAM impl, where pressure adjustment and dycore energy leaks are fixed as one
global change to temperature for each column/level as the same temperature tendency.
There is a check if fixer debug output is on ( enable_energy_fixer_debug_info ) ,
which computes global energy after the fixer to confirm
that it does match. This debug output is used in a test that has postproc *py script to
confirm that the energy is fixed up to a tolerance.
For full discussion see #7276 .
Climo results ( model vs model, with fixer and without from the same branch) https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.onguba/theta/fixerJuly24-2025/latlon-pdf-vs-default/viewer/lat_lon/index.html .
[nonBFB] for any cime runs with eamxx and dycore. Potentially climate-changing, too.