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.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to