← Back to team overview

yade-users team mailing list archive

Re: [Question #688250]: code for sand drop simulation

 

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

    Status: Needs information => Open

Estefany Carmona Alvarez gave more information on the question:
1. In the current simulation it is seen that the set of particles fall together, as if it were a single body. The idea is that each of the particles have their own movement.
The foundation of this project is to simulate the natural deposition of sand. (It is something similar to an hourglass, only in this case there is no time limit for the sand fall)

2. This is the sequence with the actual dimensions of the particles and
the cylindrical container where the material should be deposited.

from yade import pack, plot, utils, polyhedra_utils, export

#Altura de caida del material
hc=0


#EQUIPO

#coordenadas centro
x=0
y=0
z=0

#coordenadas extension
f=0.45
a=0.50
h=1


#estrutura del equipo de pluviacion 
O.bodies.append(geom.facetBox((x,y,z),(f,a,(h+hc)),wallMask=31,wire=True))


#PROBETA

#Radio
radius=0.03

#Altura de la probeta
height=0.05

#Probeta 1
#Coordenadas centro
xp1=0.1
yp1=0   
zp1=1

#Algoritmo YADE para crear la probeta 1
#O.bodies.append(geom.facetCylinder((xp1,yp1,(-zp1-hc+(height/2))), radius=r, height=height, fixed=True, wallMask=6, color=(0.933,0.090,.894), wire=False))

#Probeta 2
#Coordenadas centro
xp2=0
yp2=0
zp2=1

#Algoritmo YADE para crear la probeta 2
O.bodies.append(geom.facetCylinder((-xp2,yp2,(-zp2-hc+(height/2))), radius=radius, height=height, fixed=True, wallMask=6, color=(0,0,1), wire=False))

#MATERIAL

#coordenadas perimetro de particulas
#esquina inferior
xi=0.225
yi=0.225
zi=0.2

#esquina superior
xs=0.225
ys=0.25
zs=0.5

#tamano de las particulas segun el estudio de angularidad 
#sizemin particulas de menor tamano segun la angularidad
a=0.0001808 #ancho (m)
l=.0002305 #largo (m)
r=.0001449 #radio (m)

#sizemin particulas de mayor tamano segun la angularidad
A=.002285 #ancho (m)
L=.002385 #largo (m)
R=.001302 #radio (m)

#Propiedades mecanicas del material
polyMat=PolyhedraMat()
polyMat.density=1418 #kg/m3
polyMat.frictionAngle=radians(36) #rad

#Algoritmo YADE para agregarel material
O.materials.append(polyMat)


#Algoritmo YADE para crear las particulas en forma de poliedros con las dimensiones de ancho, largo y radio del ensayo de angularidad
polyhedra_utils.fillBox(((-xi),(-yi),(zi+hc)),(xs,ys,(zs+hc)),polyMat,sizemin=[a,l,r],sizemax=[A,L,R])


O.engines=[ForceResetter(),#reinicia las fuerzas para cada interaccion
InsertionSortCollider(#Funcion para detectar las colisiones entre los cuerpo presentes en la simulacion
[Bo1_Polyhedra_Aabb(),Bo1_Facet_Aabb()]), 
InteractionLoop( #Funcion para controlar las interaciones de los cuerpos presentes en la simulacion
[Ig2_Polyhedra_Polyhedra_PolyhedraGeom()], #controla las posibles combinaciones de interaccion entre los cuerpos
[Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys()], #controla las posibles combinaciones de interaccion de los mat en la simulaci
[Law2_PolyhedraGeom_PolyhedraPhys_Volumetric()]), #Son las leyes matematicas que se van a estudiar en el comportamiento de la simulacion este codigo no creo ningun cuerpo ni interaccion
GlobalStiffnessTimeStepper(defaultDt=0.01),
NewtonIntegrator(gravity=(0,0,-9.81))] #Corresponde al motor que une todas las leyes fisico matematicas de movimiento y compartamiento del material simulado

Thanks Jan

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.