## 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
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()],
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.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()],
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
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 = [
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],
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
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)))