示例#1
0
## Import wall's geometry
mat = O.materials.append(
    ViscElMat(density=Density,
              frictionAngle=frictionAngle,
              tc=tc,
              en=en,
              et=es))

sp = pack.SpherePack()
sp.makeCloud((-0.3, 0.05, 0.05), (0.3, 0.7, 0.5), rMean=0.03, rRelFuzz=0.001)
particles = O.bodies.append([sphere(c, r, mask=3) for c, r in sp])

from yade import ymport
fctIds = O.bodies.append(
    ymport.gmsh('conveyor.mesh', scale=0.001, color=(1, 0, 0)))
voxIds = O.bodies.append(
    geom.facetBunker(center=[0, 1.5, -0.7],
                     dBunker=1.1,
                     dOutput=0.2,
                     hBunker=0.2,
                     hOutput=0.2,
                     hPipe=0.1,
                     mask=5))

for i in fctIds:
    O.bodies[i].state.vel = Vector3(0, 0.2, 0)  # Set conveyor velocity

## Timestep
O.dt = .2 * tc
示例#2
0
文件: conveyor.py 项目: DEMANY/trunk
Density=1000
frictionAngle=0.4
tc = 0.001
en = 0.3
es = 0.3


## Import wall's geometry
mat=O.materials.append(ViscElMat(density=Density,frictionAngle=frictionAngle,tc=tc,en=en,et=es))

sp=pack.SpherePack()
sp.makeCloud((-0.3,0.05,0.05),(0.3,0.7,0.5),rMean=0.03, rRelFuzz=0.001)
particles=O.bodies.append([sphere(c,r,mask=3) for c,r in sp])

from yade import ymport
fctIds= O.bodies.append(ymport.gmsh('conveyor.mesh',scale=0.001,color=(1,0,0)))
voxIds= O.bodies.append(utils.geom.facetBunker(center=[0,1.5,-0.7],dBunker=1.1, dOutput=0.2,hBunker=0.2,hOutput=0.2,hPipe=0.1, mask=5))

for i in fctIds:
	O.bodies[i].state.vel=Vector3(0,0.2,0)      # Set conveyor velocity

## Timestep 
O.dt=.2*tc

## Engines 
O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom()],
		[Ip2_ViscElMat_ViscElMat_ViscElPhys()],
示例#3
0
                       height=7.0,
                       orientation=oriBody,
                       segmentsNumber=10,
                       wallMask=4,
                       **kwMeshes))
O.bodies.append(
    geom.facetCylinder((-7.0, -7.0, -5.0),
                       radius=2.0,
                       height=4.0,
                       segmentsNumber=10,
                       wallMask=4,
                       angleRange=[-math.pi * 0.2, math.pi * 1.2],
                       **kwMeshes))

oriBody = Quaternion(Vector3(0, 0, 1), (math.pi / 2))
O.bodies.append(ymport.gmsh('cone.mesh', orientation=oriBody,
                            **kwMeshes))  #generates facets from the mesh file

SpheresID = []
oriBody = Quaternion(Vector3(0, 0, 1), (math.pi / 2))
SpheresID += O.bodies.append(
    ymport.gengeoFile('LSMGenGeo.geo',
                      shift=Vector3(-7.0, -7.0, 0.0),
                      scale=1.0,
                      orientation=oriBody,
                      color=(1, 0, 1),
                      **kw))

#Demonstration of spheresPackDimensions function. The "Edge" particles are colored with blue color
geometryParameters = bodiesHandling.spheresPackDimensions(SpheresID)
for v in [geometryParameters['minId'], geometryParameters['maxId']]:
    for i in v:
示例#4
0
o.dt = 0.05 * tcIn
rotPeriod = 0.01
rotPeriodIter = int(rotPeriod / o.dt)

mat1 = O.materials.append(
    ViscElMat(
        frictionAngle=frIn,
        density=rhoIn,
        tc=tcIn,
        en=enIn,
        et=etIn,
    ))
