Re: [Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 VG posted a new comment: Regarding the above solution, it should be i.phys.unp = i.geom.penetrationDepth instead of i.phys.unp = 0 #to make it initially force free -- 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 VG posted a new comment: Thanks Bruno, that solved the issue I was facing. Also, can you please recommend me a good reference for the CohFrictMat and cohesive model ? -- 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 Status: Answered => Solved VG confirmed that the question is solved: Thanks Bruno Chareyre, 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 Bruno Chareyre proposed the following answer: Changing the adhesion of existing interactions is not a problem at all. After the first iteration: i.phys.normalAdhesion = something i.phys.shearAdhesion = another thing i.phys.unp = 0 #to make it initially force free, as in the link quoted in #3 The only problem was that you were changing material parameters instead of changing interaction parameters (as found by whr, even if he suggests a different workaround). -- 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 VG posted a new comment: Thanks Huanran, I will look into it further on the lines of what you suggested. -- 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 whr proposed the following answer: Hello Varun, If you do another setCohesionNow, the cohesion for the existing interactions will change after another timestep. You can write a minimal script to verify it or check that in the source code. If you prefer to keep to keep the cohesion parameters at their original value (this make sense), you'd better choose a proper value, not too high (bonds wouldn't break) or too low (seems no bonds at all). Cheers, Huanran -- 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 VG posted a new comment: Hello Huanran, Thanks for your response, that makes sense. So it seems like I can not reset the value of shearCohesion/normalCohesion for existing interactions created with higher initial values of these parameters. If I do another setCohesionNow with lower (original) values of cohesion parameters, then it would not lead to the correct number of cohesive interactions that I want. Also, I would prefer to keep the cohesion parameters at their original value after the initial interactions, since otherwise a different value will alter the breakage behavior. Thanks Varun -- 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 Status: Open => Answered whr proposed the following answer: Hi varun, I did not go through your script. But from your description in #3, this may be due to the value of cohesion. The value of shearCohesion/normalCohesion within the existing interactions will not change if you just change the value. You need another setCohesionNow to reset it. Since the very high cohesion value result in the correct number of cohesive interactions, you may want to find a proper value that make the initial interaction number correct and these bonds could be broken in the following process. Cheers, Huanran -- 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 Status: Solved => Open VG is still having a problem: Thanks Jan! Thanks to Bruno, I actually found part of the solution here: https://answers.launchpad.net/yade/+question/256364 However, there is something additional described below which I am trying to find an answer for. There are two things which I am doing now in addition to the above script: 1. Using a value of 1.1 for aabbEnlargeFactor and interactionDetectionFactor for collision and interaction respectively. 2. Using very high normal and shear cohesion values in the first iteration: ~1e20 and then resetting these values to the original values. This results in the correct number of cohesive interactions in each aggregate. However, with the application of the load, these cohesive bonds don't seem to break anymore. I am using the commands in the following sequence: -- In the initial definition of material properties for sample material, set very high values of cohesion ~1e20 -- Run one iteration using O.step() -- Reset the value of cohesion parameters by: sample_material.normalCohesion = 1e8*1.2 sample_material.shearCohesion = 0.4*1e8*1.2 -- O.run() I also checked the value of sample_material.normalCohesion from command line interface, and it shows the correct value. Is there a problem in the sequence of commands ? I think I am pretty close to finding a solution but not there yet. May be when I am setting very high values of normal and shear cohesion initially, some parameters are calculated internally and those need to be reset as well after the first iteration ? 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 Status: Answered => Solved VG confirmed that the question is solved: Thanks Jan! Thanks to Bruno, I actually found part of the solution here: https://answers.launchpad.net/yade/+question/256364 However, there is something additional described below which I am trying to find an answer for. There are two things which I am doing now in addition to the above script: 1. Using a value of 1.1 for aabbEnlargeFactor and interactionDetectionFactor for collision and interaction respectively. 2. Using very high normal and shear cohesion values in the first iteration: ~1e20 and then resetting these values to the original values. This results in the correct number of cohesive interactions in each aggregate. However, with the application of the load, these cohesive bonds don't seem to break anymore. I am using the commands in the following sequence: -- In the initial definition of material properties for sample material, set very high values of cohesion ~1e20 -- Run one iteration by O.step() -- Reset the value of cohesion parameters by: sample_material.normalCohesion = 1e8*1.2 sample_material.shearCohesion = 0.4*1e8*1.2 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 #293295]: Want to connect all the particles in an aggregate using cohesive bond
Question #293295 on Yade changed: https://answers.launchpad.net/yade/+question/293295 Status: Open => Answered Jan Stránský proposed the following answer: Hi Varun, I see the main problem in how to correctly create cohesive interactions between particles with CohFrictMat. Unfortunately, I am not familiar with this model. You have to wait for somebody experienced with the model :-) or you can search CohFrictMat in previous questions [1].. cheers Jan [1] https://answers.launchpad.net/yade 2016-05-04 23:42 GMT+02:00 VG: > New question #293295 on Yade: > https://answers.launchpad.net/yade/+question/293295 > > Hello everyone, > > Here is a description of the problem I am trying to solve: > > -- I have a granular sample with spherical particles of diameters D1, D2, > D3 etc. All of such big particles (lets call them agglomerates) are > composed of smaller particles of diameter 'd', since d is the smallest > particle size of interest. > > -- Initially, within each big spherical particle, all the smaller > particles should be densely packed and connected with cohesive bonds > (CohFrictMat). As the loading is applied, the initially defined cohesive > bonds within each big sphere will break progressively leading to smaller > fragments. > > Now, the problem I am facing: Initially, within a single big sphere > itself, sometimes there are particles which are shown not to have any > cohesive interaction, leaving the small individual particle free to fly. > How can I alleviate this problem ? > > This is a follow-up question to > https://answers.launchpad.net/yade/+question/292846 > > Here is the script: > > > from yade import pack > > > # > # Set up run > > # > run_name="PeriodicCohesive_MWE" > data_root_dir="." > > > > > # > # Materials > > # > plate_material=FrictMat( > young=200e9 > ,poisson=0.3 > ,density=8000. > ,frictionAngle=radians(30) > ,label='plate_mat') > > O.materials.append(plate_material) > > > sample_material=CohFrictMat( > young=4e9 > ,poisson=0.25 > ,density=1400 > ,frictionAngle=radians(30) > ,normalCohesion=1e8*1.2 > ,shearCohesion=.4e8*1.2 > ,momentRotationLaw=True > ,label='sample_mat') > O.materials.append(sample_material) > > > > > # > # Component dimensions and operating condition > > # > # Granular material dimension > sample_diameter=2e-4 > #sample_diameter=126e-6 > sample_radius=sample_diameter/2.0 > # Sub-particle dimension > particle_diameter=74e-6 > particle_radius=particle_diameter/2. > > > # > # grinding plate dimension > > # > > rotvel=2./3.*pi*(1.5+0.5)*.254 > > > # > # Periodic Geometry > > # > > > # Set up periodic boundary conditions > O.periodic=True > xExt=4*sample_diameter > yExt=3.*sample_diameter*2 #to block the periodicity in y direction > zExt=xExt > xLim=xExt > yLim=yExt/4 > zLim=zExt > O.cell.hSize=Matrix3( > xExt, 0, 0, > 0, yExt, 0, > 0, 0, zExt) > > > length=xExt > height=yExt > width=zExt > > # Top and bottom plate thickness > thickness=0.1*height > > > > > > bottomBoxes = [] > for ix in (0,1,2): > for iz in (0,1,2): > bottomBoxes.append(box( # create 3x3 boxes with 1/3 cell > size > center=(xExt/6.*(1+2*ix),yLim - > thickness/2.0,zExt/6.*(1+2*iz)) > ,extents=(xExt/6.,thickness/2.0,zExt/6.) > ,wire=False > ,material='plate_mat' > )) > > bottom_id,bottom_ids = O.bodies.appendClumped(bottomBoxes) # bottom_id is > the clump id, > > > O.bodies[bottom_id].state.blockedDOFs='xyzXYZ' > > > > > # > # Particle Packing > > # > > min_corner= (0,yLim,0) > max_corner= (xLim, yExt-yLim, zLim) > > sp=pack.SpherePack() > sp.makeCloud( min_corner,max_corner, rMean=sample_radius, periodic=False, > seed=1) > > print "Generated ",len(sp)," aggregates" > > ### > # Sample > ### > for s in sp: >
[Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond
New question #293295 on Yade: https://answers.launchpad.net/yade/+question/293295 Hello everyone, Here is a description of the problem I am trying to solve: -- I have a granular sample with spherical particles of diameters D1, D2, D3 etc. All of such big particles (lets call them agglomerates) are composed of smaller particles of diameter 'd', since d is the smallest particle size of interest. -- Initially, within each big spherical particle, all the smaller particles should be densely packed and connected with cohesive bonds (CohFrictMat). As the loading is applied, the initially defined cohesive bonds within each big sphere will break progressively leading to smaller fragments. Now, the problem I am facing: Initially, within a single big sphere itself, sometimes there are particles which are shown not to have any cohesive interaction, leaving the small individual particle free to fly. How can I alleviate this problem ? This is a follow-up question to https://answers.launchpad.net/yade/+question/292846 Here is the script: from yade import pack # # Set up run # run_name="PeriodicCohesive_MWE" data_root_dir="." # # Materials # plate_material=FrictMat( young=200e9 ,poisson=0.3 ,density=8000. ,frictionAngle=radians(30) ,label='plate_mat') O.materials.append(plate_material) sample_material=CohFrictMat( young=4e9 ,poisson=0.25 ,density=1400 ,frictionAngle=radians(30) ,normalCohesion=1e8*1.2 ,shearCohesion=.4e8*1.2 ,momentRotationLaw=True ,label='sample_mat') O.materials.append(sample_material) # # Component dimensions and operating condition # # Granular material dimension sample_diameter=2e-4 #sample_diameter=126e-6 sample_radius=sample_diameter/2.0 # Sub-particle dimension particle_diameter=74e-6 particle_radius=particle_diameter/2. # # grinding plate dimension # rotvel=2./3.*pi*(1.5+0.5)*.254 # # Periodic Geometry # # Set up periodic boundary conditions O.periodic=True xExt=4*sample_diameter yExt=3.*sample_diameter*2 #to block the periodicity in y direction zExt=xExt xLim=xExt yLim=yExt/4 zLim=zExt O.cell.hSize=Matrix3( xExt, 0, 0, 0, yExt, 0, 0, 0, zExt) length=xExt height=yExt width=zExt # Top and bottom plate thickness thickness=0.1*height bottomBoxes = [] for ix in (0,1,2): for iz in (0,1,2): bottomBoxes.append(box( # create 3x3 boxes with 1/3 cell size center=(xExt/6.*(1+2*ix),yLim - thickness/2.0,zExt/6.*(1+2*iz)) ,extents=(xExt/6.,thickness/2.0,zExt/6.) ,wire=False ,material='plate_mat' )) bottom_id,bottom_ids = O.bodies.appendClumped(bottomBoxes) # bottom_id is the clump id, O.bodies[bottom_id].state.blockedDOFs='xyzXYZ' # # Particle Packing # min_corner= (0,yLim,0) max_corner= (xLim, yExt-yLim, zLim) sp=pack.SpherePack() sp.makeCloud( min_corner,max_corner, rMean=sample_radius, periodic=False, seed=1) print "Generated ",len(sp)," aggregates" ### # Sample ### for s in sp: sphere=pack.inSphere((s[0][0],s[0][1],s[0][2]),s[1]) sp1=pack.randomDensePack( sphere ,spheresInCell=2000 ,radius=particle_radius ,memoizeDb='/tmp/triaxPackCache.sqlite' ,returnSpherePack=True ) sp1.toSimulation(material='sample_mat',color=(0.9,0.8,0.6)) print 'Generated ',len(sp1),' particles' Gl1_Sphere(stripes=True) # # Top # topBoxes = [] for ix in (0,1,2): for iz in (0,1,2): topBoxes.append(box( # create 3x3 boxes with 1/3 cell size center=(xExt/6.*(1+2*ix),yExt - yLim + thickness/2.0,zExt/6.*(1+2*iz)) ,extents=(xExt/6.,thickness/2.0,zExt/6.) ,wire=False ,material='plate_mat'