Re: [Yade-users] [Question #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?
Question #700980 on Yade changed: https://answers.launchpad.net/yade/+question/700980 Status: Answered => Solved Xifan Li confirmed that the question is solved: https://answers.launchpad.net/yade/+question/701030 I just solved this problem. -- 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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?
Question #700980 on Yade changed: https://answers.launchpad.net/yade/+question/700980 Jérôme Duriez proposed the following answer: Please do not repeat yourself in two different questions (here and https://answers.launchpad.net/yade/+question/700957) -- 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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?
Question #700980 on Yade changed: https://answers.launchpad.net/yade/+question/700980 Xifan Li posted a new comment: Thank you Robert, I have changed the engine I use from TriaxialCompressionEngine to TriaxialStressController, My code is below. This code can run normally, but it still cannot make the cyclic loading realizable. [1] So I would like to know how to change the parameters in the TriaxialStressController engine while the simulation is running? (Like change the triax.goal1 and tiax.goal2 and the stressMask? ### from yade import pack # The following 5 lines will be used later for batch execution nRead=readParamsFromTable( num_spheres=1000,# number of spheres compFricDegree = 30, # contact friction during the confining phase key='_triax_base_', # put you simulation's name here unknownOk=True ) from yade.params import table num_spheres=table.num_spheres# number of spheres key=table.key targetPorosity = 0.43 #the porosity we want for the packing 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.02 # loading rate (strain rate) damp=0.2 # damping coefficient stabilityThreshold=0.01 # we test unbalancedForce against this value in different loops (see below) young=5e6 # contact stiffness mn,mx=Vector3(0,0,0),Vector3(10,10,.1) # corners of the initial packing ## create materials for spheres and plates 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')) ## create walls around the packing walls=aabbWalls([mn,mx],thickness=0,material='walls') wallIds=O.bodies.append(walls) ## use a SpherePack object to generate a random loose particles packing sp=pack.SpherePack() sp.makeCloud(minCorner=mn,maxCorner=mx,rRelFuzz=0,num=2000) sp.toSimulation(material='spheres') triax=TriaxialStressController( maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth) finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth) thickness = 0, internalCompaction=False, stressMask = 1, goal1=-2e5, goal2=rate, ) 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, TriaxialStateRecorder(iterPeriod=100, file='WallStresses.txt'), NewtonIntegrator(damping=damp), PyRunner(command='triaxload()',iterPeriod=1, label='triaxload'), #PyRunner(command='triaxload()',realPeriod=2, label='triaxload') ] triax.stressMask = 1 triax.goal1=-2e5 triax.goal2=rate def triaxload(): O.triax.goal1=-3e5 if abs(O.triax.stress(triax.wall_top_id)[1])> 15: O.triax.stressMask = 1 O.triax.goal1=-3e5 O.triax.goal2=rate triaxload.command=('triaxunload') def triaxunload(): if abs(triax.stress(triax.wall_top_id)[1])< 5e4: triax.stressMask = 1 triax.goal1=-1e5 triax.goal2=rate from yade import plot O.engines=O.engines[0:5]+[PyRunner(iterPeriod=20,command='history()',label='recorder')]+O.engines[5:7] def history(): plot.addData(e11=-triax.strain[0], e22=-triax.strain[1], s11=-triax.stress(triax.wall_right_id)[0], s22=-triax.stress(triax.wall_top_id)[1], i=O.iter) plot.plots={'e11': ('s11',),'e22': ('s22',)} O.saveTmp() plot.plot() -- 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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?
Question #700980 on Yade changed: https://answers.launchpad.net/yade/+question/700980 Status: Open => Answered Robert Caulk proposed the following answer: Hello, I would like to help you, but will you please separate your questions so that we can answer them individually? One question per thread, thank you so much for taking the time to read [2] to understand how we are working to make this knowledge base sustainable and reusable for future users. As we point out in [1]: "Warning This engine is deprecated, please switch to TriaxialStressController if you expect long term support." So I would suggest you switch to TriaxialStressController. Cheers, Robert [1]https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.TriaxialCompressionEngine [2]https://www.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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?
Question #700980 on Yade changed: https://answers.launchpad.net/yade/+question/700980 Bret Ritchie posted a new comment: Most studies on strain rate effects on shearing behavior of saturated clay have employed quasi-static triaxial compression tests under strain-controlled conditions, potentially with either pore water pressure measurements, or impulse loading compression tests which were under stress-controlled conditions. https://www.vwcredit.me/ -- 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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?
Question #700980 on Yade changed: https://answers.launchpad.net/yade/+question/700980 Description changed to: The problem I have got: [1]https://answers.launchpad.net/yade/+question/700957 In the last two days of trial and error and thinking, I have discovered that the strain rate in TriaxialCompressionEngine can be changed when the stress loading axis becomes negative, [2] so what I want to know is whether I can have a situation in the simulation where the strain rate can become negative when the stress in a certain axis reaches a certain value. [3] However, I have found that once the simulation is started, it seems that the preset code in the engine cannot be changed later in the code (i.e. the strainRate set in the engine is constant at the beginning), so I would like to know if there is a way to make the strainRate change during a process? [4] I have also noticed that there is a code that can be used for making an engine temporarily deactivated and only resurrect it at a later point ---dead(=false). So I want to know how to apply this code to my simulation code. [5] I have put the code 'dead = True' to my simulation code, yes the simulation did not run at all. But regarding to the demonstration of the code: ' can be used for making an engine temporarily deactivated and only resurrect it at a later point.' How can I activate this engine 'at a later point'? And How to define the 'later point'? Cheers -- 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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?
New question #700980 on Yade: https://answers.launchpad.net/yade/+question/700980 The problem I have got: [1]https://answers.launchpad.net/yade/+question/700957 In the last two days of trial and error and thinking, I have discovered that the strain rate in TriaxialCompressionEngine can be changed when the stress loading axis becomes negative, [2] so what I want to know is whether I can have a situation in the simulation where the strain rate can become negative when the stress in a certain axis reaches a certain value. [3] However, I have found that once the simulation is started, it seems that the preset code in the engine cannot be changed later in the code (i.e. the strainRate set in the engine is constant at the beginning), so I would like to know if there is a way to make the strainRate change during a process? [4] I have also noticed that there is a code that can be used for making an engine temporarily deactivated and only resurrect it at a later point---dead(=false). So I want to know how to apply this code to my simulation code. Cheers -- 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