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

Andrea Puglisi posted a new comment:
In particular I don't undestand why a simple grid (connection of nodes
and cylinders) works reasonably well, it does not work anymore as soon
as I create pfacets.  This is a minimal example

---------------------------

from yade.gridpfacet import *

##### Parameter ####
r=1     # base radius
rr=0.1  #cyl radius
phi=30. # friction angle
E=1e7   # Young's modulus

#### Engines ####
O.engines=[
 ForceResetter(),
 InsertionSortCollider([
  Bo1_Sphere_Aabb(),
  Bo1_Wall_Aabb(),
  Bo1_PFacet_Aabb(),
 ]),
 InteractionLoop([
  Ig2_GridNode_GridNode_GridNodeGeom6D(),#internal
  Ig2_Wall_Sphere_ScGeom(),#cyl-wall
  Ig2_Sphere_PFacet_ScGridCoGeom(), #cyl-facet
 ],
 [
  
Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False),
 # internal
  Ip2_FrictMat_FrictMat_FrictPhys()     # external (cyl-wall, cyl-facet)
 ],
 [
  Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),  # contact law for "internal" 
cylinder forces
  Law2_ScGeom_FrictPhys_CundallStrack(),        # contact law for "external" 
cylinder forces
 ]
 ),
 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 box and wall ####
wallId = O.bodies.append( wall(position=(0,0,0),sense=0, 
axis=2,color=[0,1,1],material='fMat') )
O.bodies[wallId].state.vel=Vector3(1.,0,0)
O.bodies[wallId].mask=3

#### Create cylinder ####
nodeIds=[]
cylIds=[]
nodeIds.append( O.bodies.append( 
gridNode([0,2*r,r],rr,wire=False,fixed=False,material='cMat',color=[1,0,0]) ) )
nodeIds.append( O.bodies.append( 
gridNode([0,2*r,3*r],rr,wire=False,fixed=False,material='cMat',color=[1,0,0]) ) 
)
nodeIds.append( O.bodies.append( 
gridNode([0,4*r,r],rr,wire=False,fixed=False,material='cMat',color=[1,0,0]) ) )

for id in nodeIds:
  O.bodies[id].bounded=1
  O.bodies[id].mask=2

cylIds.append( O.bodies.append( 
gridConnection(nodeIds[1],nodeIds[0],rr,color=[1,0,0],material='fMat') ) )
cylIds.append( O.bodies.append( 
gridConnection(nodeIds[2],nodeIds[1],rr,color=[1,0,0],material='fMat') ) )
cylIds.append( O.bodies.append( 
gridConnection(nodeIds[0],nodeIds[2],rr,color=[1,0,0],material='fMat') ) )

#COMMENT THE FOLLOWING LINE AND PHYSICS SEEMS WORK WELL - OTHERWISE IT FALLS 
THROUGH THE FLOOR
O.bodies.append( 
pfacet(nodeIds[0],nodeIds[1],nodeIds[2],wire=False,color=[1,1,0],highlight=False,material='fMat')
 )

#### For viewing ####
from yade import qt
qt.View()
Gl1_Sphere.stripes=True
qtr = qt.Renderer()

#### Set a time step ####
O.dt=1e-05

#### Allows to reload the simulation ####
O.saveTmp()

-- 
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

Reply via email to