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

[GeoMechanicsApplication] Capacity checks based on Mohr Coulomb in stress strain utilities #12258

Merged
merged 3 commits into from
Apr 9, 2024

Conversation

WPK4FEM
Copy link
Contributor

@WPK4FEM WPK4FEM commented Apr 8, 2024

📝 Description
Added Lode angle and Mohr Coulomb based capacity checks to geo stress/strain utilities

🆕 Changelog

  • Additions to stress_strain_utitlities.
  • Added unit tests for all functions in stress strain utitilities execpt for the already tested Hencky strain.

@WPK4FEM WPK4FEM self-assigned this Apr 8, 2024
@WPK4FEM WPK4FEM requested review from rfaasse and avdg81 April 8, 2024 11:48
@WPK4FEM WPK4FEM changed the title Capacity checks based on Mohr Coulomb instress strain utilities [GeoMechanicsApplication] Capacity checks based on Mohr Coulomb in stress strain utilities Apr 8, 2024
rfaasse
rfaasse previously approved these changes Apr 8, 2024
Copy link
Contributor

@rfaasse rfaasse left a comment

Choose a reason for hiding this comment

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

Very nice PR, the documentation + UT clarify these measures a lot! I have one nitpicky comment about a header size in the README (of course the rest was already reviewed in the previous PR).

rfaasse
rfaasse previously approved these changes Apr 9, 2024
Copy link
Contributor

@rfaasse rfaasse left a comment

Choose a reason for hiding this comment

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

Looks good to me!

Copy link
Contributor

@avdg81 avdg81 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 very happy with this set of tools that helps to produce output to interpret results of the Mohr-Coulomb model. Thanks for all the hard work that you have put into this, I really appreciate that. I have just a few minor remarks which I hope you will find useful.


### Green Lagrange strain tensor

With current configuration $x$ and reference configuration $X$, the deformation gradient $F = \frac{x}{X}$ and unit tensor I:
Copy link
Contributor

Choose a reason for hiding this comment

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

Nitpicking:

Suggested change
With current configuration $x$ and reference configuration $X$, the deformation gradient $F = \frac{x}{X}$ and unit tensor I:
With current configuration $x$ and reference configuration $X$, the deformation gradient $F = \frac{x}{X}$ and unit tensor $I$:

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done


which brings:

$$\bar{\theta}_s = \frac{1}{3} asin( - \frac{27}{2} \frac{(\sigma_1 - p)(\sigma_2 - p)(\sigma_3 - p)}{q^3})$$
Copy link
Contributor

Choose a reason for hiding this comment

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

Shouldn't we use $\arcsin$ rather than $asin$, to change $asin$ to $\arcsin$?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

double StressStrainUtilities::CalculateDenominator(const Vector& rStressVector, double Phi)
{
const double lode_angle = CalculateLodeAngle(rStressVector);
return sqrt(3.) * std::cos(lode_angle) - std::sin(lode_angle) * std::sin(Phi);
Copy link
Contributor

Choose a reason for hiding this comment

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

One minor thing:

Suggested change
return sqrt(3.) * std::cos(lode_angle) - std::sin(lode_angle) * std::sin(Phi);
return std::sqrt(3.) * std::cos(lode_angle) - std::sin(lode_angle) * std::sin(Phi);

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment on lines +75 to +76
KRATOS_EXPECT_DOUBLE_EQ(0.0, StressStrainUtilities::CalculateMohrCoulombShearCapacity(
stress_vector, cohesion, friction_angle));
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this the formatting produced by clang-format?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Reran the formatting.

stress_vector, cohesion, friction_angle));
}

KRATOS_TEST_CASE_IN_SUITE(CheckCalculateMCShearCapacityShearOnly, KratosGeoMechanicsFastSuite)
Copy link
Contributor

Choose a reason for hiding this comment

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

Perhaps it is more readable and consistent to use MohrCoulomb rather than MC? If yes, then the same comment applies to the next two test cases.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

@WPK4FEM WPK4FEM enabled auto-merge (squash) April 9, 2024 12:17
Copy link
Contributor

@rfaasse rfaasse left a comment

Choose a reason for hiding this comment

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

Looks good to go!

@WPK4FEM WPK4FEM merged commit d02cef8 into master Apr 9, 2024
11 checks passed
@WPK4FEM WPK4FEM deleted the geo/capacity_output branch April 9, 2024 12:19
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.

[GeoMechanicsApplication] Create MC shear and pressure capacity output.
3 participants