yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #08847
Re: [Question #226198]: question for the Clump with facet
Question #226198 on Yade changed:
https://answers.launchpad.net/yade/+question/226198
Description changed to:
Dear Sir,
I have now some Problems with Clump. I will try Box-Experiment with Clump and write the Code. Butthe Prigramme stop wth warn Clump::updateProperties: NaNs in eigen-decomposition of inertia matrix?!. Can anyone help me. Thank you.
from yade import utils
from numpy import linspace
from numpy import arange
import gts
import itertools
from yade import pack
rMean=.0096
rRelFuzz=.0016
maxLoad=4500
frictionAngleSt=radians(35)
frictionAngleBo=radians(23.5)
a=0.05
id_Mat=O.materials.append(FrictMat(density=2650,young=175e6,poisson=0.3,frictionAngle=frictionAngleBo))
Mat=O.materials[id_Mat]
steel=O.materials.append(FrictMat(young=210e9, poisson=.25,frictionAngle=frictionAngleSt,density=8000))
from yade import pack, plot,qt
sp=pack.SpherePack()
sp.makeCloud((0,0,0),(0.3,0.3,0.3250),rMean=.0096,rRelFuzz=.0016,periodic=False)
O.bodies.append([sphere(a,r,material=Mat) for a,r in sp])
print len(sp),' particles generated.'
def makeClumpTemplate():
relRadList1 = [.007,.0036]
relPosList1 = [[0,0,0],[0.009,0,0]]
relRadList2 = [.0036,0.007,.0036]
relPosList2 = [[0.0060,0,0],[0,0,0],[-0.0060,0,0]]
templates= []
templates.append(clumpTemplate(relRadii=relRadList1,relPositions=relPosList1))
templates.append(clumpTemplate(relRadii=relRadList2,relPositions=relPosList2))
O.bodies.replaceByClumps(templates,[.2,.3])
fIDSI=O.bodies.append(utils.geom.facetBox((.15,.15,.135),(.15,.15,.045),wallMask=15,material=steel))
fIDSII=O.bodies.append(utils.geom.facetBox((.15,.15,.045),(.15,.15,.045),wallMask=31,material=steel))
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
NewtonIntegrator(damping=0.7,gravity=[0,0,-9.810]),
qt.SnapshotEngine(iterPeriod=60000,fileBase='/home/wuxin/Desktop/Clump/78Fr07-',label='snapshooter'),
PyRunner(command='checkUnbalanced()',realPeriod=1,label='checker'),
TranslationEngine(translationAxis=[1,0,0],velocity=0,ids=fIDSI,label='Transl'),
]
O.dt=.25*utils.PWaveTimeStep()
def AngVel():
for b in O.bodies:
if isinstance(b.shape,Sphere):
b.state.angVel[1]=0
def checkUnbalanced():
if O.iter<240000: return
fIDSIII=O.bodies.append(utils.wall(max([b.state.pos[2]+b.shape.radius for b in O.bodies if isinstance(b.shape,Sphere)]),axis=2,sense=-1,material=spheremat))
global plate
plate=O.bodies[fIDSIII]
plate.state.vel=(0,0,-.025)
O.engines=O.engines+[PyRunner(command='addPlotData()',iterPeriod=1000)]
checker.command='unloadPlate()'
checker.command='makeClumpTemplate()'
def unloadPlate():
if abs(O.forces.f(plate.id)[2])>=maxLoad:
O.engines=O.engines+[PyRunner(command='ServoContorl()',iterPeriod=1)]
O.engines=O.engines+[PyRunner(command='AngVel()',iterPeriod=1)]
checker.command='stopUnloading()'
plot.plots={'i':('w','Fz',),'PX':('Fx',)}
plot.plot()
qt.Controller()
qt.View()
r=qt.Renderer()
O.run()
utils.waitIfBatch()
--
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.