Closed jgiven100 closed 2 years ago
One thing I've come across while working on the updates is that function for dp_dsigma
in the material utilities (code here) requires passing a 6x1 stress tensor:
//! Compute derivative of p in terms of stress sigma
inline const Eigen::Matrix<double, 6, 1> mpm::materials::dp_dsigma(
const Eigen::Matrix<double, 6, 1>& stress) {
Eigen::Matrix<double, 6, 1> dp_dsigma = Eigen::Matrix<double, 6, 1>::Zero();
dp_dsigma(0) = 1. / 3.;
dp_dsigma(1) = 1. / 3.;
dp_dsigma(2) = 1. / 3.;
return dp_dsigma;
}
Since this function returns a constant tensor, this can be simplified to
//! Compute derivative of p in terms of stress sigma
inline const Eigen::Matrix<double, 6, 1> mpm::materials::dp_dsigma() {
Eigen::Matrix<double, 6, 1> dp_dsigma = Eigen::Matrix<double, 6, 1>::Zero();
dp_dsigma(0) = 1. / 3.;
dp_dsigma(1) = 1. / 3.;
dp_dsigma(2) = 1. / 3.;
return dp_dsigma;
}
Are there any reasons not to make this simplification?
@jgiven100 Considering we have merged #717 can this be closed?
@kks32 Yes.
Update NorSand for Jefferies and Been (2019)
Summary
Current NorSand formulation is based primarily on Jefferies (1993) with some additions from Jefferies and Shuttle (2012). The 2nd edition of Soil Liquefaction (Jefferies and Been, 2019) provides updates for NorSand. These updates include the introduction of soil state-dilatancy property
\chi
, simplified critical friction ratioM
, and changes to volumetric coupling propertyN
.Additional internal parameters include
\psi_i
,\chi_i
, andM_i
or the state paramter image, state-dilatancy image, and critical state ratio image. The resulting new yield surface is "bullet" shaped, similar to original Cam Clay.Motivation
NorSand was initially published with Nova's rule:
but Dafalias has shown that M_{tc} is strain dependent. Thus stress-dilatancy should be updated to:
NorSand should be updated prior to exploring anisotropic stresses within the model as briefly discussed here -> https://github.com/cb-geo/mpm/discussions/713
Design Detail
Generally, the existing NorSand material class will be updated based on the improved yield surface and hardening rule. This will require:
New Private Variable
chi_image_
will be added to the material construtor (beneathMtc_
). This will be a constant sincechi_
,lambda_
, andMtc_
are all currently implemented as constants.New State Parameters
Both
M_imgae
andpsi_image
will be added to thestate_vars
dense_map. They will be initialized asNew Functions
M_image
andpsi_image
will be updated via the following new function.Updated Functions
compute_yield_state(...)
will most importantly have updates to the yield function,compute_state_variables(...)
will have updates to howp_image
is computed, andcompute_plastic_tensor(...)
will have the bulk of updates with the derivatives and plastic tensor construction changing.Drawbacks
Rationale and Alternatives
Prior Art
"Original" NorSand is already implemented within CB-Geo. Thus, most of the hard work has been completed. These changes simply look to update NorSand to the latest recommendation of Jefferies and Been (2019).
Unresolved questions
First
Previous implementation has assumed:
I'm not sure where this is coming from and if it is still an acceptable way to find the void ratio image.
Second
I am still working through how the stiffness tenosr will be updated due to the new yield surface and hardening relationship. This is the remaining key element to be completed.
Third
What is a good way to showcase differences between existing and updated model prior to merging?
Changelog