Describe the PR
I found a bug related to the dtheta_dsigma sign I had included in the previous NorSand implemention.
Previously we were passing compression positive stresses from NorSand -> dtheta_dsigma(...), BUT dtheta_dsigma(...) returns the same Vector6d regardless of being passed compression positive or tension positive stresses. So this is the incorrect way to account for the incompatibility of sign conventions between NorSand and material utility.
Therefore, we need a -1. coefficient infront of dtheta_dsigma(...) to account for incompatibility of 2 sign conventions
Numerically Approximated Validation
Consider following stress state (tension positive):
-1.5
-1.6
-1.7
-1.8
0.0
0.0
Lode angle is computed via material utility (cosine convention): 0.475541833917983
Then change the stress state a bit (tension positive):
-1.5 - 1e-10
-1.6
-1.7
-1.8
0.0
0.0
Lode angle is computed via material utility (cosine convention): 0.47554183393394
Using approximate derivatives for the first term in dtheta_dsigma gives
Describe the PR I found a bug related to the
dtheta_dsigma
sign I had included in the previous NorSand implemention.Previously we were passing compression positive stresses from NorSand ->
dtheta_dsigma(...)
, BUTdtheta_dsigma(...)
returns the same Vector6d regardless of being passed compression positive or tension positive stresses. So this is the incorrect way to account for the incompatibility of sign conventions between NorSand and material utility.Therefore, we need a
-1.
coefficient infront ofdtheta_dsigma(...)
to account for incompatibility of 2 sign conventionsNumerically Approximated Validation Consider following stress state (tension positive):
Lode angle is computed via material utility (cosine convention):
0.475541833917983
Then change the stress state a bit (tension positive):
Lode angle is computed via material utility (cosine convention):
0.47554183393394
Using approximate derivatives for the first term in
dtheta_dsigma
giveswhich approximately matches the first value of the proposed
-1. * mpm::materials::dtheta_dsigma(stress)
in terms of magnitude and signSubsequent terms can be likewise computed.
Related Issues/PRs N/a
Additional context N/a