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

    Status: Open => Answered

Luc Scholtès proposed the following answer:
Alright,

>From what I understand, your problem is related to the generation of a
packing of particles using the pack.inGtsSurface().

I am sorry but I don't understand this:

"But it's doesn't help me because he was adding in left out space which
doesn't consist facets."

I am a bit clueless but I'll give you an example script below that works
for a simple mesh (a cube) and I would suggest that you try to make the
script work (you will have to create the cube.gts on your own) before
going into a more complex configuration. At first, I would suggest that
you try to generate a "regular packing" in your previously generated
cube (using the regularHexa() function) and then, when you are sure that
it works, you can experiment with the random packing functions.


###

from yade import pack, export, ymport
import gts, os.path, locale

#### control parameters
mesh='cube' #name of gts mesh
sizeRatio=10. # defines discretisation (sizeRatio=meshLength/particleDiameter)

#### import mesh
locale.setlocale(locale.LC_ALL,'en_US.UTF-8')   #gts is locale-dependend.  If, 
for example, german locale is used, gts.read()-function does not import floats 
normally
surface=gts.read(open(mesh+'.gts'))

print 'closed? ', surface.is_closed()

#### generate packing
if surface.is_closed():
        pred=pack.inGtsSurface(surface)
        # get characteristic dimensions
        aabb=pred.aabb()
        dim=pred.dim()
        center=pred.center()
        minDim=min(dim[0],dim[1],dim[2])
        # define discretisation
        radius=minDim/(2*sizeRatio)
        print center, dim, ' | minDim=', minDim, ' | diameter=', 2*radius
        ### packing functions
        
O.bodies.append(pack.regularHexa(pred,radius=radius,gap=0.,color=(0.9,0.8,0.6)))
        
#O.bodies.append(pack.regularOrtho(pred,radius=radius,gap=0.,color=(0.9,0.8,0.6)))
        # non periodic packing
        
#O.bodies.append(pack.randomDensePack(pred,radius=radius,rRelFuzz=0.3,useOBB=True,memoizeDb='/tmp/gts-triax-packings.sqlite',returnSpherePack=False,color=(0.9,0.8,0.6)))
 # returnSpherePack=True(?),cropLayers=5 (not to use),'
        # periodic packing
        
#O.bodies.append(pack.randomDensePack(pred,radius=radius,rRelFuzz=0.3,useOBB=True,spheresInCell=5000,memoizeDb='/tmp/gts-triax-packings.sqlite',returnSpherePack=False,color=(0.9,0.8,0.6)))
 # returnSpherePack=True(?),cropLayers=5 (not to use),'
        ### if you want to translate the surface away from the packing
        #surface.translate(dim[0],0,0) 
        
#### import mesh
O.bodies.append(pack.gtsSurface2Facets(surface,color=(0.8,0.8,0.8),wire=True))

#### export packing in a text file
export.text(mesh+'_'+str(int(sizeRatio))+'.spheres')

#### open the GUI to see the packing and the mesh

-- 
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     : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to