yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #12718
[Branch ~yade-pkg/yade/git-trunk] Rev 3896: examples for cylinder and cylinderConnection
------------------------------------------------------------
revno: 3896
committer: Klaus Thoeni <klaus.thoeni@xxxxxxxxx>
timestamp: Fri 2016-06-10 21:12:01 +1000
message:
examples for cylinder and cylinderConnection
added:
examples/cylinders/
examples/cylinders/bendingbeams.py
examples/cylinders/cylinder-cylinder.py
--
lp:yade
https://code.launchpad.net/~yade-pkg/yade/git-trunk
Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== added directory 'examples/cylinders'
=== added file 'examples/cylinders/bendingbeams.py'
--- examples/cylinders/bendingbeams.py 1970-01-01 00:00:00 +0000
+++ examples/cylinders/bendingbeams.py 2016-06-10 11:12:01 +0000
@@ -0,0 +1,62 @@
+# encoding: utf-8
+"An example showing various bending beams."
+
+from yade.gridpfacet import *
+
+#### Parameters ####
+L=10. # length of the beam
+n=12 # number of nodes used to generate the beam
+r=L/50. # radius of the beam element
+
+#### Engines ####
+O.engines=[
+ ForceResetter(),
+ InsertionSortCollider([Bo1_GridConnection_Aabb()]),
+ InteractionLoop(
+ [Ig2_GridNode_GridNode_GridNodeGeom6D()],
+ [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False)],
+ [Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]
+ ),
+ NewtonIntegrator(gravity=(0,0,-10),damping=0.5,label='newton')
+]
+
+#### Creat materials and set different properties ####
+O.materials.append(CohFrictMat(young=1e6,poisson=0.3,density=1e1,frictionAngle=10,normalCohesion=1e7,shearCohesion=1e7,momentRotationLaw=False,label='mat1'))
+O.materials.append(CohFrictMat(young=1e6,poisson=0.3,density=1e1,frictionAngle=10,normalCohesion=1e7,shearCohesion=1e7,momentRotationLaw=True,label='mat2'))
+O.materials.append(CohFrictMat(young=3e6,poisson=0.3,density=1e1,frictionAngle=10,normalCohesion=1e7,shearCohesion=1e7,momentRotationLaw=True,label='mat3'))
+O.materials.append(CohFrictMat(young=1e7,poisson=0.3,density=1e1,frictionAngle=10,normalCohesion=1e7,shearCohesion=1e7,momentRotationLaw=True,label='mat4'))
+
+#### Vertices ####
+vertices1=[]
+vertices2=[]
+vertices3=[]
+vertices4=[]
+for i in range(0,n):
+ vertices1.append( ([i*L/n,0,0]) )
+ vertices2.append( ([i*L/n,1,0]) )
+ vertices3.append( ([i*L/n,2,0]) )
+ vertices4.append( ([i*L/n,3,0]) )
+
+#### Create cylinder connections ####
+nodesIds=[]
+cylIds=[]
+cylinderConnection(vertices1,r,nodesIds,cylIds,color=[1,0,0],highlight=False,intMaterial='mat1')
+cylinderConnection(vertices2,r,nodesIds,cylIds,color=[0,1,0],highlight=False,intMaterial='mat2')
+cylinderConnection(vertices3,r,nodesIds,cylIds,color=[0,0,1],highlight=False,intMaterial='mat3')
+cylinderConnection(vertices4,r,nodesIds,cylIds,color=[1,1,1],highlight=False,intMaterial='mat4')
+
+#### Set boundary conditions ####
+for i in range(0,4):
+ O.bodies[nodesIds[i*n]].dynamic=False
+# O.bodies[nodesIds[i*n]].state.blockedDOFs='xyzXYZ'
+# O.bodies[nodesIds[i*n]].state.blockedDOFs='xyz'
+
+#### For viewing ####
+from yade import qt
+qt.View()
+
+#### Set a time step ####
+O.dt=1e-05
+
+#### Allows to reload the simulation ####
+O.saveTmp()
=== added file 'examples/cylinders/cylinder-cylinder.py'
--- examples/cylinders/cylinder-cylinder.py 1970-01-01 00:00:00 +0000
+++ examples/cylinders/cylinder-cylinder.py 2016-06-10 11:12:01 +0000
@@ -0,0 +1,64 @@
+# encoding: utf-8
+"An example showing how to create two cylinders which are interacting."
+
+from yade.gridpfacet import *
+
+#### Parameters ####
+L=1. # length of the cylinder element
+r=0.1 # radius of the cylinder element
+phi=30. # friction angle
+E=1e6 # Young's modulus
+
+#### Engines ####
+O.engines=[
+ ForceResetter(),
+ InsertionSortCollider([
+ #Bo1_Sphere_Aabb(),
+ Bo1_GridConnection_Aabb(),
+ ]),
+ InteractionLoop([
+ Ig2_GridNode_GridNode_GridNodeGeom6D(),
+ Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
+ ],
+ [
+ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), # internal cylinder physics
+ Ip2_FrictMat_FrictMat_FrictPhys() # physics for external interactions, i.e., cylinder-cylinder interaction
+ ],
+ [
+ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), # contact law for "internal" cylider forces
+ Law2_GridCoGridCoGeom_FrictPhys_CundallStrack() # contact law for cylinder-cylinder interaction
+ ]
+ ),
+ NewtonIntegrator(gravity=(-0.,0,-10),damping=0.5,label='newton'),
+]
+
+#### Creat materials ####
+O.materials.append( CohFrictMat( young=E,poisson=0.3,density=1000,frictionAngle=radians(phi),normalCohesion=1e10,shearCohesion=1e10,momentRotationLaw=True,label='cMat' ) ) # material to create the gridConnections
+O.materials.append( FrictMat( young=E,poisson=0.3,density=1000,frictionAngle=radians(phi),label='fMat' ) ) # material for general interactions
+
+#### Create cylinders ####
+nodesIds=[]
+cylIds=[]
+cylinder((0,0,0),(L,0,0),radius=r,nodesIds=nodesIds,cylIds=cylIds,
+ fixed=True,color=[1,0,0],intMaterial='cMat',extMaterial='fMat')
+cylinder((L/4,2*L/3,L),(L/4,-L/3,L),radius=r,nodesIds=nodesIds,cylIds=cylIds,
+ fixed=False,color=[0,1,0],intMaterial='cMat',extMaterial='fMat')
+cylinder((0,2*L/3,L),(0,-L/3,L),radius=r,nodesIds=nodesIds,cylIds=cylIds,
+ fixed=False,color=[0,1,0],intMaterial='cMat',extMaterial='fMat')
+cylinder((L/2,L/2,L),(L/2,-L/2,L),radius=r,nodesIds=nodesIds,cylIds=cylIds,
+ fixed=False,color=[0,1,1],intMaterial='cMat',extMaterial='fMat')
+cylinder((3*L/4,L/3,L),(3*L/4,-2*L/3,L),radius=r,nodesIds=nodesIds,cylIds=cylIds,
+ fixed=False,color=[0,0,1],intMaterial='cMat',extMaterial='fMat')
+cylinder((L,L/3,L),(L,-2*L/3,L),radius=r,nodesIds=nodesIds,cylIds=cylIds,
+ fixed=False,color=[0,0,1],intMaterial='cMat',extMaterial='fMat')
+
+#### For viewing ####
+from yade import qt
+qt.View()
+Gl1_Sphere.stripes=True
+
+#### Set a time step ####
+O.dt=1e-06
+
+#### Allows to reload the simulation ####
+O.saveTmp()