id_HourGl = O.bodies.append(
    ymport.gmsh("hourglass.mesh",
                scale=1.0,
                material=mat1,
                color=(0, 0, 1),
                mask=5))

o.engines = [
    ForceResetter(),
    InsertionSortCollider(
        [Bo1_Sphere_Aabb(), Bo1_Facet_Aabb()],
        verletDist=(2.0e-3),
        label='collider',
        ompThreads=1),
    InteractionLoop(
        [Ig2_Sphere_Sphere_ScGeom(),
         Ig2_Facet_Sphere_ScGeom()],
        [Ip2_ViscElMat_ViscElMat_ViscElPhys()],
        [Law2_ScGeom_ViscElPhys_Basic()],
示例#5
0
O.bodies.append(geom.facetBox((12,0,-6+0.9),(1,0.7,0.9),oriBody,**kwBoxes))

oriBody = Quaternion(Vector3(0,0,1),(math.pi/2))
O.bodies.append(geom.facetBox((0,12,-6+0.9),(1,0.7,0.9),oriBody,**kwBoxes))

oriBody = Quaternion(Vector3(0,0,1),(math.pi))
O.bodies.append(geom.facetBox((-12,-12,-6+0.9),(1,0.7,0.9),oriBody,**kwBoxes))

# Example of geom.facetCylinder, facetHelix and RotationEngine usage example
oriBody = Quaternion(Vector3(1,0,0),(math.pi/2.0))
rotateIDs=O.bodies.append(geom.facetHelix((-7.0,-6.0,-5.0),radiusOuter=2.0,radiusInner=0.1,pitch=2.0,orientation=oriBody,segmentsNumber=50,angleRange=[math.pi*8.0,0],**kwBoxes))
O.bodies.append(geom.facetCylinder((-7.0,-12.0,-5.0),radius=2.0,height=7.0,orientation=oriBody,segmentsNumber=10,wallMask=4,**kwMeshes))
O.bodies.append(geom.facetCylinder((-7.0,-7.0,-5.0),radius=2.0,height=4.0,segmentsNumber=10,wallMask=4,angleRange=[-math.pi*0.2,math.pi*1.2],**kwMeshes))

oriBody = Quaternion(Vector3(0,0,1),(math.pi/2))
O.bodies.append(ymport.gmsh('cone.mesh',orientation=oriBody,**kwMeshes))#generates facets from the mesh file

SpheresID=[]
oriBody = Quaternion(Vector3(0,0,1),(math.pi/2))
SpheresID+=O.bodies.append(ymport.gengeoFile('LSMGenGeo.geo',shift=Vector3(-7.0,-7.0,0.0),scale=1.0,orientation=oriBody,color=(1,0,1),**kw))

#Demonstration of spheresPackDimensions function. The "Edge" particles are colored with blue color
geometryParameters = bodiesHandling.spheresPackDimensions(SpheresID)
for v in [geometryParameters['minId'],geometryParameters['maxId']]:
	for i in v:
		O.bodies[int(i)].shape.color = Vector3(0,0,1)

#Example of bodiesHandling.spheresModify()
hat=O.bodies.append(pack.regularOrtho(pack.inCylinder((0,0,6),(0,0,7),20*rad),radius=0.2,gap=0,color=(1,0,0))) # hat
oriBody = Quaternion(Vector3(0,1,0),(math.pi/8))
hat_upper=O.bodies.append(bodiesHandling.spheresModify(hat,shift=(0.0,0.0,1.4),scale=0.7,orientation=oriBody,copy=True))		#Duplicate the "heart", shifting, scaling and rotating it
示例#6
0
文件: watercolumn.py 项目: yade/trunk
k = 5000.0
tc = 0.001; en = 0.7; et = 0.7;
vel = 0.05
Rad = 12.0e-3
h = 2*Rad
o.dt = 0.0002


scaleF =  0.001

# Add material
mat1 = O.materials.append(ViscElMat(frictionAngle=fr,density=rho, SPHmode=True,h=h,tc=tc, en=en, et=et, KernFunctionPressure = 1, KernFunctionVisco = 1))
mat2 = O.materials.append(ViscElMat(frictionAngle=fr,density=rho, SPHmode=False,h=h,tc=tc, en=en, et=et))

id1 = O.bodies.append(ymport.gmsh("box.mesh", scale=scaleF, material=mat2, color=(1,0,0), mask = 5, wire=True))

d = 15.0*scaleF

print(d)
idSpheres = O.bodies.append(
  pack.regularHexa(
    pack.inAlignedBox(
    (0,       -2000.0*scaleF,  0.0),
    (1000*scaleF, 200*scaleF,  50.0*scaleF)),
    radius=d,gap=0.001*d, material=mat1, mask=3, color=(0,1,1)))

print(len(idSpheres))

# Add engines
o.engines = [
示例#7
0
文件: hourglass.py 项目: yade/trunk
  shutil.rmtree('cpt')
except OSError:
  pass
os.mkdir('cpt')

folderNameBase = 'cpt/' + str(descriptionIn)
folderName = folderNameBase
os.mkdir(folderNameBase)

o = Omega()
o.dt = 0.05*tcIn
rotPeriod = 0.01
rotPeriodIter = int(rotPeriod/o.dt)

mat1 = O.materials.append(ViscElMat(frictionAngle=frIn, density=rhoIn,tc=tcIn, en=enIn, et=etIn,))
id_HourGl = O.bodies.append(ymport.gmsh("hourglass.mesh",scale=1.0, material=mat1,color=(0,0,1),mask=5))

o.engines = [
  ForceResetter(),
  InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()],verletDist=(2.0e-3),label='collider',ompThreads=1),
  InteractionLoop(
    [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
    [Ip2_ViscElMat_ViscElMat_ViscElPhys()],
    [Law2_ScGeom_ViscElPhys_Basic()],
  ),
  NewtonIntegrator(damping=0,gravity=Vector3(0,0,-90.81), label='newt'),
  CircularFactory(maxParticles=1500,            #Number of generated particles
    center=(0.0e-3, 0.0e-3,20.0e-3),
    radius = (12.0e-3),
    PSDsizes = [0.5e-3],
    PSDcum   = [1.0],
示例#8
0
fr = 0.0;
rho=1000.0

k = 5.0
mu = 0.001
tc = 0.0001; en = 0.7; et = 0.7;
vel = 0.05
Rad = 15.0e-3
o.dt = 0.0002


scaleF =  0.001

# Add material
mat1 = O.materials.append(ViscElMat(frictionAngle=fr,density=rho, SPHmode=True,mu=mu,tc=tc, en=en, et=et))
id1 = O.bodies.append(ymport.gmsh("box.mesh", scale=scaleF, material=mat1, color=(1,0,0), mask = 1, wire=True))

d = 15.0*scaleF

print d
idSpheres = O.bodies.append(
  pack.regularHexa(
    pack.inAlignedBox(
    (0,       -2000.0*scaleF,  0.0),
    (1000*scaleF, 200*scaleF,  50.0*scaleF)),
    radius=d,gap=0.01*d, material=mat1, mask=1, color=(0,1,1)))


print len(idSpheres)

# Add engines
示例#9
0
              et=et,
              KernFunctionPressure=1,
              KernFunctionVisco=1))
mat2 = O.materials.append(
    ViscElMat(frictionAngle=fr,
              density=rho,
              SPHmode=False,
              h=h,
              tc=tc,
              en=en,
              et=et))

id1 = O.bodies.append(
    ymport.gmsh("box.mesh",
                scale=scaleF,
                material=mat2,
                color=(1, 0, 0),
                mask=5,
                wire=True))

d = 15.0 * scaleF

print d
idSpheres = O.bodies.append(
    pack.regularHexa(pack.inAlignedBox(
        (0, -2000.0 * scaleF, 0.0),
        (1000 * scaleF, 200 * scaleF, 50.0 * scaleF)),
                     radius=d,
                     gap=0.001 * d,
                     material=mat1,
                     mask=3,
                     color=(0, 1, 1)))