Re: [Yade-users] [Question #669048]: CU triaxial (PFV)
Question #669048 on Yade changed: https://answers.launchpad.net/yade/+question/669048 Status: Solved => Open SayedHessam is still having a problem: Dear Robert, Sorry for the lack of information. BTW, you can find herewith my script, as you requested: ### DEFINING ENGINES ### triax=TriaxialStressController( ## TriaxialStressController will be used to control stress and strain. It controls particles size and plates positions. ## this control of boundary conditions was used for instance in http://dx.doi.org/10.1016/j.ijengsci.2008.07.002 maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth) finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth) thickness = 0, ## switch stress/strain control using a bitmask. What is a bitmask, huh?! ## Say x=1 if stess is controlled on x, else x=0. Same for for y and z, which are 1 or 0. ## Then an integer uniquely defining the combination of all these tests is: mask = x*1 + y*2 + z*4 ## to put it differently, the mask is the integer whose binary representation is xyz, i.e. ## "100" (1) means "x", "110" (3) means "x and y", "111" (7) means "x and y and z", etc. stressMask = 7, internalCompaction=True, # If true the confining pressure is generated by growing particles ) newton=NewtonIntegrator(damping=damp) 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()] ), ## We will use the global stiffness of each body to determine an optimal timestep (see https://yade-dem.org/w/images/1/1b/Chareyre_licensed.pdf) FlowEngine(dead=1,label="flow"),#introduced as a dead engine for the moment, see 2nd section GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8), triax, TriaxialStateRecorder(iterPeriod=100,file='WallStresses'+table.key), newton ] #Display spheres with 2 colors for seeing rotations better Gl1_Sphere.stripes=0 if nRead==0: yade.qt.Controller(), yade.qt.View() ## UNCOMMENT THE FOLLOWING SECTIONS ONE BY ONE ## DEPENDING ON YOUR EDITOR, IT COULD BE DONE ## BY SELECTING THE CODE BLOCKS BETWEEN THE SUBTITLES ## AND PRESSING CTRL+SHIFT+D ### ### APPLYING CONFINING PRESSURE ### ### #the value of (isotropic) confining stress defines the target stress to be applied in all three directions triax.goal1=triax.goal2=triax.goal3=-1 while 1: O.run(1000, True) #the global unbalanced force on dynamic bodies, thus excluding boundaries, which are not at equilibrium unb=unbalancedForce() print 'unbalanced force:',unb,' mean stress: ',triax.meanStress if unb -5: O.run(100) devi_test = -triax.stress(triax.wall_top_id)[1] - (-triax.stress(triax.wall_right_id)[0]\ -triax.stress(triax.wall_front_id)[2]) / 2.0 #B. Activate flow engine and set boundary conditions in order to get permeability flow.dead=0 flow.defTolerance=0.3 flow.meshUpdateInterval=200 flow.useSolver=3 flow.permeabilityFactor=1 flow.viscosity=1.3e-3 flow.fluidBulkModulus = 2e9 flow.imposePressure(Vector3(triax.width/2,triax.height/2,triax.depth/2),0.001) flow.bndCondIsPressure=[0,0,0,0,0,0] flow.bndCondValue=[0,0,0,0,0,0] flow.boundaryUseMaxMin=[0,0,0,0,0,0] O.dt=0.1e-3 O.dynDt=False O.run(1,1) Qin = flow.getBoundaryFlux(2) Qout = flow.getBoundaryFlux(3) tic_toc = 0 print(O.iter) print(triax.stressMask) print(triax.goal1) print(triax.goal2) print(triax.goal3) Regards Sam -- 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 #669048]: CU triaxial (PFV)
Question #669048 on Yade changed: https://answers.launchpad.net/yade/+question/669048 Status: Needs information => Solved SayedHessam confirmed that the question is solved: Dear Robert, Sorry for the lack of information. BTW, you can find herewith my script, as you req -- 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 #669048]: CU triaxial (PFV)
Question #669048 on Yade changed: https://answers.launchpad.net/yade/+question/669048 SayedHessam posted a new comment: Dear Robert, Sorry for the lack of information. BTW, you can find herewith my script, as you requested: ### DEFINING ENGINES ### triax=TriaxialStressController( ## TriaxialStressController will be used to control stress and strain. It controls particles size and plates positions. ## this control of boundary conditions was used for instance in http://dx.doi.org/10.1016/j.ijengsci.2008.07.002 maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth) finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth) thickness = 0, ## switch stress/strain control using a bitmask. What is a bitmask, huh?! ## Say x=1 if stess is controlled on x, else x=0. Same for for y and z, which are 1 or 0. ## Then an integer uniquely defining the combination of all these tests is: mask = x*1 + y*2 + z*4 ## to put it differently, the mask is the integer whose binary representation is xyz, i.e. ## "100" (1) means "x", "110" (3) means "x and y", "111" (7) means "x and y and z", etc. stressMask = 7, internalCompaction=True, # If true the confining pressure is generated by growing particles ) newton=NewtonIntegrator(damping=damp) 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()] ), ## We will use the global stiffness of each body to determine an optimal timestep (see https://yade-dem.org/w/images/1/1b/Chareyre_licensed.pdf) FlowEngine(dead=1,label="flow"),#introduced as a dead engine for the moment, see 2nd section GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8), triax, TriaxialStateRecorder(iterPeriod=100,file='WallStresses'+table.key), newton ] #Display spheres with 2 colors for seeing rotations better Gl1_Sphere.stripes=0 if nRead==0: yade.qt.Controller(), yade.qt.View() ## UNCOMMENT THE FOLLOWING SECTIONS ONE BY ONE ## DEPENDING ON YOUR EDITOR, IT COULD BE DONE ## BY SELECTING THE CODE BLOCKS BETWEEN THE SUBTITLES ## AND PRESSING CTRL+SHIFT+D ### ### APPLYING CONFINING PRESSURE ### ### #the value of (isotropic) confining stress defines the target stress to be applied in all three directions triax.goal1=triax.goal2=triax.goal3=-1 while 1: O.run(1000, True) #the global unbalanced force on dynamic bodies, thus excluding boundaries, which are not at equilibrium unb=unbalancedForce() print 'unbalanced force:',unb,' mean stress: ',triax.meanStress if unb -5: O.run(100) devi_test = -triax.stress(triax.wall_top_id)[1] - (-triax.stress(triax.wall_right_id)[0]\ -triax.stress(triax.wall_front_id)[2]) / 2.0 #B. Activate flow engine and set boundary conditions in order to get permeability flow.dead=0 flow.defTolerance=0.3 flow.meshUpdateInterval=200 flow.useSolver=3 flow.permeabilityFactor=1 flow.viscosity=1.3e-3 flow.fluidBulkModulus = 2e9 flow.imposePressure(Vector3(triax.width/2,triax.height/2,triax.depth/2),0.001) flow.bndCondIsPressure=[0,0,0,0,0,0] flow.bndCondValue=[0,0,0,0,0,0] flow.boundaryUseMaxMin=[0,0,0,0,0,0] O.dt=0.1e-3 O.dynDt=False O.run(1,1) Qin = flow.getBoundaryFlux(2) Qout = flow.getBoundaryFlux(3) tic_toc = 0 print(O.iter) print(triax.stressMask) print(triax.goal1) print(triax.goal2) print(triax.goal3) Regards Sam -- 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 #669048]: CU triaxial (PFV)
Question #669048 on Yade changed: https://answers.launchpad.net/yade/+question/669048 Status: Open => Needs information Robert Caulk requested more information: Hello Sam, CHOLMOD usually throws this error when the boundary conditions are improperly defined (hence the not positive definite). But it might also throw this error if the time step is too large or if your packing has exploded. One way or the other, there is no way to know which problem is yours since you have simply posted the error and you have not posted a minimal working example [1]. [1]https://yade-dem.org/wiki/Howtoask Cheers, Robert -- 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 #669006]: Pyrunner(command) problem for Triaxial simulation
Question #669006 on Yade changed: https://answers.launchpad.net/yade/+question/669006 Status: Open => Solved De zhang confirmed that the question is solved: @Robert, @Jan Stránský, Thanks! I have found the problem and comprehend the using of PyRunner and O.engines+. Thank you for your help~ Best Regards! De Zhang -- 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 #669045]: How to develop voids of different sizes to a dense pack material
Question #669045 on Yade changed: https://answers.launchpad.net/yade/+question/669045 Summary changed to: How to develop voids of different sizes to a dense pack material -- 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