yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #08000
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.