[Yade-users] [Question #680662]: Small density sphere in micron size makes segment fault (core dumped)
New question #680662 on Yade: https://answers.launchpad.net/yade/+question/680662 In my case, the sphere used is in micron size. When i use the real material property, especially the density, the calculation crashes after some time(Segment fault (core dumped)). Then i try to magnify the density and find the run goes well when the density amplified by one million times. Following is the testing code where the parameter masscof is the density amplification factor, from yade import geom,pack import math from yade import qt import os os.system('rm -rf plt;mkdir ./plt/') os.system('rm -rf out;mkdir ./out/') # PhysicalParameters muS = 0.57735 # Friction coefficient (30 degree) FricAngleS = math.atan(muS) ### mass amplification factor ### masscof = 1e6 # PhysicalParameters matSph = CohFrictMat( density = 7990*masscof, young = 193e9, poisson = 0.3, frictionAngle = FricAngleS, momentRotationLaw = True) SMat = O.materials.append(matSph) # create empty sphere packing sp = pack.SpherePack() # generate spheres1 with a certain diameter distribution sp.makeCloud((0,0,0.35e-3), (1.0e-3,1.0e-3,1.4e-3), psdSizes=[0.012e-3,0.0186e-3,0.0312e-3,0.0484e-3,0.053e-3], psdCumm=[0,0.1,0.5,0.9,1.0]) # add the sphere pack to the simulation sp.toSimulation(material=SMat) # create rectangular box1(Left) from facets O.bodies.append(geom.facetBox((0.5e-3,0.5e-3,0.5e-3),(0.5e-3,0.5e-3,0.5e-3), wallMask=31, material=SMat)) O.bodies.append(geom.facetBox((0.5e-3,0.5e-3,0.15e-3),(0.5e-3,0.5e-3,0.2e-3), wallMask=63, color=(0,1,0), wire=False, material=SMat)) O.dt = 0.85*utils.PWaveTimeStep() O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]), InteractionLoop( # handle sphere+sphere and facet+sphere collisions [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment()] ), NewtonIntegrator(damping=0.75, exactAsphericalRot=True, gravity=(0,0,-9.81)), qt.SnapshotEngine(fileBase="./plt/",iterPeriod=200,label='snapshot'), VTKRecorder(iterPeriod=200, recorders=['spheres','colors'], fileName='./out/'), ] #show geometry: qtr = qt.Renderer() qtr.bgColor = [1,1,1] qt.Controller() v = qt.View() #v.center() v.axes=False v.viewDir=Vector3(0,1,0) v.eyePosition=Vector3(1.8e-3,-5.2e-3,1.0e-3) #O.run() -- 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #680662]: Small density sphere in micron size makes segment fault (core dumped)
Question #680662 on Yade changed: https://answers.launchpad.net/yade/+question/680662 Status: Open => Needs information Jan Stránský requested more information: Hello, thanks for the code. I have tried the script for a while without any problem. Please provide more info: - At which iteration the problem occur? - is the SnapshotEngine and VTKRecorder needed to reproduce the problem? If no, please remove them to make the script a true MWE [1] - please use a 'seed' parameter to sp.makeCloud thanks Jan [1] https://yade-dem.org/wiki/Howtoask -- 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #680662]: Small density sphere in micron size makes segment fault (core dumped)
Question #680662 on Yade changed: https://answers.launchpad.net/yade/+question/680662 gaoxuesong posted a new comment: Hi, Jan. Yes, you are right. I have tried the above code and no segment fault occurred. Then I add some lines which i thought were unimportant in the past and the problems happened at about 341300 iteration. As you suggested, i leave the snap and VTK code out. Also, to make the crash easy to happen, i amplify the density by a small factor as 1e3. The following is the code, from yade import geom,pack import math from yade import qt import os #os.system('rm -rf plt;mkdir ./plt/') #os.system('rm -rf out;mkdir ./out/') # PhysicalParameters muS = 0.57735 # Friction coefficient (30 degree) muLB = 0.0001 # Friction coefficient muF = 0.17632 # Friction coefficient (10 degree) FricAngleS = math.atan(muS) FricAngleLB = math.atan(muLB) FricAngleF = math.atan(muF) ### mass amplification factor ### masscof = 1e3 # PhysicalParameters matSph = CohFrictMat( density = 7990*masscof, young = 193e9, poisson = 0.3, frictionAngle = FricAngleS, momentRotationLaw = True) SMat = O.materials.append(matSph) # create empty sphere packing sp = pack.SpherePack() # generate spheres1 with a certain diameter distribution sp.makeCloud((0,0,0.35e-3), (1.0e-3,1.0e-3,1.4e-3), psdSizes=[0.012e-3,0.0186e-3,0.0312e-3,0.0484e-3,0.053e-3], psdCumm=[0,0.1,0.5,0.9,1.0]) # add the sphere pack to the simulation sp.toSimulation(material=SMat) # create rectangular box1(Left) from facets O.bodies.append(geom.facetBox((0.5e-3,0.5e-3,0.5e-3),(0.5e-3,0.5e-3,0.5e-3), wallMask=31, material=SMat)) Cylinder1IDs=O.bodies.append(geom.facetBox((0.5e-3,0.5e-3,0.15e-3),(0.5e-3,0.5e-3,0.2e-3), wallMask=63, color=(0,1,0), wire=False, material=SMat)) ## add these lines, problem happens # ## add these lines, problem happens # def changeValues(): # Standstill for stabilization if O.time < 0.2: O.engines = O.engines + [ TranslationEngine(dead=False, translationAxis= [0,0,1], velocity=0.0, ids=Cylinder1IDs) ] # Vibrate Piston1 elif 0.2 <= O.time < 0.4: O.engines = O.engines + [ HarmonicMotionEngine(A=(0.0,0.0,1.5e-5), f=(0.0,0.0,3600/60.0), ids=Cylinder1IDs) ] # Vibrate Stop elif 0.4 <= O.time < 0.5129: O.engines = O.engines + [ HarmonicMotionEngine(A=(0.0,0.0,0.0), f=(0.0,0.0,0.0), ids=Cylinder1IDs) ] O.dt = 0.85*utils.PWaveTimeStep() ## add these lines, problem happens # ## add these lines, problem happens # def print_ite(): print("ite is %d" % O.iter) O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]), InteractionLoop( # handle sphere+sphere and facet+sphere collisions [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment()] ), NewtonIntegrator(damping=0.75, exactAsphericalRot=True, gravity=(0,0,-9.81)), PyRunner(iterPeriod=100,command='changeValues()'), PyRunner(iterPeriod=100,command='print_ite()'), #qt.SnapshotEngine(fileBase="./plt/",iterPeriod=200,label='snapshot'), # VTKRecorder(iterPeriod=200, recorders=['spheres','colors'], fileName='./out/'), ] #show geometry: qtr = qt.Renderer() qtr.bgColor = [1,1,1] qt.Controller() v = qt.View() #v.center() v.axes=False v.viewDir=Vector3(0,1,0) v.eyePosition=Vector3(1.8e-3,-5.2e-3,1.0e-3) O.run() -- 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #680662]: Small density sphere in micron size makes segment fault (core dumped)
Question #680662 on Yade changed: https://answers.launchpad.net/yade/+question/680662 gaoxuesong posted a new comment: Sorry to add the ubuntu and yade version used. The ubuntu is Ubuntu 18.04.1 LTS, and the yade is 2018.02b. Much thanks. -- 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #680662]: Small density sphere in micron size makes segment fault (core dumped)
Question #680662 on Yade changed: https://answers.launchpad.net/yade/+question/680662 Status: Needs information => Answered Jan Stránský proposed the following answer: Hello, just running your code and waiting for the result. However, the changeValues() function should not be used in this form (!) You are adding new TranslationEngine every 100 iterations. Now I have O.iter=288300 and if I print len(O.engines), I got 2893.. Furthermore, what is the meaning of the TranslationEngine with velocity=0.0? A proper way could be something like: ### O.engines = [ ... TranslationEngine(...,dead=False,label='transEngine'), # just one engine HarmonicMotionEngine(...,dead=True,label='harmEngine'), # just one engine NewtonIntegrator(...), # consider pacing it after kinematic engines [1] PyRunner(iterPeriod=100,command='changeValues()'), ] def changeValues(): if O.time < 0.2: pass # probably initialized above elif O.time < 0.4: # no need of 0.2 <= O.time, because if so, it would have finished in above branch transEngine.dead = True harmEngine.dead = False harmEngine.A = ... harmEngine.f = ... elif ... ### could you modify your code and test if it works? cheers Jan [1] https://yade-dev.gitlab.io/trunk/user.html#base-engines -- 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #680662]: Small density sphere in micron size makes segment fault (core dumped)
Question #680662 on Yade changed: https://answers.launchpad.net/yade/+question/680662 Status: Answered => Solved gaoxuesong confirmed that the question is solved: Thanks. Jan. The adapted code runs well. I think the problem is the increasing length of O.engines. -- 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #680662]: Small density sphere in micron size makes segment fault (core dumped)
Question #680662 on Yade changed: https://answers.launchpad.net/yade/+question/680662 gaoxuesong confirmed that the question is solved: Thanks Jan Stránský, that solved my question. -- 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp