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.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to