Intraction between particles

Asked by Sam

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 between my particles 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

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Sam
Solved:
Last query:
Last reply:
Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#1

>my Max load result is just 6N but I need to increase it to 60 or more

Increase material strength by 10 ore more?
B

Revision history for this message
Jan Stránský (honzik) said :
#2

Hi Sam,

Bruno's answer is perfect, it answered your question 100%, but as I knew your previous problem, you actually asked something totally different..

If you want to get a good answer, try to create a good question.
Before sending it, read it carefully and imagine you know nothing about the problem (try to describe it in relevant level of details). Also imagine you don't want to read/try Python code, so the question and problem should be understandable without the script.

> I am trying to model a single sand particle

try not to use the same word (particle) in several meanings (a bunch of DEM particles and DEM particle itself). Use e.g.
my suggestion: ... to model a single grain. It consist of many (742 in my specific case) spheres. I am using CohFrictMat.

> but my result is very low

what "result" is? strength? stiffness? low number of particles?
It is clear from the end of the question, but why not to make it clear directly?

> I know my interaction is not enough (i =18)

For a newcomer to the problem, this sentence makes absolutely no sense... What does i=18 mean? Of course, one (!) interaction is not enough to model a sand grain..
my suggestion: I know the NUMBER of interactionSSSS is not enough. I have 742 spheres in the grain, but only 18 interactions.

> how can I increase interaction between my particles

again, increase what? naturally one would understand strength.
my suggestion: ... increase NUMBER of interactionSSSS?

cheers
Jan

Revision history for this message
Sam (sambahmani) said :
#3

Thank you Jan