← Back to team overview

yade-users team mailing list archive

[Question #406774]: Translation engine can not work

 

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

Hi,
I am a new user of YADE, and I want to simulate a single particle crushing under compression. But, the upper platen can not move without any error.my code is as follows:
please help me to solve this trouble, many thanks.


from yade import ymport
from yade import pack
from yade import qt
##### define materials for particles assembly and rigid platen #####
rock=O.materials.append(CohFrictMat(young=5.98e7,poisson=0.3,density=2678,frictionAngle=0.5,normalCohesion=7.9e6,shearCohesion=7.9e6,momentRotationLaw=True))
steel=O.materials.append(FrictMat(young=3.06e11,poisson=0.29,density=7861,frictionAngle=0.545))
# create a partcicle assembly in a sphere
pred=pack.inSphere((0,0,0.05),0.035)
spheres=pack.randomDensePack(pred,radius=0.001,spheresInCell=100,rRelFuzz=0.2)
O.bodies.append(spheres)
# import platens for this simulation
bottom_platen=O.bodies.append(ymport.gmsh('Desktop/single_particle/bottom_platen.mesh',scale=0.001,color=(1,1,0),material=steel))
upper_platen=O.bodies.append(ymport.gmsh('Desktop/single_particle/upper_platen.mesh',scale=0.001,color=(1,0,0),material=steel))
##### engines #####
O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb()]),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=1.1),Ig2_Facet_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom()],
		[Ip2_FrictMat_FrictMat_FrictPhys(),Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True)],
		[Law2_ScGeom_FrictPhys_CundallStrack(),Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]
	),
	TranslationEngine(translationAxis=(0,0,-1),velocity=0.09,ids=upper_platen,label='trans'),
	NewtonIntegrator(gravity=(0,0,-9.81)),
	#VTKRecorder(fileName='post/comp-',recorders=['all'],iterPeriod=100)
]
##### 3D view & controller
qt.View()
qt.Controller()
##### set timestep & run this simulation
O.dt=0.3*PWaveTimeStep()
#O.run()

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.