Skip to content

Implementation of plastic potential for VP and EVP.#649

Merged
apcraig merged 8 commits into
CICE-Consortium:mainfrom
JFLemieux73:Plastic_Pot
Nov 9, 2021
Merged

Implementation of plastic potential for VP and EVP.#649
apcraig merged 8 commits into
CICE-Consortium:mainfrom
JFLemieux73:Plastic_Pot

Conversation

@JFLemieux73
Copy link
Copy Markdown
Contributor

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

PR checklist

  • Short (1 sentence) summary of your PR:
    Implementation of plastic potential approach of Ringeisen et al. 2021
  • Developer(s):
    @JFLemieux73
  • Suggest PR reviewers from list in the column to the right.
    @phil-blain
  • Please copy the PR test results link or provide a summary of testing completed below.
    337 measured results of 337 total results
    337 of 337 tests PASSED
    0 of 337 tests PENDING
    0 of 337 tests MISSING data
    0 of 337 tests FAILED
  • How much do the PR code changes differ from the unmodified code?
    • bit for bit
    • different at roundoff level
    • more substantial
  • Does this PR create or have dependencies on Icepack or any other models?
    • Yes
    • No
  • Does this PR add any new test cases?
    • Yes
    • No
  • 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.)
    • Yes
    • No, does the documentation need to be updated at a later time?
      • Yes
      • No
  • Please provide any additional information or relevant details below:
    @TillRasmussen FYI: I have not modified the 1d-evp. This is why I kept ecci=1/e_yieldcurve**2.

@apcraig
Copy link
Copy Markdown
Contributor

apcraig commented Oct 28, 2021

Readthedocs is failing. Looks like "TC" is not defined in the new Ringler reference.

@JFLemieux73
Copy link
Copy Markdown
Contributor Author

It should work now. Thanks!

Copy link
Copy Markdown
Contributor

@eclare108213 eclare108213 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation changes were made only in the VP section. Is this new yield curve only available for VP, or could it be used for the other dynamics options too?

@JFLemieux73
Copy link
Copy Markdown
Contributor Author

The VP section is an introduction for the implicit and EVP approaches. It is in this section that we introduce the viscous coefficients and Delta. The new plastic potential affects the definition of eta (viscous coeff) and Delta. It is therefore available for the implicit solver (VP), EVP and rEVP. I think the first sentence in the EVP section suggests this:

"In the EVP model the internal stress tensor is determined from a regularized version of the VP constitutive law"

Do we need more info?

@eclare108213
Copy link
Copy Markdown
Contributor

It wasn't obvious to me, reading all of those sections, that those options were available for all of the (E)VP variants. Please make that explicit. When we rework the dynamics drivers etc we should take a look at the documentation too (or maybe vice-versa, as guidance).

Copy link
Copy Markdown
Member

@phil-blain phil-blain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @JFLemieux73. It's nice how this can be implemented with so little changes to the code. I left a few comments below.

Comment on lines -398 to +389
\sigma_{ij} = 2 \eta \dot{\epsilon}_{ij} + (\zeta - \eta) D_D - P_R(1 - k_t)\frac{\delta_{ij}}{2}
\sigma_{ij} = 2 \eta \dot{\epsilon}_{ij} + (\zeta - \eta) D_D - P_R\frac{\delta_{ij}}{2}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here and below we remove 1 - k_t from the equation, I guess because we have not introduced the tensile strength yet (with the changes you do in this PR). So I guess this is OK.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The replacement pressure now includes the (1-k_t) term. This is consistent with Ringeisen et al. 2021.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little confused about this too. I think I understand what's happening in the code. What's confusing is that P and replacement pressure aren't quite the same, and in our docs both are referenced to old publications, which don't include the new tensile strength. So when we clean up the dynamics documentation as part of the overall C-grid effort, let's fix that too.

Comment on lines +416 to +418
The tensile strength :math:`T_p` is expressed as a fraction of :math:`P`, that is :math:`T_p=k_t P`
where :math:`k_t` should be set to a value between 0 and 1 (this can
be changed at runtime with the namelist parameter ``Ktens``).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be clearer if T_p appeared in the equations below, or at least mention how its effect is incorporated in the viscous coefficients (since k_t is removed from the equations).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed T_p in the doc.

!ecci = c1/ecc ! 1/ecc
ecci = c1/e_ratio**2 ! 1/ecc
! variables for elliptical yield curve and plastic potential
epp2i = c1/e_plasticpot**2
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure I like that name.. but I don't have anything much better to propose :P

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least it looks like the previous variable ecci...

@JFLemieux73
Copy link
Copy Markdown
Contributor Author

@eclare108213 I agree we should have a look and probably modify some of the doc for the dynamics. Note that I have reordered some subsections (EAP is now at the end as it is really different than the other ones). I also think we should rework the revised EVP subsection. Some eqs should go in the momentum section and not in the internal stress section.

@JFLemieux73
Copy link
Copy Markdown
Contributor Author

@eclare108213 I think we should go ahead with this PR. I plan to go back to the documentation soon. I think we can make it simpler. For example we have two sections EVP and two sections VP...these can be combined.

Copy link
Copy Markdown
Contributor

@eclare108213 eclare108213 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm willing to approve and merge these changes, under the assumption that the documentation will be fixed fairly soon.

Comment on lines -398 to +389
\sigma_{ij} = 2 \eta \dot{\epsilon}_{ij} + (\zeta - \eta) D_D - P_R(1 - k_t)\frac{\delta_{ij}}{2}
\sigma_{ij} = 2 \eta \dot{\epsilon}_{ij} + (\zeta - \eta) D_D - P_R\frac{\delta_{ij}}{2}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little confused about this too. I think I understand what's happening in the code. What's confusing is that P and replacement pressure aren't quite the same, and in our docs both are referenced to old publications, which don't include the new tensile strength. So when we clean up the dynamics documentation as part of the overall C-grid effort, let's fix that too.

@phil-blain
Copy link
Copy Markdown
Member

One small point, maybe we want to add a new test with a non-default value of e_plasticpot ?

@JFLemieux73
Copy link
Copy Markdown
Contributor Author

I added a note in issue #651 for the new test. I will do that later. Can we please merge this in the main code? I would like to have the plastic potential for next week for the C-grid implementation of rheology.

@apcraig apcraig merged commit aaf392b into CICE-Consortium:main Nov 9, 2021
@phil-blain
Copy link
Copy Markdown
Member

phil-blain commented Nov 24, 2021

@JFLemieux73 I should have noticed that sooner, but maybe it would have been a good idea to keep e_ratio in the namelist, for backward compatibility ? meaning, if e_plasticpot and e_yieldcurve are not in the namelist, but e_ratio is, then set e_plasticpot = e_yieldcurve = e_ratio ...

I just had a failure with the new code and a namelist from a few weeks ago, that's why I noticed...

@JFLemieux73
Copy link
Copy Markdown
Contributor Author

I think this complicates things. With time backward compatibility is less and less important so I would not worry about this. Moreover I find that it is a good idea to get rid completely of e_ratio. e_yieldcurve is a better name.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants