yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #15606
[Question #657225]: Intraction between particles
New question #657225 on Yade:
https://answers.launchpad.net/yade/+question/657225
Hi there!
I am trying to model a single sand particle under uniaxial load but my result is very low than my expectation because I know my interaction is not enough (i =18). So, I need to know how can I increase interaction in my script ( my Max load result is just 6N but I need to increase it to 60 or more).
My script:
from yade import pack
from math import *
from yade import plot
from yade import qt
vitesse=0.1
cohN=50e5
cohT=35e5
E=50e9
nu=0.3
d=2310
phi=35
rayon_s=0.005
rayon_g=0.05
rayon_boite=rayon_g+0.0001
espace=0.0
gravity=0
O.materials.append(CohFrictMat(young=E,poisson=nu,density=d,frictionAngle=radians(phi),normalCohesion=cohN,shearCohesion=cohT,label='sol'))
O.materials.append(CohFrictMat(young=10e13,poisson=0,density=10000,frictionAngle=radians(10),normalCohesion=0,shearCohesion=0,label='walls'))
mn,mx=(-rayon_boite*2,-rayon_boite,-rayon_boite*2),(rayon_boite*2,rayon_boite,rayon_boite*2)
walls=utils.aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)
sp=pack.regularHexa(yade._packPredicates.inSphere(center=(0,0,0),radius=rayon_g),gap=espace,radius=rayon_s,material='sol')
O.bodies.append(sp)
def plotAddData():
f = O.forces.f(3)[1]
d = 2*rayon_g
load = f/pow(d,2)
plot.addData(
dspl = O.bodies[3].state.displ()[1],
load = load,
)
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()),
TranslationEngine(
translationAxis=(0,-1,0),
ids=[3],
label='tl',
velocity=vitesse
),
NewtonIntegrator(damping=0.3, gravity=[0, gravity, 0]),
PyRunner(iterPeriod=10,command='plotAddData()'),
]
O.step()
for i in O.interactions:
i.phys.unp = i.geom.penetrationDepth
print len([i for i in O.interactions])
O.dt=utils.PWaveTimeStep()
O.usesTimeStepper=True
qt.Controller()
qt.View()
plot.plots = {'dspl': 'load'}
plot.plot()
O.saveTmp()
Best regards
sam
--
You received this question notification because your team yade-users is
an answer contact for Yade.