Simualtion for the Workprocess of a Shovel

Asked by Xin Wu

Dear all,
I have tried a workprocess of a shovel. In first 5800 steps work the Simulation stable, but after 6000 steps comes it a worning 'Segmentation fault (core dumped)
wuxin@37l4247e29-32:~/Desktop/Desktop/examples/Schaufel/Schaufel_Ra_2$'
 and brocken the simultion.
It is the Code:
Part 1,
from yade import utils
from numpy import linspace
from numpy import arange
import gts
import itertools
from yade import geom,pack,qt,plot
## PhysicalParameters
Density=2400
frictionAngle=radians(35)
frictionAngleSt=radians(35)
frictionAngleBo=radians(23.5)
tc = 0.001
en = 0.3
es = 0.3
rMean=.0096
rRelFuzz=.0016
rRelFuzz=0.3
VelocityX=0

spheremat=O.materials.append(FrictMat(density=2600,young=175e6,poisson=0.3,frictionAngle=frictionAngleBo))
steel=O.materials.append(FrictMat(young=210e9, poisson=.25,frictionAngle=frictionAngle,density=8000))
kwMeshes={'color':[1,1,0],'wire':False,'dynamic':False,'material':steel}

from yade import ymport

sp=pack.SpherePack()
sp.makeCloud((1,0,0),(2,.5,0.8),rMean=rMean,rRelFuzz=rRelFuzz)
sp.toSimulation(material=spheremat)

wallmat=O.materials.append(FrictMat(density=1000,young=175e6,poisson=0.4,frictionAngle=0.1))
O.bodies.append(utils.facetBox((1, 0.25, 0.25),(1,0.25,0.25),wallMask=30,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.4,gravity=(0,0,-9.81),),
PyRunner(command='Save()',iterPeriod=1,label='checker'),
qt.SnapshotEngine(iterPeriod=60000,fileBase='/home/wuxin/Desktop/Desktop/examples/Schaufel/Schaufel_Ra_2/s80-',label='snapshooter'),
]
O.dt=.3*utils.PWaveTimeStep()

def Save():
    if utils.unbalancedForce() >.11: return
    if max([b.state.pos[2]+b.shape.radius for b in O.bodies if isinstance(b.shape,Sphere)])>0.48: return
    checker.command='Save_Teil1()'

def Save_Teil1():
    O.save('/home/wuxin/Desktop/Desktop/examples/Schaufel/Schaufel_Ra_2/KIES.xml.bz2')
    O.saveTmp()
    O.pause()

qt.Controller()

qt.View()

O.run()

Part 2,

O.load('/home/wuxin/Desktop/Desktop/examples/Schaufel/Schaufel_Ra_2/KIES.xml.bz2')

import math
from yade import utils
from numpy import linspace
from numpy import arange
import gts
import itertools
from yade import geom,pack,qt,plot
## PhysicalParameters
Density=2650
frictionAngle=radians(35)
frictionAngleSt=radians(35)
frictionAngleBo=radians(23.5)
tc = 0.001
en = 0.3
es = 0.3
rMean=.0096
rRelFuzz=.0016
rRelFuzz=0.3
VelocityX=0

spheremat=O.materials.append(FrictMat(density=2650,young=175e6,poisson=0.3,frictionAngle=frictionAngleBo))
steel=O.materials.append(FrictMat(young=210e9, poisson=.25,frictionAngle=frictionAngle,density=8000))
kwMeshes={'color':[1,1,0],'wire':False,'dynamic':False,'material':steel}

from yade import ymport
ori = Quaternion(Vector3(1,0,0),math.pi/2.0)
fctIds=O.bodies.append(ymport.gmsh('loeffel-0.mesh',shift=Vector3(0.575,0.25,0.487),scale=0.05,orientation=ori, **kwMeshes))

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.4,gravity=(0,0,-9.81),),
PyRunner(command='addplotdata()',iterPeriod=10),
CombinedKinematicEngine(ids=fctIds,comb=[TranslationEngine(translationAxis=[1,0,0],velocity=0,label='Tran1'),TranslationEngine(translationAxis=[0,0,1],velocity=0,label='Tran2'),RotationEngine(rotationAxis=[0,-1,0],rotateAroundZero=True,angularVelocity=0,zeroPoint=(0,0,0))],label='Engin'),

