Repository navigation
Minor refactoring of KPP - #621
Conversation
Testing: CTestsAll tests passed on:
One test ( Testing:
|
There was a problem hiding this comment.
🟢 Approval recommended
Only a minor documentation nit remains, with no blocking issues.
1 open issue
What changed in this PR
This PR refactors KPP-aware convective mixing and standardizes floating-point literals.
Changes:
- Adds
_Realsuffixes to KPP constants. - Makes convective mixing KPP-aware.
- Removes unnecessary disabled-KPP index allocation.
- Updates the related test.
| File | Summary |
|---|---|
components/omega/test/ocn/VertMixTest.cpp |
Updates convective-mixing test arguments. |
components/omega/src/ocn/VertMix.h |
Adds KPP-aware mixing logic; includes a minor grammatical nit. |
components/omega/src/ocn/VertMix.cpp |
Integrates the refactored convective mixer. |
components/omega/src/ocn/KPPConstants.h |
Standardizes floating-point literal types. |
Review effort: Lite
|
@vanroekel Would you mind having a look ? |
|
Sure, I can review |
vanroekel
left a comment
There was a problem hiding this comment.
approving by visual inspection. I also ran the kpp suite and looked through the results and they appear consistent with develop
Testing on chrysalisTested the merge of #621 (
chrysalis, intel, openmpiPolaris
|
Testing on frontierTested the merge of #621 (
frontier, craygnu, mpichPolaris
|
Testing on pm-cpu and pm-gpuTested the merge of #621 (
pm-cpu, gnu, mpichPolaris
|
Testing on auroraTested the merge of #621 (
aurora, intel, mpichPolaris
|
|
The fix for the reproducibility issue noted in the realistic global cases is in #646 |
Testing on
|
Testing on
|

This PR does two things:
_Realsuffix to all floating-point literals inKPPConstants.hthat were missing it.VertMix.hdefined theConvectiveMixclass andVertMixhad an instance of it, but this member variable was not used. Instead, convective mixing was implemented inline incomputeVertMix. This PR refactors the code so thatConvectiveMixis KPP-aware and can be used as intended. In the process of refactoring this code I also removed the need to allocateKPPBoundaryLayerIndexfilled with-1when KPP is disabled.Checklist
Linting
Building
Testing
aurora, intel, mpich
aurora, intelgpu, mpich
chrysalis, intel, openmpi
PEM_D.T62_oQU240.GOMEGA-IAFERS_Ld3.ne4pg2_oQU240.WCYCL1850NS-OMEGAfrontier, craygnu, mpich
frontier, craygnu-mphipcc, mpich
ERS_Ld5.T62_oQU240.GOMEGA-IAFERS_Ld3.ne4pg2_oQU240.WCYCL1850NS-OMEGApm-cpu, gnu, mpich
pm-gpu, gnugpu, mpich
Provide relevant details in a comment to the PR titled
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