New question #669485 on Yade:
https://answers.launchpad.net/yade/+question/669485

Hi there:

I need to simulate a compression of a cylinder. First, I didn't know that the 
spheres shouldn't have the same radius, so I created a cylindrical predicate 
and filled it with regularOrtho and it worked fine (the compression). Later I 
was told that in order to be realistic the spheres should have an uniform or 
normal distribution so I filled the predicate this time using randomDensePack 
but then, the compression doesn't work well. What I can see is that the spheres 
don't behave like a body but like simply spheres in space, so what I need is a 
way to make them behave as being part of a solid body. I saw an example in 
which CohFrictMat was used and I thought that that  was the solution but I get 
the same behaviour.... I post the source code I have right now...Thanks in 
advance

from yade import utils
from yade import pack
from yade import qt

sample_material=CohFrictMat(
    young=4e9
   ,poisson=1
   ,density=1400
   ,frictionAngle=radians(30)
   ,isCohesive=True
   ,normalCohesion=1e8*1.2
   ,shearCohesion=.4e8*1.2
   ,momentRotationLaw=True
   ,label='sample_mat')

O.materials.append(sample_material)

O.materials.append(FrictMat(young=210e10,poisson=.7,frictionAngle=.1,label="steel"))
 # Acero

#DATOS PROBETA
RADIO = 0.075 #7.5 cm
ALTURA = 0.3  #30 cm
radio_particulas = 0.005 #5 mm
radio_fuzz = 0.001 #1 mm

#DATOS CAJAS SUPERIOR e INFERIOR
ancho = RADIO*2 #el mismo ancho que la probeta (cilindro)
largo = RADIO*2 #el mismo largo que la probeta (cilindro)
alto=0.01 #1 cm

#DATOS CAJAS LATERALES
alto_lat = ALTURA
ancho_lat = 0.01 #1 cm
largo_lat = RADIO*2

# randomDensePack packing
pred = pack.inCylinder((0,0,0),(0,0,ALTURA),radius=RADIO)
assembly = 
pack.randomDensePack(pred,radius=radio_particulas,rRelFuzz=radio_fuzz/radio_particulas,returnSpherePack=True)
assembly.toSimulation(material='sample_mat')

upperBox = box(center=(0,0,ALTURA+alto/2), 
extents=(ancho/2,largo/2,alto/2),fixed=True,wire=True,material='steel')
bottomBox = box(center=(0,0,-alto/2), 
extents=(ancho/2,largo/2,alto/2),fixed=True,wire=True, material='steel')
frontBox = box(center=(0,-(RADIO+ancho_lat/2),alto_lat/2), 
extents=(largo_lat/2,ancho_lat/2,alto_lat/2),fixed=True,wire=True,material='steel')
backBox = box(center=(0,RADIO+ancho_lat/2,alto_lat/2), 
extents=(largo_lat/2,ancho_lat/2,alto_lat/2),fixed=True,wire=True,material='steel')
leftBox = box(center=(-(RADIO+ancho_lat/2),0,alto_lat/2), 
extents=(ancho_lat/2,largo_lat/2,alto_lat/2),fixed=True,wire=True,material='steel')
rightBox = box(center=(RADIO+ancho_lat/2,0,alto_lat/2), 
extents=(ancho_lat/2,largo_lat/2,alto_lat/2),fixed=True,wire=True,material='steel')

O.bodies.append(upperBox)
O.bodies.append(bottomBox)
O.bodies.append(frontBox)
O.bodies.append(backBox)
O.bodies.append(leftBox)
O.bodies.append(rightBox)

###########################
# ENGINES
###########################

O.engines=[
 ForceResetter(),
 
InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=1.25),Bo1_Box_Aabb()]),
 InteractionLoop(
  
[Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=1.2),Ig2_Box_Sphere_ScGeom()],
  [Ip2_FrictMat_FrictMat_FrictPhys(),
   
Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=True)],
  [Law2_ScGeom_FrictPhys_CundallStrack(),
  
Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,label='cohesiveLaw')]
  

 ),
 NewtonIntegrator(damping=0.3,gravity=(0,0,-9.81)),
 TranslationEngine(translationAxis=[0,0,-1],velocity=0.5,ids=[upperBox.id]),
 TranslationEngine(translationAxis=[0,0,1],velocity=0.5,ids=[bottomBox.id])
 
#VTKRecorder(iterPeriod=100,recorders=['spheres','boxes'],fileName='./videoFrames')
]

O.dt = utils.PWaveTimeStep()

try:
 qt.Controller()
 qt.View() 
except:
 pass

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