yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #24833
[Question #695164]: Interparticle spacing
New question #695164 on Yade:
https://answers.launchpad.net/yade/+question/695164
Hello,
I would like to compute the spacing between adjacent individual particles (spheres) in a given packing (i.e. interparticle spacing). To do that, I thought about getting the length of the sides from the Delaunay triangulation process in the FlowEngine. So I created a packing of spheres, then run the flow engine to do the triangulation, then I want to get the length of the side. My code is shown below and I am using Yadedaily in running this code. My questions are:
1- Is there a more efficient approach to get the interparticle spacing?
2- I found two functions in Yade documentation [1]: getVertices and printVertices, are those vertices belongs to the Delaunay triangulation (i.e. the vertices of the tetrahedra that forms the mesh for flow modeling)?
3- What are the values that I get from getVertices function? are they the Ids of the cells?
4- printVertices gives a txt file with six columns: id, x, y, z, alpha, fictitious. What does alpha and id mean?
Thank you,
Othman
[1] https://yade-dem.org/doc/Yade.pdf
-----------
from yade import pack
P=1 #Pa
visc=1e-3 #Pa.sec - taken from Catalano, Chareyre, Bathelemy (2014)
density=1000 #kg/m3
g=9.81 #m/s2
sp_radius=2.36/1000
########## create walls ##########
mnx=0
mny=0
mnz=0
mxx=50.8/1000
mxy=50.8/1000
mxz=50.8/1000
mn,mx=Vector3(mnx,mny,mnz),Vector3(mxx,mxy,mxz)
walls=aabbWalls([mn,mx],thickness=0)
wallIds=O.bodies.append(walls)
yade.qt.View()
########## spheres ##########
sp=pack.SpherePack()
sp.makeCloud(mn,mx,rMean=sp_radius)
sp.toSimulation()
Height=max(utils.aabbDim())
dP=P/Height #Pa/m
##check how to fix the particles
#for i in sp:
# body= O.bodies[i]
# body.state.blockedDOFs='xyzXYZ'
print ('porosity = ', utils.porosity())
########## flow engine ##########
flow=FlowEngine()
flow.useSolver=3
flow.permeabilityFactor=1
flow.viscosity=visc
flow.bndCondIsPressure=[0,0,0,0,0,1]
flow.bndCondValue=[0,0,0,0,0,P]
flow.boundaryUseMaxMin=[1,1,1,1,1,1]
O.dt=1e-6
O.dynDt=False
flow.emulateAction()
#get verticies positions
flow.printVertices()
n=flow.nCells()
x=[]
for i in range (n):
l=flow.getVertices(i)
x.append(l)
print (x)
--
You received this question notification because your team yade-users is
an answer contact for Yade.