← Back to team overview

yade-users team mailing list archive

Re: [Question #234129]: plastic energy dissipation

 

Question #234129 on Yade changed:
https://answers.launchpad.net/yade/+question/234129

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hmm, it seems I deleted i.phys.normalForce.. should be:


Ft=i.phys.shearForce
O.step()
du=i.geom.shearInc
kt=i.phys.ks
Fn=i.phys.normalForce
Ftt=Ft-kt*du
maxFs=Fn.norm()*i.phys.tangensOfFrictionAngle
if(Ftt.norm() > maxFs):
  ratio = maxFs / Ftt.norm()
  trialForce=Ftt
  Ftt *= ratio
  e=((1/kt)*(trialForce-Ftt)).dot(Ftt)
  E=E+e



> i=O.interactions[975,2702]
> Ft=i.phys.shearForce  # -- Ft=(-263.88, -780.43,0)
> O.step() # now you use the same value of Ft as in c++
> du=i.geom.shearInc
> kt=i.phys.ks
> Ftt=Ft-kt*du   # --Ftt=(-274.83, -812.82, 0)
> maxFs=Fn.norm()*i.phys.tangensOfFrictionAngle  #--maxFs=223.55
> If (Ftt.norm() > maxFs):
>       ratio = maxFs / Ftt.norm()
>       trialForce=Ftt
>       Ftt *= ratio  # Ftt=(-71.61, -211.77,0)
>       e=((1/kt)*(trialForce-Ftt)).dot(Ftt)
>       i.phys.shearForce     # -- i.phys.shearForce =(-263.88, -780.43,0)
>
>
the missing of Fn may be a problem aslo here. i.phys.shearForce.norm()  >
maxFs, which should not be..

In case it does not help, please insert to the email the working script (if
it is too large, only the important parts, but such that it works) so I (or
others) can try it.
Thanks
Jan

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.