Add basic frazil only - #509
Draft
katsmith133 wants to merge 23 commits into
Draft
Conversation
Author
TestingCTest unit tests:
|
katsmith133
marked this pull request as draft
August 12, 2026 16:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR pulls the
basicfrazil option out of #466 so that it can be reviewed and merged first. The TEOS-10 option will need extra work and time. This branch has also been rebased onto #461 so that it can take advantage of small changes made there to some of the helper functions. I include here the information from #466 relevant to thebasicfrazil option:General implementation (documented in the docs):
The Frazil class calculates the frazil in a vertical column. We calculate the (cell, layer) tendencies and accumulate frazil fields that are necessary for frazil calculation in the layers above. The tendency class then simply calls frazil (if tendencies are turned on) and uses the tendencies. The column-integrated frazil fields (mass, energy, salt) will be passed to the coupler explicitly.
Basic frazil and caveats:
- basicFrazil mirrors the mpas-o implementation logic into omega (non BFB due to eos and fundamental equation differences, it is a mass-based cousin of the mpas-o implementation)
- it is non-conservative in energy by construction so would not recommend this for production runs. Alice manually changed the conservationCheck to be logging not failing to understand the behavior, but we probably want to switch it back for production runs with teos frazil that we know should be conservative.
- by default it uses a constant salinity of
IceRefSaland is conservative in salt (and mass). There is a manual option to use porosity rather than constantIceRefSal. The simple ctest shows that this is very non-conservative in salt (order of magnitude difference!). The redistribution of the excess salt in the top layer reconciles this but is likely a strong surface forcing. Alice doesn't recommend this as a good approach either but we could later quantify this in single-column tests with more realistic conditions.Additional information can be found in #466 on scope and future work.
Checklist
Documentation:
Linting
Building
Testing
aurora, oneapi-ifx, mpich
chrysalis, oneapi-ifx, openmpi
frontier, craygnu, mpich
frontier, craygnu-mphipcc, mpich
pm-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 buildNew tests: