Exponential softening shear force after peak model implementation
Dear all,
I'm trying to obtain an exponential softening shear behavior (damageplasticity) after peak stress instead of Mohrcoulomb failure with cohesion which is currently implemented CPM model in Yade.
shear stress will be calculated as follows,
sigma_S= k_s*(1
D=1 exp(Us_
and yield criteria is
F=sigma_S Cohesion*(1D) , cohesion is scalar value say ,1e6 like that
from yield function F, I can calculate the scalar value of plastic shear displacement, but the problem is how to update the plastic shear displacement vector?
Could you please help me to solve this issue?
Question information
 Language:
 English Edit question
 Status:
 Solved
 For:
 Yade Edit question
 Assignee:
 No assignee Edit question
 Solved by:
 Jan Stránský
 Solved:
 20200519
 Last query:
 20200519
 Last reply:
 20200507
Jan Stránský (honzik) said :  #1 
Hello,
just follow standard plasticity concepts:
 you know current total displacement dTot and plastic displacement dPl
 compute elastic displacement dEl = dTot  dPl
 compute trial stress sTrial = k * dEl
 do stress return to admissible value according to F (possibly also involving change of damage) => sActual
 compute "plastic stress" sPlastic = sTrial  sActual
 plastic strain increment is simply sPlastic / k
cheers
Jan
PS: there is a bug in the current implementation [1]...
[1] https:/
chanaka Udaya (chanakaudaya) said :  #2 
Dear Dr. Jan Stransky,
I have followed the following steps to obtain scalar shear stress value(sigma_S) which is same as your sActual value magnitude
delta_us= Us.norm() Us_old.norm() ; where, Us_old is shear displacement at previous step and delta_Us: scalar shear displacement increment
sigma_
F_trial=
If F_trial>0
(
(
(
(dD/dUs_pl)= Exp(UsPl_
assuming associate flow rule to calculate plastic multiplier (d_lambda) that means, (dg/dsigmaS)= (dF/dsigmaS) where gplastic potential
d_lambda= F_trial/
delta_

D=

Based on the above calculation I only know the scalar actual shear stress,(sigmaS) and scalar shear plastic displacement, (Us_Pl), at the current step
But I need the vector value of shear plastic displacement to apply the shear force using the below equation at the contact point
Fs=k_s*
I still couldn't understand how to get that Us_Pl vector
Thanks
Jan Stránský (honzik) said :  #3 
There are some misconceptions in your formulas.
Specifically, do not use scalars where there should be vectors or even tensors (then you will not end with a scalar while expecting a vector).
below (to make it mode readable) s=stress, u=displacement, up=plastic displacement, k=stiffness
> (dF/ds)=sign(s)=+1
> dup=d_lambda*
F,g ... scalar
s ... vector
dF/ds and gd/ds ... has to be vector
dF/ds = d(s)/ds = s / s
try a rederivation. If the rederivation does not help, I suggest to switch to personal conversation, as the topic is not really Yade related..
> (dsigma_
shouldn't D be treated as a function of us_pl?
cheers
Jan
d(s) / ds =
= d(sqrt(s.dot(s)) / ds =
= 1/2 * 1/sqrt(s.dot(s)) * d(s.dot(s)) / ds =
= 1/2 * 1/s * d(s.dot(s)) / ds =
= 1/2 * 1/s * (1*s + s*1) =
= s / s
chanaka Udaya (chanakaudaya) said :  #4 
Thanks Jan Stránský, that solved my question.