PyRunner(command='Kinematik_Kontroll()',iterPeriod=1,label='checker'),
PyRunner(command='RTranslation()',iterPeriod=1,label='checker3'),
qt.SnapshotEngine(iterPeriod=6000,fileBase='/home/wuxin/Desktop/Desktop/examples/Schaufel/Schaufel_Ra_2/s80T2A-',label='snapshooter'),
]

def Kinematik_Kontroll():
    for n in fctIds:
        PX4=(O.bodies[n].state.pos[2]-O.bodies[n].state.refPos[2])
    if PX4>0.28:
       checker2.command='T3()'
       plot.saveDataTxt('Result.txt',vars=('PX','Fx'))
       O.pause()
    O.engines=O.engines+[PyRunner(command='T1()',iterPeriod=1)]

def RTranslation():
    for j in fctIds:
        PX1=(O.bodies[j].state.pos[0]-O.bodies[j].state.refPos[0])
    if PX1>0.35:
       checker3.command='RT()'
    else:
       return

def T1():
    T=O.iter
    Vx=O.dt*(float (T**(0.5)))*2000.0
    Engin.comb[0].velocity=Vx
    for l in fctIds:
        PX2=(O.bodies[l].state.pos[0]-O.bodies[l].state.refPos[0])
    if PX2<0.3:
       Vy=0
       return
    else:
       Vy=O.dt*(float (T**(0.5)))*1100.0
       Engin.comb[1].velocity=Vy
       return

def RT():
    Vr=O.dt*(float (T**(0.5)))*900.0
    Engin.comb[2].angularVelocity = Vr

def T3():
    Engin.comb[2].angularVelocity =0.0
    Engin.comb[0].velocity =-7.0

O.dt=.3*utils.PWaveTimeStep()

yade.plot.plots={'t':('FX',),'t':('PX,')}

def addplotdata():
  Fx1 = 0
  Fy1 = 0
  Fz1 = 0
  for i in fctIds:
    Fx1 += O.forces.f(i)[0]
    Fy1 += O.forces.f(i)[1]
    Fz1 += O.forces.f(i)[2]
  plot.addData(t=O.time,i=O.iter,Fx=math.sqrt(((Fx1)**2)+((Fy1)**2)+((Fz1)**2)),PX=(O.bodies[i].state.pos[0]-O.bodies[i].state.refPos[0]))

def stopSimulation():
  if Engin.comb[0].velocity<0:
     plot.saveDataTxt('Result_84.txt',vars=('PX','Fx'))
     O.pause()
  else:
     return

plot.liveInterval=2.0
plot.plots={'PX':('Fx',),}
plot.plot()

O.saveTmp()
qt.Controller()

qt.View()

O.run()
Thanks in advance

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Anton Gladky (gladky-anton) said :
#1

Hi,

try to switch off GUI.

> qt.Controller()
>
> qt.View()

It can cause crashes.

Anton

Revision history for this message
Xin Wu (wuxin2de) said :
#2

hallo Anton,
Thank you very much. But how can i switch off GUI.

Xin

Revision history for this message
Jan Stránský (honzik) said :
#3

Hi Xin,
just comment / delete all lines starting with qt ( as Anton wrote,
qt.Controller() and qt.View() )
Jan

2012/12/5 Xin Wu <email address hidden>

> Question #216009 on Yade changed:
> https://answers.launchpad.net/yade/+question/216009
>
> Status: Answered => Open
>
> Xin Wu is still having a problem:
> hallo Anton,
> Thank you very much. But how can i switch off GUI.
>
> Xin
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
Xin Wu (wuxin2de) said :
#4

Hallo Jan
thanks
regards

Can you help with this problem?

Provide an answer of your own, or ask Xin Wu for more information if necessary.

To post a message you must log in.