Skip to content
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

Extending Mohr Coulomb state variables #742

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from

Conversation

jduriez
Copy link

@jduriez jduriez commented Dec 7, 2023

Description
This PR includes new state variables for the Mohr-Coulomb material:

  • 4 (binary) flags specifying the type of failure (if any). It can now be distinguished whether the material is currently (or has ever) failed in shear and/or tension

  • stored elastic energy. Note that it is denoted E_el, should it be rather eEl ?

  • cumulated plastic work, i.e. dissipation, given as a positive number. (well, let's not argue here whether this really is a state variable from a theoretical perspective ;-) ). Which is currently W_pl (should it be rather wPl ?)

Additional context

  • I was about to modify mpm-doc as well to document this change, but have not yet fully decided about the most appropriate place to do so. Probably in source corresponding to https://mpm.cb-geo.com/#/theory/material/mohr-coulomb, in a new (final) section "Output state variables" ?

  • This code comes from @SchDvr work during his PhD thesis. There is quite a number of other updates that could be proposed to be applied following his work, but this should probably be further discussed elsewhere.

…or shear; now and/or past) + elastic energy + plastic dissipation
@jduriez jduriez marked this pull request as draft December 7, 2023 13:34
@jduriez jduriez marked this pull request as ready for review December 7, 2023 13:49
@jduriez
Copy link
Author

jduriez commented Dec 7, 2023

Sorry for the initial check failure, my local test took place in a more compliant Ubuntu 22.04 environment (where brace initializing Vector6d was possible)

Copy link

codecov bot commented Dec 7, 2023

Codecov Report

Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (53fcb76) 96.75% compared to head (bc7cfa9) 96.75%.

Files Patch % Lines
include/materials/mohr_coulomb.tcc 96.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #742   +/-   ##
========================================
  Coverage    96.75%   96.75%           
========================================
  Files          130      130           
  Lines        25932    25972   +40     
========================================
+ Hits         25090    25129   +39     
- Misses         842      843    +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@kks32 kks32 left a comment

Choose a reason for hiding this comment

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

Thank you so much @jduriez for the suggested updates. Could we add some mpm-benchmark tests to make sure the previous version will still work and any new tests for this modified MC?

@jduriez
Copy link
Author

jduriez commented Dec 14, 2023

Thank you so much @jduriez for the suggested updates. Could we add some mpm-benchmark tests to make sure the previous version will still work and any new tests for this modified MC?

Thanks for feedback @kks32 ! Do you mean "mpm-benchmark tests" like in mpm-benchmark ? If yes, I'm afraid that would be too much for us at the moment (and for possibly a long time due to lack of time..) but I just tried to include a greater consideration of these new state variables in the catch test tests/materials/mohr_coulomb_test.cc as here:

REQUIRE(state_variables.at("shear_fail") == 1);

to L3398

As for whether previous version would still work, we somehow relied on the fact existing MC tests still pass and I would mostly stress out we are (aim at, at least ! ;-) ) touching here only post-processing state variables.

Let me know what you think (I should anyway try to come with a mpm-doc update about MC state variables next week..)

@jduriez
Copy link
Author

jduriez commented Mar 4, 2024

For the record, the incremental elastic energy expression is actually to improve. We currently multiply here the updated stress value with elastic strain increment, which is an overestimation. Using a mid-point rule between updated_stress and stress should be much better, so maybe it is indeed better not to merge currently

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants