Hi jerome,
>>I did not get any segmentation fault. Could you clarify the situation, please 
>>?
that confused me too, I run the same simulation and watch different results. 
Some times segmentation fault and the other times decreasing the porosity over 
and over to infinity.

you mentioned porosity, I always see an irrational difference between
triaxialStressController.porosity and the porosity(),(in many cases not
only in one here) I thought it may be resulted from breaking of
particles according to low Modules of elasticity (micro!!) I increased
it, for the same simulation, in some cases it works well and other cases
leads to  segmentaion fault. i referred to the system that these two
parameters(porosities)are calculated to figure it out but got no
results.

here is the same script writen by Brunu Chareyre,scipt-session.py
I only did some cleaning, please run it. it leads to segmentation fault.
Thanks Jerome.


# -*- coding: utf-8 -*-
from yade import pack
num_spheres=1000
compFricDegree = 30
targetPorosity = 0.43
finalFricDegree = 30
rate=-0.02
damp=0.2
stabilityThreshold=0.01
young=5e6
mn,mx=Vector3(0,0,0),Vector3(1,1,1)
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=radians(compFricDegree),density=2600,label='spheres'))
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls'))
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)
sp=pack.SpherePack()


clumps=False
if clumps:
 volume = (mx[0]-mn[0])*(mx[1]-mn[1])*(mx[2]-mn[2])
 mean_rad = pow(0.09*volume/num_spheres,0.3333)
 
c1=pack.SpherePack([((-0.2*mean_rad,0,0),0.5*mean_rad),((0.2*mean_rad,0,0),0.5*mean_rad)])
 sp.makeClumpCloud(mn,mx,[c1],periodic=False)
 sp.toSimulation(material='spheres')
 O.bodies.updateClumpProperties()
else:
 sp.makeCloud(mn,mx,-1,0.3333,num_spheres,False, 0.95,seed=1)
 O.bodies.append([sphere(center,rad,material='spheres') for center,rad in sp])
triax=TriaxialStressController(
        maxMultiplier=1.+2e4/young,
        finalMaxMultiplier=1.+2e3/young,
        thickness = 0,
        stressMask = 7,
        internalCompaction=True,
)

newton=NewtonIntegrator(damping=damp)

O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
        InteractionLoop(
                [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
                [Ip2_FrictMat_FrictMat_FrictPhys()],
                [Law2_ScGeom_FrictPhys_CundallStrack()]
        ),
        
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
        triax,
        newton
]
triax.goal1=triax.goal2=triax.goal3=-10000

while 1:
  O.run(1000, True)
  unb=unbalancedForce()
  print 'unbalanced force:',unb,' mean stress: ',triax.meanStress
  if unb<stabilityThreshold and abs(-10000-triax.meanStress)/10000<0.001:
    break
internalCompaction=False
bodiesToBeDeleted=[]
for b in O.bodies:
        if b.id in range(6):
                continue
        else:
                if b.state.pos[0]<.1:
                        bodiesToBeDeleted.append(b)

for b in bodiesToBeDeleted:
        O.bodies.erase(b.id)

-- 
You received this bug notification because you are a member of Yade
developers, which is subscribed to Yade.
https://bugs.launchpad.net/bugs/1767601

Title:
  segmentation fault after erasing some particles

Status in Yade:
  Incomplete

Bug description:
  Dear all,
  I built a simple script according to script-session1.py (B.Chareyre). I tried 
to erase some particles, it was done without any problem. but after finishing 
the simulation, as soon as  I tried to run more iterations, it showed 
segmentation fault and quit  yade.
  The length of O.bodies is similar to The one before erasing.(Does not change 
after erasing)
  you can see my question in:
  https://answers.launchpad.net/yade/+question/668274
  I'm using Ubuntu 14.04 LTS and yadedaily version: 2018.02b-85-f861843~trusty

  And here is my script:

  
  # -*- coding: utf-8 -*-
  from yade import pack, plot
  young=1e8
  compFricDegree = 5
  finalFricDegree = 35
  mn,mx=Vector3(0,0,0),Vector3(.005,.005,.005)

  
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=radians(compFricDegree),density=2600,label='spheres'))
  
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls'))
  walls=aabbWalls([mn,mx],thickness=0,material='walls')
  wallIds=O.bodies.append(walls)
  psdSizes=[.00001,.00006,.00008,.0002,.0004,.0005,.0008,.001]
  psdCumm=[0,.0175,.025,.4,.5,.7,.85,1]
  sp=pack.SpherePack()
  
sp.makeCloud(mn,mx,psdSizes=psdSizes,psdCumm=psdCumm,distributeMass=True,num=500)
  sp.toSimulation(material='spheres')
  triax=TriaxialStressController(
        maxMultiplier=1.001,
        finalMaxMultiplier=1.0001,
        thickness = 0,
        stressMask = 7,
        internalCompaction=True,
  )

  newton=NewtonIntegrator(damping=0.2)
  O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
        InteractionLoop(
                [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
                [Ip2_FrictMat_FrictMat_FrictPhys()],
                [Law2_ScGeom_FrictPhys_CundallStrack()],label="iloop"
        ),
        triax,
        newton,
  ]
  O.dt=PWaveTimeStep()
  triax.goal1=triax.goal2=triax.goal3=-10000

  while 1:
    O.run(1000,True)
    unb=unbalancedForce()
    print 'porosity', triax.porosity
    if unb<0.01 and abs(-10000-triax.meanStress)/10000<.01:
      break

  bodiesToBeDeleted=[]
  for b in O.bodies:
        if b.id in range(6):
                continue
        else:
                if b.state.pos[0]<.002:
                        bodiesToBeDeleted.append(b)

  for b in bodiesToBeDeleted:
        O.bodies.erase(b.id)

To manage notifications about this bug go to:
https://bugs.launchpad.net/yade/+bug/1767601/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to