← Back to team overview

yade-users team mailing list archive

Re: [Question #266828]: How to reset the repulsive forces at the beginning of a compression test

 

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

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hi Damien,

it seems like a bug in RegularHexa function. After adding

O.step()
for i in O.interactions: print i.geom.penetrationDepth

at the end of your code, I got values like 1.73472347598e-18, which is ok
and is the result of rounding error, but also values 0.000757886244659,
which is definitely not ok. Feel free to report the bug.
Cheers
Jan


2015-05-12 17:16 GMT+02:00 GERARD Damien <
question266828@xxxxxxxxxxxxxxxxxxxxx>:

> New question #266828 on Yade:
> https://answers.launchpad.net/yade/+question/266828
>
> Hello,
> This question is related to question #264456 :
> https://answers.launchpad.net/yade/+question/264456
> I created a spherical assembly made up of smaller spheres bounded with
> cohesion which I submit to compression. The ojective of the simulations is
> to reproduce failure in the spherical assembly induced by successive
> decohesion.
> Due to initial interpenetration, there is some repulsive forces that broke
> the cohesion at the beginnig of the test (If I increase the gap between
> balls there are not enough contacts between spheres.
>
> So I though to reset the repulsive forces to solve this problem, by using
> unp equal to penetration depth.
> But I couldn't manage to succeed in this task.
>
> Is anyone can help me to do this?
>
> thanks.
>
> Regards, Damien
>
> this is piece of my code (I left only the creation of the sphere
> assembly-the problem appears even without loading this assembly):
>
> from yade import pack
> from math import *
>
> cohN=50e6
> cohT=35e6
> E=50e9
> nu=0.3
> d=2310
> phi=35
> rayon_s=0.005
> rayon_g=0.05
>
>
> O.materials.append(CohFrictMat(young=E,poisson=nu,density=d,frictionAngle=radians(phi),normalCohesion=cohN,shearCohesion=cohT,label='sol'))
>
>
> sp=pack.regularHexa(yade._packPredicates.inSphere(center=(0,0,0),radius=rayon_g),gap=0,radius=rayon_s,material='sol')
> O.bodies.append(sp)
>
> O.engines=[
>         ForceResetter(),
>
> InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=1),Bo1_Box_Aabb()]),
>         InteractionLoop(
>
> [Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=1),Ig2_Box_Sphere_ScGeom6D()],
>
> [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False),Ip2_FrictMat_FrictMat_FrictPhys()],
>                 [Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]),
>
> GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=5,timestepSafetyCoefficient=0.8,
> defaultDt=utils.PWaveTimeStep()),
>         NewtonIntegrator(damping=0.3)]
>
> O.dt=utils.PWaveTimeStep()
> O.usesTimeStepper=True
>
> --
> 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     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>

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