Re: [Yade-users] [Question #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Status: Open => Expired Launchpad Janitor expired the question: This question was expired because it remained in the 'Open' state without activity for the last 15 days. -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Seti posted a new comment: Thanks Jerome, I have opened another question. Hope it helps :( -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Seti posted a new comment: Thanks Jerome, I have opened another question. Hope it help :( -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Jérôme Duriez posted a new comment: In fact, I've never used MatchMaker myself.. In principle using such thing to define cohesion should follow the exact same method as to define friction. In case you face difficulties, I would recommend you try first with a two spheres problem. This would lead to a much shorter script and much simpler situation, increasing your chances to succeed or other users to help you in case you wish to post here (or in a separate, more precise, question) such 2 spheres script. The script above is way too long/complicated.. -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Status: Answered => Open Seti is still having a problem: Thanks Jerome, I tried to go for your recommendation to use "MatchMaker" however I am not sue how I should use it for various cohesion, what I have seen in documentation, the MatchMaker have been used to assign different frictions , however I have done below attempt which to me is incomplete, would you please advise me how should I use MatchMaker to assign different cohesion: here is the snip of code: # Batch execution nRead=utils.readParamsFromTable( num_spheres1=500,# number of spheres len(O.bodies) to verify: 10006 = 1 particles + 6 walls is correct num_spheres2=500,# number of spheres len(O.bodies) to verify: 10006 = 1 particles + 6 walls is correct compFricDegree = 30, # contact friction during the confining phase (1) unknownOk=True, isoForce=10, # stress for the isotropic compression phase (1) conStress=10 # confinement stress, for the deviatoric loading session (2) ) from yade.params import table num_spheres1=500 # number of spheres called from table num_spheres2=500 targetPorosity = 0.6 #the porosity we want for the packing (3 specimens: (Ei,n) = (1,0.382), (2,0.387), (3,0.409) ) compFricDegree = table.compFricDegree # initial contact friction during the confining phase (will be decreased during the REFD compaction process) finalFricDegree = 30 # contact friction during the deviatoric loading rate=0.01# loading rate (strain rate) damp=0.3 # damping coefficient stabilityThreshold=0.001# initial value: 0.001 key='_kozooocki,,100kpa,100kpa,30,30,30e9_0.085,0.085,0.085,0.8,D=varried,clumping 3,0.z5 ' # simulation's name here young=30e9 # contact stiffness k_n/Ds mn,mx=Vector3(-0.085,-0.085,-0.085),Vector3(0.085,0.085,0.085) # corners of the initial packing thick = 0.01# thickness of the plates ## create materials for spheres and plates O.materials.append(FrictMat(young=young,poisson=0.3,frictionAngle=radians(compFricDegree),momentRotationLaw=True,etaRoll=1,density=2600,isCohesive=True,alphaKr=0.05,label='spheres1')) O.materials.append(CohFrictMat(young=young,poisson=0.3,frictionAngle=radians(compFricDegree),momentRotationLaw=True,etaRoll=1,density=2600,isCohesive=True,alphaKr=0.05,label='spheres2')) O.materials.append(FrictMat(young=young,poisson=0.3,frictionAngle=0,density=0,label='walls')) ## create walls around the packing walls=utils.aabbWalls([mn,mx],thickness=thick,oversizeFactor=1.5,material='walls') wallIds=O.bodies.append(walls) ## use a SpherePack object to generate a random loose particles packing sp=pack.SpherePack() psdSizes=[0.002,0.003,0.004,0.005,0.006,0.007,0.008] # (sizes or radii of the grains vary from 2mm to 9.5mm) #psdCumm=[1,9,25,50,69,90,95,100] # the correspondent amount (percentage) of each diameter, uncomment for yade-stable psdCumm=[0.14,0.28,0.34,0.50,0.65,0.85,1.00] # for the code not using percentage, e.g. yade-daily ... O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom(),,Ig2_Wall_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_MindlinPhys(en=MatchMaker(matches=((spheres1,spheres2,.6),(spheres2,spheres2,.55))),es=MatchMaker(matches=((spheres1,spheres2,.6),(spheres2,spheres2,.55))),alphaKr=MatchMaker(matches=((spheres1,spheres2,.1),(spheres2,spheres2,.3))),krot=3),Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(label="cohesiveIp")], [Law2_ScGeom_MindlinPhys_Mindlin(includeMoment=True,includeAdhesion=True)], [Law2_ScGeom_FrictPhys_CundallStrack(),Law2_ScGeom6D_CohFrictPhys_CohesionMoment( useIncrementalForm=True, #useIncrementalForm is turned on as we want plasticity on the contact moments always_use_moment_law=False, #if we want "rolling" friction even if the contact is not cohesive (or cohesion is broken), we will have to turn this true somewhere label='cohesiveLaw')] ), ## We will use the global stiffness of each body to determine an optimal timestep (see https://yade-dem.org/w/images/1/1b/Chareyre&Villard2005_licensed.pdf) GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.5), triax, TriaxialStateRecorder(iterPeriod=50,file='WallStresses'+key), newton ] Thank
Re: [Yade-users] [Question #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Status: Open => Answered Jérôme Duriez proposed the following answer: " why C is the smallest value of cohesion between two grains ?" => Because the guy who wrote this piece of code had to make a choice, and he made this choice.. Taking the min of two values is by the way a quite "classical" choice in YADE (the same is made to determine the friction angle of an interaction) As for me I'm quite happy with the idea that a team of two players can not be better than the worst player among the two, but all this is just a matter of choice, as I said.. Thus, I won't deny you the possibility to be unhappy with the current choice. In this case I would recommend you give a look to this "MatchMaker" attribute to address the situations you have in mind. -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Status: Answered => Open Seti is still having a problem: Dear Jerome, Thanks for prompt reply. My exact question is, why C is the smallest value of cohesion between two grains. Just imagine , the first material be loose sand and the the second material be something which we are using for cementation ( bonding the loose sand) - which definitely has the bigger value of cohesion in comparison with the loose sand , in this case assuming the the smallest value of cohesion means we do not consider the effect of binder in our calculation. It is my thought, please correct me if I am wrong. Regards, Seti -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Jérôme Duriez proposed the following answer: PS: these "iAdhesion" are computed from the minima of "iCohesion" unless you defined some "MatchMaker" in Ip2_CohFrictMat_CohFrictMat_CohFrictPhys.normalCohesion/shearCohesion... If you do not understand what I'm talking about, just focus on my previous answer... -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Status: Open => Answered Jérôme Duriez proposed the following answer: All YADE source code can be * either browsed online at https://github.com/yade/trunk * or downloaded on your computer following the "source code" section of the installation page of the doc somewhere at https://yade-dem.org/doc/ (which is currently down---hopefully not for long---which prevents me to giving you the exact URL) Searching e.g. for "normalCohesion" in the code (see the search bar at the top of github.com/yade/trunk webpages) will direct you to pkg/dem/CohesiveFrictionalContactLaw.cpp that includes in particular the code of Ip2_CohFrictMat_CohFrictMat_CohFrictPhys. Therein, you will find that "normalAdhesion" is computed from the minimum of the particles' "normalCohesion" (the same for "shear.."), see [1] and [2]. Which hopefully answers your first question ! (The doc could be indeed clarified) Jerome [1] https://github.com/yade/trunk/blob/48fcf94a46f449dfb1ecda36f69eb8397d08d29d/pkg/dem/CohesiveFrictionalContactLaw.cpp#L251 [2] https://github.com/yade/trunk/blob/48fcf94a46f449dfb1ecda36f69eb8397d08d29d/pkg/dem/CohesiveFrictionalContactLaw.cpp#L285 -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Status: Answered => Open Seti is still having a problem: Hi Jerome, Thanks so much for your response. I need to understand how you model the adhesion between two neighbour grains when they have different property ( in particular different cohesion). considering below formula when I have 2 different material Ci how be calculated? a_i=C_i min(R_1,R_2)^2, i=n,s. 2- Would you please let me how can I access to source of code for calculating the adhesion/adhesion? I really appreciate your time. Thanks Seti -- 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 #295225]: Cohesion Distribution
Question #295225 on Yade changed: https://answers.launchpad.net/yade/+question/295225 Status: Open => Answered Jérôme Duriez proposed the following answer: Hello, The doc of "CohFrict.." related classes should help, here (assuming you're using such contact model, which would probably be a good idea) 1. See [1], together with [2], to understand how the interaction strength ("normalAdhesion" and "shearAdhesion" of "CohFrictPhys") is computed from grains with possibly different strength material properties ("normalCohesion" and "shearCohesion" from CohFrictMat) 2. It is the default behaviour of the "CohFrict.." model to define purely frictional interactions (without cohesion), see setCohesionNow and setCohesionOnNewContacts in [1] In particular keeping setCohesionOnNewContacts to False will do exactly what you want. 3. I'm not sure I understood your question. All contact models in Yade consider a "fmin" threshold for the normal force fn (I'm considering here compression as positive). This "fmin" threshold in Newton is usually never directly set, though (see previous answers for the "CohFrict.." model) As for a maximum compressive force threshold "fmax" I'm not aware any contact law in Yade considers such thing. If this is what you want, you will probably have to write your own contact law. Jerome [1] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_CohFrictMat_CohFrictMat_CohFrictPhys [2] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.CohFrictPhys -- 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 #295225]: Cohesion Distribution
New question #295225 on Yade: https://answers.launchpad.net/yade/+question/295225 Hi All, Would you please let me know, how can can model a cemented - 100% bonded - sample with three different material which have different level of cohesion. In other words if all of the grains connected to each other - very dense sample - how the force/strength/cohesion (?) between neighbourhood grains with different material properties will be calculated on YADE. 2- If contacts between some spheres during the compression test re-appeared. how can I write the script to prevent taking into account the cohesion between these particular spheres. 3- How can I introduce limitation for implying force, I mean, implying fn on sample, where fminhttps://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp