Re: [Yade-users] [Question #688275]: Size problem in yade simulation
Question #688275 on Yade changed: https://answers.launchpad.net/yade/+question/688275 Status: Answered => Solved Huang peilun confirmed that the question is solved: Thanks Jan! I tried SoilMat=FrictMat(young=25e9,...) and it works! Now I understand why these spheres go through the cylinder. It's very interesting! -- 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 #688275]: Size problem in yade simulation
Question #688275 on Yade changed: https://answers.launchpad.net/yade/+question/688275 Huang peilun 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
Re: [Yade-users] [Question #688275]: Size problem in yade simulation
Question #688275 on Yade changed: https://answers.launchpad.net/yade/+question/688275 Jan Stránský proposed the following answer: Hello, welcome to the playing with physical dimensions and units :-) I assume you want in both cases "same" results: - you increase size by a factor f (here f=1000) - cross sections A increases by factor f^2 - volume and mass and gravity force increases with factor f^3 - penetration depth (pd) increases with factor f - you left stiffness E unchanged, increasing by factor 1 - repulsive force F=pd*E*A/L increases with f*1*f^2/f = f^2 now it becomes 1000x "smaller" then in the original case! and is not large enough to prevent gravity force pushing particles through the cylinder.. So to "scale" repulsive force the same way as gravity force, you have to scale the stiffness by the factor f, too. Then F=pd*E*A/L=f*f*f^2/f=f^3. Using SoilMat=FrictMat(young=25e9,...) in the second script, I got very similar results as in the first one cheers Jan -- 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 #688275]: Size problem in yade simulation
Question #688275 on Yade changed: https://answers.launchpad.net/yade/+question/688275 Huang peilun posted a new comment: Thanks! I increased the stiffness but there still are spheres that go through the bottom of the cylinder. Here's my code. from yade import pack Mat=FrictMat(young=2.06e20) SoilMat=FrictMat(young=25e6,poisson=0.2,density=2650,frictionAngle=0.28) O.materials.append((SoilMat,Mat)) O.bodies.append(geom.facetCylinder(center=(500,500,500),radius=500,height=1000,wallMask=6,color=(1,0,0),material=Mat)) sp=pack.SpherePack() sp.makeCloud((0,0,0),(1000,1000,1000),rMean=50,rRelFuzz=.3) cyl=pack.inCylinder((500,500,0),(500,500,1000),450) sp=pack.filterSpherePack(cyl,sp,True) sp.toSimulation(material=SoilMat) 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()] ), # update position using Newton's equations NewtonIntegrator(gravity=(0,0,-9.81),damping=0.05), # call the checkUnbalanced function (defined below) every 2 seconds PyRunner(command='checkUnbalanced()',realPeriod=2,label='checker'), ] O.dt=.2*PWaveTimeStep() def checkUnbalanced(): print('%s: Unbalanced=%s' % (O.iter,unbalancedForce())) if O.iter<5000: return if unbalancedForce()<.05: O.pause() O.saveTmp() -- 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 #688275]: Size problem in yade simulation
Question #688275 on Yade changed: https://answers.launchpad.net/yade/+question/688275 Robert Caulk proposed the following answer: For example [1]. I will also give you the answer: O.materials.append(FrictMat(young=desiredStiffness,label='walls')) O.bodies.append(geom.facetCylinder(center=(.5,.5,.5),radius=.5,height=1,wallMask=6,color=(1,0,0)),material='walls') However, I still recommend you read [2] carefully to ensure functionality. Cheers. Robert [1]https://gitlab.com/yade-dev/trunk/blob/master/examples/triax-tutorial/script-session1.py#L54 [2]https://yade-dev.gitlab.io/trunk/tutorial-hands-on.html#singles -- 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 #688275]: Size problem in yade simulation
Question #688275 on Yade changed: https://answers.launchpad.net/yade/+question/688275 Huang peilun posted a new comment: Thanks Robert. I haven't tried increasing the stiffness of the facets because I don't know how. Can you show me how to do that? -- 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 #688275]: Size problem in yade simulation
Question #688275 on Yade changed: https://answers.launchpad.net/yade/+question/688275 Status: Open => Answered Robert Caulk proposed the following answer: Have you tried increasing the stiffness of the facets relative to the particles? -- 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 #688275]: Size problem in yade simulation
Question #688275 on Yade changed: https://answers.launchpad.net/yade/+question/688275 Description changed to: I did a gravity deposition test in a cylinder. The following is the original code and it works. from yade import pack #material SoilMat=FrictMat(young=25e6,poisson=0.2,density=2650,frictionAngle=0.28) O.materials.append((SoilMat)) #define the chamber O.bodies.append(geom.facetCylinder(center=(.5,.5,.5),radius=.5,height=1,wallMask=6,color=(1,0,0))) #create foundation by making spheres in the cylinder. sp=pack.SpherePack() sp.makeCloud((0,0,0),(1,1,1),rMean=.05,rRelFuzz=.3) cyl=pack.inCylinder((.5,.5,0),(.5,.5,1),.45) sp=pack.filterSpherePack(cyl,sp,True) sp.toSimulation(material=SoilMat) 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()] ), # update position using Newton's equations NewtonIntegrator(gravity=(0,0,-9.81),damping=0.05), # call the checkUnbalanced function (defined below) every 2 seconds PyRunner(command='checkUnbalanced()',realPeriod=2,label='checker'), ] O.dt=.2*PWaveTimeStep() def checkUnbalanced(): print('%s: Unbalanced=%s' % (O.iter,unbalancedForce())) if O.iter<5000: return if unbalancedForce()<.05: O.pause() O.saveTmp() However, when I magnify all units 1000 times, like the following code, some sphere just went through the bottom of the cylinder and I don't know why. from yade import pack #material SoilMat=FrictMat(young=25e6,poisson=0.2,density=2650,frictionAngle=0.28) O.materials.append((SoilMat)) #define the chamber O.bodies.append(geom.facetCylinder(center=(500,500,500),radius=500,height=1000,wallMask=6,color=(1,0,0))) #create foundation by making spheres in the cylinder. sp=pack.SpherePack() sp.makeCloud((0,0,0),(1000,1000,1000),rMean=50,rRelFuzz=.3) cyl=pack.inCylinder((500,500,0),(500,500,1000),450) sp=pack.filterSpherePack(cyl,sp,True) sp.toSimulation(material=SoilMat) 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()] ), # update position using Newton's equations NewtonIntegrator(gravity=(0,0,-9.81),damping=0.05), # call the checkUnbalanced function (defined below) every 2 seconds PyRunner(command='checkUnbalanced()',realPeriod=2,label='checker'), ] O.dt=.2*PWaveTimeStep() def checkUnbalanced(): print('%s: Unbalanced=%s' % (O.iter,unbalancedForce())) if O.iter<5000: return if unbalancedForce()<.05: O.pause() O.saveTmp() Thanks in advance! -- 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
[Yade-users] [Question #688275]: Size problem in yade simulation
New question #688275 on Yade: https://answers.launchpad.net/yade/+question/688275 I did a gravity deposition test in a cylinder. The following is the original code and it works. from yade import pack #material SoilMat=FrictMat(young=25e6,poisson=0.2,density=2650,frictionAngle=0.28) O.materials.append((SoilMat)) #define the chamber O.bodies.append(geom.facetCylinder(center=(.5,.5,.5),radius=.5,height=1,wallMask=6,color=(1,0,0))) #create foundation by making spheres in the cylinder. sp=pack.SpherePack() sp.makeCloud((0,0,0),(1,1,1),rMean=.05,rRelFuzz=.3) cyl=pack.inCylinder((.5,.5,0),(.5,.5,1),.45) sp=pack.filterSpherePack(cyl,sp,True) sp.toSimulation(material=SoilMat) 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()] ), # update position using Newton's equations NewtonIntegrator(gravity=(0,0,-9.81),damping=0.05), # call the checkUnbalanced function (defined below) every 2 seconds PyRunner(command='checkUnbalanced()',realPeriod=2,label='checker'), ] O.dt=.2*PWaveTimeStep() def checkUnbalanced(): print('%s: Unbalanced=%s' % (O.iter,unbalancedForce())) if O.iter<5000: return if unbalancedForce()<.05: O.pause() O.saveTmp() However, when I magnify all units 1000 times, like the following code, some sphere just went through the bottom of the cylinder and I don't know why. from yade import pack #material SoilMat=FrictMat(young=25e6,poisson=0.2,density=2650,frictionAngle=0.28) O.materials.append((SoilMat)) #define the chamber O.bodies.append(geom.facetCylinder(center=(500,500,500),radius=500,height=1000,wallMask=6,color=(1,0,0))) #create foundation by making spheres in the cylinder. sp=pack.SpherePack() sp.makeCloud((0,0,0),(1000,1000,1000),rMean=50,rRelFuzz=.3) cyl=pack.inCylinder((500,500,0),(500,500,1000),450) sp=pack.filterSpherePack(cyl,sp,True) sp.toSimulation(material=SoilMat) 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()] ), # update position using Newton's equations NewtonIntegrator(gravity=(0,0,-9.81),damping=0.05), # call the checkUnbalanced function (defined below) every 2 seconds PyRunner(command='checkUnbalanced()',realPeriod=2,label='checker'), ] O.dt=.2*PWaveTimeStep() def checkUnbalanced(): print('%s: Unbalanced=%s' % (O.iter,unbalancedForce())) if O.iter<5000: return if unbalancedForce()<.05: O.pause() O.saveTmp() Thanks in advance! -- 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