yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #03835
Re: periodic boundary
-
To:
yade-users@xxxxxxxxxxxxxxxxxxx
-
From:
"Sergei D." <sj2001@xxxxxxxxx>
-
Date:
Fri, 22 Oct 2010 18:32:54 +0400
-
In-reply-to:
<1287737543.2665.2.camel@flux>
-
User-agent:
Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.9) Gecko/20100914 SUSE/3.1.4 Thunderbird/3.1.4
Hi, could you state more question more clearly: what is your model, what
functors you use etc -- or post the script?
If you have your own Ig2 functors, you need to take in account the
shift2 parameter (by which the id2 must be shifted), and then make sure
you apply right force in the contact law.
My script. Will work with r2508.
--
Best regards,
Sergei D.
# -*- coding: utf-8
from yade import utils
sphereRadius=0.1
tc=0.001# collision time
en=0.3 # normal restitution coefficient
es=0.3 # tangential restitution coefficient
density=2700
frictionAngle=radians(35)#
params=utils.getViscoelasticFromSpheresInteraction(tc,en,es)
facetMat=O.materials.append(ViscElMat(frictionAngle=frictionAngle,**params))
sphereMat=O.materials.append(ViscElMat(density=density,frictionAngle=frictionAngle,**params))
# floor
n=5.
s=1./n
for i in range(0,n):
for j in range(0,n):
O.bodies.append([
utils.facet( [(i*s,j*s,0.1),(i*s,(j+1)*s,0.1),((i+1)*s,(j+1)*s,0.1)],material=facetMat),
utils.facet( [(i*s,j*s,0.1),((i+1)*s,j*s,0.1),((i+1)*s,(j+1)*s,0.1)],material=facetMat),
])
# Spheres
sphId=O.bodies.append([
utils.sphere( (0.5,0.5,0.2), 0.1, material=sphereMat),
#utils.sphere( (0.2,0.5,0.2), 0.1, material=sphereMat),
])
O.bodies[sphId[0]].state.vel=(0.5,0,0)
## Engines
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom()],
[Ip2_ViscElMat_ViscElMat_ViscElPhys()],
[Law2_ScGeom_ViscElPhys_Basic()],
),
GravityEngine(gravity=[0,0,-9.81]),
NewtonIntegrator(damping=0),
]
O.periodic=True
O.cell.refSize=Vector3(1,1,1)
O.dt=.01*tc
O.saveTmp()
References