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

