Set rheology to zero for the C-grid when concentration is very small#1078
Set rheology to zero for the C-grid when concentration is very small#1078JFLemieux73 wants to merge 7 commits intoCICE-Consortium:mainfrom
Conversation
…dc and set_nml.gridcd
|
When using dyn_area_min=1e-11 and dyn_mass_min=1e-10, it is not BFB with the previous. I ran the QC test: INFO:main:Running QC test on the following directories: |
eclare108213
left a comment
There was a problem hiding this comment.
Some first impressions.
| umassdti , & ! mass of U-cell/dte (kg/m^2 s) | ||
| rheofactU ! mult. factor = 1, set to 0 if aiU <= rheo_area_min | ||
| ! rheofactU is not used but added for consistency with | ||
| ! C-grid rheofactN and rheofactE (for call dyn_prep2) |
There was a problem hiding this comment.
If it's not used, I wouldn't add it. Just put a note in the docs (along with something about this functionality in general) that says it's not been implemented. Here, does the C-grid work at all with EAP?
There was a problem hiding this comment.
Thanks for your comments @eclare108213. The C-grid does not work for EAP.
rheofactE and N (for the C-grid EVP) are calculated in dyn_prep2. As dyn_prep2 is called by all the 'solvers', this is why I added rheofactU for the B-grid EVP, VP and EAP.
I could add a comment that it is calculated but not used for the moment.
Do you have a better solution?
There was a problem hiding this comment.
Do you prefer rheofact to be an optional argument?
There was a problem hiding this comment.
I think an optional argument would be better.
| etax2U (:,:,:) ! etax2T averaged to U points | ||
| etax2U (:,:,:) , & ! etax2T averaged to U points | ||
| rheofactU(:,:,:) ! mult. factor = 1, set to 0 if aiU <= rheo_area_min | ||
| ! rheofactU is not used but added for consistency with |
There was a problem hiding this comment.
Again, I wouldn't include rheofactU in evp.
There was a problem hiding this comment.
same answer as above...
| u0 = 5e-5_dbl_kind, & ! residual velocity for seabed stress (m/s) | ||
| cosw = c1 , & ! cos(ocean turning angle) ! turning angle = 0 | ||
| sinw = c0 ! sin(ocean turning angle) ! turning angle = 0 | ||
| rheo_area_min = 1e-3_dbl_kind, & ! minimum ice area concentration to activate rheology |
There was a problem hiding this comment.
rheo_area_min should not be hardwired. (u0 probably shouldn't be, either.)
There was a problem hiding this comment.
I am not sure I want to give a lot of flexibility to the users for this. I would be inclined to keep it this way.
There was a problem hiding this comment.
1.e-3 is plenty small to activate the rheology, maybe even smaller than it should be, physically. Can this parameter be constrained by data? A quick search online asserts free drift concentration values are from 0 to somewhere in the range of 60-80%. The rheological model already captures this change qualitatively by reducing the magnitude of the internal stress term for smaller concentrations, although not completely to free drift. This PR puts the ice into free drift (as defined by the balance of other momentum equation terms) for very small ice concentrations, and I agree that 1.e-3 is a reasonable cutoff value for modeling. I think hardwiring it is okay, although it would be interesting to test its sensitivity at some point. If someone argues that it needs to be adjustable, then they/we can move it into namelist later.
|
To @eclare108213 : JF is letting us decide what to do with it. Since you said it is a useful PR, I would conclude that it is worth cleaning it up to CICE standards and merge it. |
Perfect. For now, we might just clean up the C-grid version, add comments in places where a B-grid version would need updates, and create an issue for the B-grid work itself. If it's straightforward then perhaps we'll do all of it at once, with full QC testing. Thank you! |
For detailed information about submitting Pull Requests (PRs) to the CICE-Consortium,
please refer to: https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers
THIS IS A DRAFT...I need to finalize some of the testing.
PR checklist
Short (1 sentence) summary of your PR:
Set rheology term to zero for the C-grid for low concentration values at the E and N points (<1e-3)
Developer(s):
@JFLemieux73
Suggest PR reviewers from list in the column to the right.
@eclare108213
Please copy the PR test results link or provide a summary of testing completed below.
385 measured results of 385 total results
385 of 385 tests PASSED
0 of 385 tests PENDING
0 of 385 tests MISSING data
0 of 385 tests FAILED
note: this is for dyn_area_min = 0.001d0 and dyn_mass_min = 0.01d0
with the same values as for the B-grid (i.e. dyn_area_min = 1e-11 and dyn_mass_min = 1e-10) the C-grid is now stable but the results are of course not BFB. I will add more info later.
How much do the PR code changes differ from the unmodified code?
Does this PR create or have dependencies on Icepack or any other models?
Does this PR update the Icepack submodule? If so, the Icepack submodule must point to a hash on Icepack's main branch.
Does this PR add any new test cases?
Is the documentation being updated? ("Documentation" includes information on the wiki or in the .rst files from doc/source/, which are used to create the online technical docs at https://readthedocs.org/projects/cice-consortium-cice/. A test build of the technical docs will be performed as part of the PR testing.)
Do we need to write in the doc that rheology is set to zero for aice<1e-3 ?
Please document the changes in detail, including why the changes are made. This will become part of the PR commit log.
Reducing dyn_area_min and dyn_mass_min (see PR #1055) led to instability with the C-grid. The modifications to the code in this PR correct this problem by setting the rheology term to zero for small values of concentration (<1e-3).