Re: [Yade-users] [Question #708058]: Cubic fluid domain
Question #708058 on Yade changed: https://answers.launchpad.net/yade/+question/708058 Description changed to: -- 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 #708058]: Cubic fluid domain
New question #708058 on Yade: https://answers.launchpad.net/yade/+question/708058 Dear Team, I would like to immerse the spherical domain in a cubic fluid domain. Then I apply foice through big blue ball. Am I correct that except from big blue ball the hydrostatic (water density*g*distance between top wall and particle surface) water pressure also applying directly at the surface of the sphere? Regarding to big blue ball it created 1e251 pore pressure so I am concerned about it. Also I experienced some CHOLMOD warning: matrix not positive definite. file: ../Supernodal/t_cholmod_super_numeric.c line: 911 something went wrong in Cholesky factorization, use LDLt as fallback this time1 Let me attach the script Your help will be valued from yade import utils import time import datetime import os from yade import pack, plot, export import numpy as np cell_a = Vector3(0, 0, 0) cell_b = Vector3(10, 10, 10) sphere_force = Vector3(0, 0, -10) # create box walls = aabbWalls((cell_a, cell_b+Vector3(0,0,10))) O.bodies.append(walls) # add spheres sp = SpherePack() sp.makeCloud(cell_a, cell_b, rMean=0.5) cloud_ids = sp.toSimulation(color=(0,1,0)) sphere_id = O.bodies.append(sphere((5,5,18), 2, color=(0,0,1))) # setup engines O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Box_Aabb()], allowBiggerThanPeriod=True), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(), Ig2_Box_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom() ], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()] ), ForceEngine( ids=[sphere_id], force=sphere_force, label='force_engine', dead=False ), NewtonIntegrator(damping=0.3, gravity=(0,0,-9.81), label='newton_engine'), GlobalStiffnessTimeStepper(label='timestepper_engine'), PyRunner(command='addPlotData()', iterPeriod=10, label='plotter', dead=False), FlowEngine(dead=False, label='flow_engine'), ] flow_engine.defTolerance=0.3 flow_engine.meshUpdateInterval=200 flow_engine.useSolver=3 flow_engine.permeabilityFactor=1 flow_engine.viscosity=0.00298 flow_engine.bndCondIsPressure=[0,0,0,0,0,0] flow_engine.fluidBulkModulus=0.0001 flow_engine.bndCondValue=[0,0,0,0,0,0] O.dt = 0.1e-5 flow_engine.boundaryUseMaxMin=[0,0,0,0,0,0] flow_engine.updateTriangulation=True def addPlotData(): plot.addData( p=flow_engine.getPorePressure((0.35,0.35,0.035)), t=O.time, ) plot.plots = { 't': ('p') } 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 #707197]: Undrained triaxial (NOT CONSTANT VOLUME)
Question #707197 on Yade changed: https://answers.launchpad.net/yade/+question/707197 Status: Answered => Open Fedor is still having a problem: Hello Yade Team Could you please find a minute to reply my request? Best -- 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 #707197]: Undrained triaxial (NOT CONSTANT VOLUME)
Question #707197 on Yade changed: https://answers.launchpad.net/yade/+question/707197 Fedor posted a new comment: Hello. Thanks for reply because I almost lost hope. Yes. I triple check. It is working. -- 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 #707197]: Undrained triaxial (NOT CONSTANT VOLUME)
Question #707197 on Yade changed: https://answers.launchpad.net/yade/+question/707197 Status: Expired => Open Fedor is still having a problem: Should I close this 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 #707197]: Undrained triaxial (NOT CONSTANT VOLUME)
Question #707197 on Yade changed: https://answers.launchpad.net/yade/+question/707197 Fedor posted a new comment: Hello Bruno, still need your help regarding this stuff Grand-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
Re: [Yade-users] [Question #707197]: Undrained triaxial (NOT CONSTANT VOLUME)
Question #707197 on Yade changed: https://answers.launchpad.net/yade/+question/707197 Fedor posted a new comment: Dear all, any help will be appreciated -- 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 #707197]: Undrained triaxial (NOT CONSTANT VOLUME)
Question #707197 on Yade changed: https://answers.launchpad.net/yade/+question/707197 Summary changed to: Undrained triaxial (NOT CONSTANT VOLUME) Description changed to: Please help! I have been struggled with flow engine since March and I experience depression or something. I set up the triaxial undrained simulation and faced some difficulties. First thing, pore pressure responce is wierd. I could not get the increase of pore pressure up to max value. I change viscosity, time step, everyting , compressibility of fluid (diffrent bulk modules). The pore pressure responce is 1e-10 or something and goes to negative value. Please give me some suggestions how to approach a adequete results (which is corresponding to soil mechanics theory). from __future__ import print_function import time import datetime import os from yade import pack, plot, export import numpy as np # VTK RECORDER PARAMS vtk_output = True vtk_iter = 1000 vtk_dir = 'vtk_output' #vtk_recorders = ['all'] vtk_recorders = ['spheres', 'facets', 'boxes', 'id', 'mass', 'clumpId', 'colors', 'mask', 'materialId', 'coordNumber', 'velocity', 'stress', 'force', 'bstresses'] if vtk_output == True: vtk_dir += '/' + datetime.datetime.now().strftime("%Y-%m-%d_%H.%M.%S") + '/' if not os.path.exists(vtk_dir): os.makedirs(vtk_dir) #FIXED PARAMETERS k=3E7 poisson=0.2 R=1e-4 dimcell = 2 density= 1e12 sigmaIso=-1e5 young=np.abs(k*sigmaIso*R*2) targetVoid=0.77 frictionAngle=radians(30) alphaKr=2 alphaKtw=2 etaRoll=.15 sp = pack.SpherePack() sp.makeCloud((0,0,0),(dimcell, dimcell, dimcell),rMean=.1,seed=1) pp = O.materials.append(CohFrictMat( young=young, poisson=poisson, frictionAngle=radians(30), density=density, isCohesive=False, momentRotationLaw=True, etaRoll=etaRoll,label='spheres' )) walls = aabbWalls(((0, 0, 0), (dimcell, dimcell, dimcell)), thickness=0, material='spheres') wallIds = O.bodies.append(walls) sp.toSimulation(material='spheres') O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Box_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D(), Ig2_Box_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment( useIncrementalForm=True, always_use_moment_law=True), Law2_ScGeom_FrictPhys_CundallStrack()]), TriaxialStressController( goal1=sigmaIso, goal2=sigmaIso, goal3=sigmaIso, thickness=0, stressMask=7, internalCompaction = False, label='triax', ), FlowEngine(dead=True, label="flow", ), NewtonIntegrator(damping=.2), PyRunner(command='addPlotData()', iterPeriod=500, label='plotter', dead=True), PyRunner(command='testHook()', iterPeriod=10, label='test_hook', dead=False), PyRunner(command='triaxFinished()', iterPeriod=10, label='triax_finished', dead=True), VTKRecorder(fileName=vtk_dir+'3d-vtk-', recorders=vtk_recorders, iterPeriod=vtk_iter, dead=not vtk_output) ] O.dt = 0.001 O.dynDt = False print('time step',O.dt) def triaxDone(): u=utils.porosity() ev=u/(1-u) frictionAngle = radians(30) while ev > targetVoid: frictionAngle *= 0.99 setContactFriction(frictionAngle) O.run(3000, True) u=utils.porosity() ev=u/(1-u) print ("Iteration: ", O.iter, "\tFriction angle: ", frictionAngle,"\tVoid:",ev) startExx = startEyy = startEzz = None def initPlotValues(): global startExx global startEyy global startEzz startEzz=-triax.strain[2] startEyy=triax.strain[1] startExx=triax.strain[0] def addPlotData(): global startExx global startEyy global startEzz if startExx is None: initPlotValues() plot.addData( i=O.iter, Ezz=triax.strain[2] - startEzz, Eyy=triax.strain[1] - startEyy, Exx=triax.strain[0] - startExx, e=utils.porosity()/(1-utils.porosity()), q=abs(utils.getStress()[2,2]-utils.getStress()[0,0]), V=triax.volumetricStrain, p=flow.getPorePressure((1,1,1)), t=O.time, ) def testHook(): if abs(sigmaIso)*0.99 <= abs(triax.meanStress) <= abs(sigmaIso)*1.01: O.pause() test_hook.dead = True print("FIRST STAGE DONE") def Deviatoric(): flow.dead = False flow.meshUpdateInterval = 5000 #flow.useSolver = 3 #flow.permeabilityFactor = 1 fl
[Yade-users] [Question #707197]: Undrained triaxial (NOT CONSTATNT VOLUME)
New question #707197 on Yade: https://answers.launchpad.net/yade/+question/707197 Please help! I have been struggled with flow engine since March and I experience depression or something. I set up the triaxial undrained simulation and faced some difficulties. First thing, pore pressure responce is wierd. I could not get the increase of pore pressure up to max value. I change viscosity, time step, everyting , compressibility of fluid (diffrent bulk modules). The pore pressure responce is 1e-10 or something and goes to negative value. Please give me some suggestions how to approach a adequete results (which is corresponding to soil mechanics theory). -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Status: Answered => Solved Fedor confirmed that the question is solved: Thanks a bunch -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Hello Bruno. Thank you for your support and patience. -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Good news) The problem was related to vtk recorder (interaction part). I comment it and it works well. Thanks a bunch. Bruno, let me ask you something ties to simulation. During the simulation i obtained this. n [1]: Shop:401 static yade::Matrix3r yade::Shop::getStress(yade::Real): getStress used with default volume tend to underestimate the stress due to overlaps on the boundaries, passing actual volume could be more safe. How should i deal with it? -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: fedor@fedor-virtual-machine:~$ yadedaily Welcome to Yade 20230525-7264~94b01fd~jammy1 Using python version: 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] TCP python prompt on localhost:9000, auth cookie `syksce' XMLRPC info provider on http://localhost:21000 [[ ^L clears screen, ^U kills line. F12 controller, F11 3D view (press "h" in 3D view for help), F10 both, F9 generator, F8 plot. ]] In [1]: yade.libVersions.printAllVersions() ``` Yade version : 20230525-7264~94b01fd~jammy1 Yade features : LOGGER USEFUL_ERRORS COMPLEX_MP VTK OPENMP GTS QT5 CGAL PFVFLOW PFVFLOW LINSOLV MPI TWOPHASEFLOW LS_DEM FEMLIKE GL2PS LBMFLOW THERMAL PARTIALSAT POTENTIAL_PARTICLES POTENTIAL_BLOCKS Yade config dir: ~/.config/yadedaily Yade precision : 53 bits, 15 decimal places, with mpmath, PrecisionDouble Yade RealHP<…> : (15, 33, 45, 60, 120, 150, 300) decimal digits in C++, (15, 33) decimal digits accessible from python ``` Libraries used : | library | cmake | C++ | | - | - | --- | | boost | 107400| 1.74.0 | | cgal | | 5.4 | | clp | 1.17.5| 1.17.5 | | cmake | 3.22.1| | | coinutils | 2.11.4| 2.11.4 | | compiler | /usr/bin/c++ 11.3.0 | gcc 11.3.0 | | eigen | 3.4.0 | 3.4.0 | | freeglut | 2.8.1 | | | gl| | 20190805| | ipython | 7.31.1| | | metis | | 5.1.0 | | mpi | 3.1 | ompi:4.1.2 | | mpi4py| 3.1.3 | | | mpmath| 1.2.1 | | | openblas | | OpenBLAS 0.3.20| | python| 3.10.6| 3.10.6 | | qglviewer | | 2.6.3 | | qt| | 5.15.3 | | sqlite| | 3.37.2 | | suitesparse | 5.10.1| 5.10.1 | | vtk | 9.1.0 | 9.1.0 | ``` Linux version : Ubuntu 22.04.2 LTS Architecture : amd64 Little endian : True ``` -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Dear Bruno. I used the yadedaily exactly you did Welcome to Yade 20230525-7264~94b01fd~focal1 Using python version: 3.8.10 (default, May 26 2023, 14:05:08) [GCC 9.4.0] TCP python prompt on localhost:9000, auth cookie `yeukdc' XMLRPC info provider on http://localhost:21000 Running script N3.py INFO:matplotlib.font_manager:Could not open font file /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf: In FT2Font: Could not set the fontsize INFO:matplotlib.font_manager:generated new fontManager time step 0.4082482904638631 negative volume for an ordinary pore (temp warning, should still be safe) negative volume for an ordinary pore (temp warning, should still be safe) negative volume for an ordinary pore (temp warning, should still be safe) ThreadRunner:35 void yade::ThreadRunner::run(): Exception occured: CGAL ERROR: assertion violation! Expr: dexp != 2047 File: /usr/include/CGAL/Mpzf.h Line: 404 Explanation: Creating an Mpzf from infinity or NaN. CHOLMOD error: invalid xtype. file: ../Cholesky/cholmod_analyze.c line: 431 CHOLMOD error: argument missing. file: ../Cholesky/cholmod_factorize.c line: 121 Segmentation fault (core dumped) -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Sorry, I skipped your PS fm547@ubuntu:~$ yadedaily Welcome to Yade 20230525-7264~94b01fd~focal1 Using python version: 3.8.10 (default, May 26 2023, 14:05:08) [GCC 9.4.0] TCP python prompt on localhost:9000, auth cookie `ckeuay' XMLRPC info provider on http://localhost:21000 [[ ^L clears screen, ^U kills line. F12 controller, F11 3D view (press "h" in 3D view for help), F10 both, F9 generator, F8 plot. ]] In [1]: yade.libVersions.printAllVersions() ``` Yade version : 20230525-7264~94b01fd~focal1 Yade features : LOGGER USEFUL_ERRORS COMPLEX_MP VTK OPENMP GTS QT5 CGAL PFVFLOW PFVFLOW LINSOLV MPI TWOPHASEFLOW LS_DEM FEMLIKE GL2PS LBMFLOW THERMAL PARTIALSAT POTENTIAL_PARTICLES POTENTIAL_BLOCKS Yade config dir: ~/.config/yadedaily Yade precision : 53 bits, 15 decimal places, with mpmath, PrecisionDouble Yade RealHP<…> : (15, 33, 45, 60, 120, 150, 300) decimal digits in C++, (15, 33) decimal digits accessible from python ``` Libraries used : | library | cmake| C++| | - | | -- | | boost | 107100 | 1.71.0 | | cgal | | 5.0.2 | | clp | 1.17.5 | 1.17.5 | | cmake | 3.16.3 || | coinutils | 2.11.4 | 2.11.4 | | compiler | /usr/bin/c++ 9.4.0 | gcc 9.4.0 | | eigen | 3.3.7| 3.3.7 | | freeglut | 2.8.1|| | gl| | 20190805 | | ipython | 7.13.0 || | metis | | 5.1.0 | | mpi | 3.1 | ompi:4.0.3 | | mpi4py| 3.0.3|| | mpmath| 1.1.0|| | openblas | | OpenBLAS 0.3.8| | python| 3.8.10 | 3.8.10 | | qglviewer | | 2.6.3 | | qt| | 5.12.8 | | sqlite| | 3.31.1 | | suitesparse | 5.7.1| 5.7.1 | | vtk | 6.3.0| 6.3.0 | ``` Linux version : Ubuntu 20.04.6 LTS Architecture : amd64 Little endian : True ``` -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: fedor@fedor-virtual-machine:~$ yadedaily N3.py Welcome to Yade 20230525-7264~94b01fd~jammy1 Using python version: 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] TCP python prompt on localhost:9000, auth cookie `seacus' XMLRPC info provider on http://localhost:21000 Running script N3.py time step 0.015408844130320731 Segmentation fault (core dumped) -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Welcome to Yade 2022.01a Using python version: 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] TCP python prompt on localhost:9000, auth cookie `dyseak' XMLRPC info provider on http://localhost:21000 Running script N3.py time step 0.0006163537652128292 Segmentation fault (core dumped) -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Yade 2018.02b -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: No no. I run scrip as it is ( which I attached ) with flow.fluidBulkModulus=0.1 . And I received this error CHOLMOD error: invalid xtype. file: ../Cholesky/cholmod_analyze.c line: 431 CHOLMOD error: argument missing. file: ../Cholesky/cholmod_factorize.c line: 121 Segmentation fault -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Thanks a lot. >Mathematically it should be possible to solve for pressure when the fluid is >compressible (else it is ill-posed), but it requires that at least the initial >value of pressure is defined. That's why I tried to do it both with compressible fluid and some initial water pressure inside. Maybe I did't understand correctly. In undrained experiment usually the pore pressure is rising during deviatoric and reach the max value which is corresponded minimum effective stress. Now I tried with comprssible fluid and receive this CHOLMOD error: invalid xtype. file: ../Cholesky/cholmod_analyze.c line: 431 CHOLMOD error: argument missing. file: ../Cholesky/cholmod_factorize.c line: 121 Segmentation fault -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Hey Yuri, Check the manual please is written as a coefficient -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Hello, Thank you for reply. I imposed pressure (flow.imposePressure) to compressible fluid (flow.fluidBulkModulus=0.1) but I am concerned because, first - volumetric strain should not change during undrained condition, second - i could not see pore pressure built up. Could you recommend me something? -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Dum spiro spero -- 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 #706897]: YADE-OPENFOAM
New question #706897 on Yade: https://answers.launchpad.net/yade/+question/706897 Dear All, I was wondering if I can do triaxial test coupling. In this simulation the cube or cylinder changes the shape during let say deviatoric phase. So OpenFoam wants the domain constant. It means it is imposiible to simulate those class of simulation or I am wrong? -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Brilliant! -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Dear Bruno, I was wondering if you checked the script? \ Kind regards, Fedor -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Hi Yuri, thanks for your comment -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Hello Bruno, thank you for reply. Script is attached below. I want to see as in theory the result of increasing of pore pressure up to a constant constant value. from __future__ import print_function import time import datetime import os from yade import pack, plot, export import numpy as np # VTK RECORDER PARAMS vtk_output = True vtk_iter = 100 vtk_dir = 'vtk_output' vtk_recorders = ['all'] if vtk_output == True: vtk_dir += '/' + datetime.datetime.now().strftime("%Y-%m-%d_%H.%M.%S") + '/' if not os.path.exists(vtk_dir): os.makedirs(vtk_dir) #FIXED PARAMETERS k=3E7 poisson=0.2 R=1e-4 dimcell = 0.002 density= 1e12 sigmaIso=-1e5 young=np.abs(k*sigmaIso*R*2) targetVoid=0.7 frictionAngle=radians(30) alphaKr=2 alphaKtw=2 etaRoll=.15 #SETTINGS # removed O.periodic = True # removed O.cell.hSize = Matrix3(dimcell , 0, 0, 0, dimcell , 0, 0, 0, dimcell ) sp = pack.SpherePack() diameter=[0.75,0.000106,0.00015,0.00025,0.00030,0.000425,0.000850] part=[0.0037,0.0263,0.1319,0.7136,0.8681,0.9939,1] sp.makeCloud((0, 0, 0), (dimcell, dimcell, dimcell), psdSizes=diameter,psdCumm=part,distributeMass=True,seed=1) pp = O.materials.append(CohFrictMat( young=young, poisson=poisson, frictionAngle=radians(30), density=density, isCohesive=False, momentRotationLaw=True, etaRoll=etaRoll,label='spheres' )) walls = aabbWalls(((0, 0, 0), (dimcell, dimcell, dimcell)), thickness=0, material='spheres') wallIds = O.bodies.append(walls) sp.toSimulation(material='spheres') O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Box_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D(), Ig2_Box_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment( useIncrementalForm=True, always_use_moment_law=True), Law2_ScGeom_FrictPhys_CundallStrack()]), TriaxialStressController( goal1=sigmaIso, goal2=sigmaIso, goal3=sigmaIso, thickness=0, stressMask=7, max_vel=0.05, internalCompaction = False, label='triax', ), FlowEngine(dead=True, label="flow", ), NewtonIntegrator(damping=.2), PyRunner(command='addPlotData()', iterPeriod=500, label='plotter', dead=True), PyRunner(command='testHook()', iterPeriod=10, label='test_hook', dead=False), PyRunner(command='triaxFinished()', iterPeriod=10, label='triax_finished', dead=True), VTKRecorder(fileName=vtk_dir+'3d-vtk-', recorders=vtk_recorders, iterPeriod=vtk_iter, dead=not vtk_output) ] O.dt = 0.1 * PWaveTimeStep() print('time step',O.dt) def triaxDone(): u=utils.porosity() ev=u/(1-u) frictionAngle = radians(30) while ev > targetVoid: frictionAngle *= 0.99 setContactFriction(frictionAngle) O.run(3000, True) u=utils.porosity() ev=u/(1-u) print ("Iteration: ", O.iter, "\tFriction angle: ", frictionAngle,"\tVoid:",ev) def addPlotData(): plot.addData( i=O.iter, Ezz=-triax.strain[2], Eyy=triax.strain[1], Exx=triax.strain[0], e=utils.porosity()/(1-utils.porosity()), q=abs(utils.getStress()[2,2]-utils.getStress()[0,0]), V=triax.volumetricStrain, p=flow.getPorePressure((0.0015,0.0015,0.0015)), t=O.time, ) def testHook(): if abs(sigmaIso)*0.99 <= abs(triax.meanStress) <= abs(sigmaIso)*1.01: O.pause() test_hook.dead = True print("FIRST STAGE DONE") def Deviatoric(): flow.dead = False #flow.defTolerance = 0.8 flow.meshUpdateInterval = 800 #flow.useSolver = 3 flow.permeabilityFactor = 1 flow.viscosity = 0.00298 flow.bndCondIsPressure = [0, 0, 0, 0, 0, 0] flow.fluidBulkModulus=0.1 flow.bndCondValue = [0, 0, 0, 0, 0, 0] flow.boundaryUseMaxMin = [0, 0, 0, 0, 0, 0] #flow.imposePressure(Vector3(triax.width/2,triax.height/2,triax.depth/2),100.001) triax.wall_bottom_activated = True triax.wall_top_activated = True triax.wall_back_activated = True triax.wall_front_activated = True triax.wall_left_activated = True triax.wall_right_activated = True triax.stressMask = 3 triax.goal1 = sigmaIso triax.goal2 = sigmaIso triax.goal3 = -0.0001 tr
Re: [Yade-users] [Question #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Description changed to: Hello. Can you please provide any information how to implement undrained condition with flow engine? When I change boundary condition in example script (oedometric.py) and put fluidBulkModulus=0.1 (compressible scheme) I cannot achive undrained behavior. Kind regards, Fedor -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Description changed to: Hello. Can you please provide any information how to implement undrained condition with flow engine? When I change boundary condition in example script (oedometric.py) and put fluidBulkModulus=0.1 (compressible scheme) I cannot achieve undrained behavior. Kind regards, Fedor -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Fedor posted a new comment: Could you give some suggestions how the undrained condition might be implemented using flowengine? -- 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 #706740]: Excess pore-water pressure in triaxial test
Question #706740 on Yade changed: https://answers.launchpad.net/yade/+question/706740 Description changed to: Dear All, The modelling pore-water pressure evolution during undrained triaxial compression tests was a complete fiasco. I used p=flow.getPorePressure and when i plotted relation p vs axial deformation I did not see a result of increase in the excess pore pressure volume. Moreover, I plotted volumetric strain which also confused me (in undrained condition volume should not change). There is my script. I do appreciate help. from __future__ import print_function import time import datetime import os from yade import pack, plot, export import numpy as np # VTK RECORDER PARAMS vtk_output = True vtk_iter = 100 vtk_dir = 'vtk_output' vtk_recorders = ['all'] if vtk_output == True: vtk_dir += '/' + datetime.datetime.now().strftime("%Y-%m-%d_%H.%M.%S") + '/' if not os.path.exists(vtk_dir): os.makedirs(vtk_dir) #FIXED PARAMETERS k=3E7 poisson=0.2 R=1e-4 dimcell = 0.002 density= 1e12 sigmaIso=-1e5 young=np.abs(k*sigmaIso*R*2) targetVoid=0.7 frictionAngle=radians(30) alphaKr=2 alphaKtw=2 etaRoll=.15 #SETTINGS # removed O.periodic = True # removed O.cell.hSize = Matrix3(dimcell , 0, 0, 0, dimcell , 0, 0, 0, dimcell ) sp = pack.SpherePack() diameter=[0.75,0.000106,0.00015,0.00025,0.00030,0.000425,0.000850] part=[0.0037,0.0263,0.1319,0.7136,0.8681,0.9939,1] sp.makeCloud((0, 0, 0), (dimcell, dimcell, dimcell), psdSizes=diameter,psdCumm=part,distributeMass=True,seed=1) pp = O.materials.append(CohFrictMat( young=young, poisson=poisson, frictionAngle=radians(30), density=density, isCohesive=False, momentRotationLaw=True, etaRoll=etaRoll,label='spheres' )) walls = aabbWalls(((0, 0, 0), (dimcell, dimcell, dimcell)), thickness=0, material='spheres') wallIds = O.bodies.append(walls) sp.toSimulation(material='spheres') O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Box_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D(), Ig2_Box_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment( useIncrementalForm=True, always_use_moment_law=True), Law2_ScGeom_FrictPhys_CundallStrack()]), TriaxialStressController( goal1=sigmaIso, goal2=sigmaIso, goal3=sigmaIso, thickness=0, stressMask=7, max_vel=0.05, internalCompaction = False, label='triax', ), FlowEngine(dead=True, label="flow", ), NewtonIntegrator(damping=.2), PyRunner(command='addPlotData()', iterPeriod=500, label='plotter', dead=True), PyRunner(command='testHook()', iterPeriod=10, label='test_hook', dead=False), PyRunner(command='triaxFinished()', iterPeriod=10, label='triax_finished', dead=True), VTKRecorder(fileName=vtk_dir+'3d-vtk-', recorders=vtk_recorders, iterPeriod=vtk_iter, dead=not vtk_output) ] O.dt = 0.1 * PWaveTimeStep() print('time step',O.dt) def triaxDone(): u=utils.porosity() ev=u/(1-u) frictionAngle = radians(30) while ev > targetVoid: frictionAngle *= 0.99 setContactFriction(frictionAngle) O.run(3000, True) u=utils.porosity() ev=u/(1-u) print ("Iteration: ", O.iter, "\tFriction angle: ", frictionAngle,"\tVoid:",ev) def addPlotData(): plot.addData( i=O.iter, Ezz=-triax.strain[2], Eyy=triax.strain[1], Exx=triax.strain[0], e=utils.porosity()/(1-utils.porosity()), q=abs(utils.getStress()[2,2]-utils.getStress()[0,0]), V=triax.volumetricStrain, p=flow.getPorePressure((0.0015,0.0015,0.0015)), t=O.time, ) def testHook(): if abs(sigmaIso)*0.99 <= abs(triax.meanStress) <= abs(sigmaIso)*1.01: O.pause() test_hook.dead = True print("FIRST STAGE DONE") def Deviatoric(): flow.dead = False #flow.defTolerance = 0.8 flow.meshUpdateInterval = 800 #flow.useSolver = 3 flow.permeabilityFactor = 1 flow.viscosity = 0.00298 flow.bndCondIsPressure = [0, 0, 0, 0, 0, 0] flow.fluidBulkModulus=0.1 #flow.imposePressure(Vector3(triax.width/2,triax.height/2,triax.depth/2),10.001) flow.bndCondValue = [0, 0, 0, 0, 0, 0] flow.boundaryUseMaxMin = [0, 0, 0, 0, 0, 0] #flow.imposePressure(Vector3(triax.width/2,triax.height/2,triax.depth/2),100.001) triax.wall_bottom_activated = True triax.wall_top_activated = True triax.wall_back_activated = True triax.wall_front_activated = True triax.wall_left_activated = True triax.wall_right_activated
[Yade-users] [Question #706740]: Excess pore-water pressure in triaxial test
New question #706740 on Yade: https://answers.launchpad.net/yade/+question/706740 Dear All, The modelling pore-water pressure evolution during undrained triaxial compression tests was a complete fiasco. I used p=flow.getPorePressure and when i plotted relation p vs axial deformation I did not see a result of increase in the excess pore pressure volume. There is my script. I do appreciate help. from __future__ import print_function import time import datetime import os from yade import pack, plot, export import numpy as np # VTK RECORDER PARAMS vtk_output = True vtk_iter = 100 vtk_dir = 'vtk_output' vtk_recorders = ['all'] if vtk_output == True: vtk_dir += '/' + datetime.datetime.now().strftime("%Y-%m-%d_%H.%M.%S") + '/' if not os.path.exists(vtk_dir): os.makedirs(vtk_dir) #FIXED PARAMETERS k=3E7 poisson=0.2 R=1e-4 dimcell = 0.002 density= 1e12 sigmaIso=-1e5 young=np.abs(k*sigmaIso*R*2) targetVoid=0.7 frictionAngle=radians(30) alphaKr=2 alphaKtw=2 etaRoll=.15 #SETTINGS # removed O.periodic = True # removed O.cell.hSize = Matrix3(dimcell , 0, 0, 0, dimcell , 0, 0, 0, dimcell ) sp = pack.SpherePack() diameter=[0.75,0.000106,0.00015,0.00025,0.00030,0.000425,0.000850] part=[0.0037,0.0263,0.1319,0.7136,0.8681,0.9939,1] sp.makeCloud((0, 0, 0), (dimcell, dimcell, dimcell), psdSizes=diameter,psdCumm=part,distributeMass=True,seed=1) pp = O.materials.append(CohFrictMat( young=young, poisson=poisson, frictionAngle=radians(30), density=density, isCohesive=False, momentRotationLaw=True, etaRoll=etaRoll,label='spheres' )) walls = aabbWalls(((0, 0, 0), (dimcell, dimcell, dimcell)), thickness=0, material='spheres') wallIds = O.bodies.append(walls) sp.toSimulation(material='spheres') O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Box_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D(), Ig2_Box_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment( useIncrementalForm=True, always_use_moment_law=True), Law2_ScGeom_FrictPhys_CundallStrack()]), TriaxialStressController( goal1=sigmaIso, goal2=sigmaIso, goal3=sigmaIso, thickness=0, stressMask=7, max_vel=0.05, internalCompaction = False, label='triax', ), FlowEngine(dead=True, label="flow", ), NewtonIntegrator(damping=.2), PyRunner(command='addPlotData()', iterPeriod=500, label='plotter', dead=True), PyRunner(command='testHook()', iterPeriod=10, label='test_hook', dead=False), PyRunner(command='triaxFinished()', iterPeriod=10, label='triax_finished', dead=True), VTKRecorder(fileName=vtk_dir+'3d-vtk-', recorders=vtk_recorders, iterPeriod=vtk_iter, dead=not vtk_output) ] O.dt = 0.1 * PWaveTimeStep() print('time step',O.dt) def triaxDone(): u=utils.porosity() ev=u/(1-u) frictionAngle = radians(30) while ev > targetVoid: frictionAngle *= 0.99 setContactFriction(frictionAngle) O.run(3000, True) u=utils.porosity() ev=u/(1-u) print ("Iteration: ", O.iter, "\tFriction angle: ", frictionAngle,"\tVoid:",ev) def addPlotData(): plot.addData( i=O.iter, Ezz=-triax.strain[2], Eyy=triax.strain[1], Exx=triax.strain[0], e=utils.porosity()/(1-utils.porosity()), q=abs(utils.getStress()[2,2]-utils.getStress()[0,0]), V=triax.volumetricStrain, p=flow.getPorePressure((0.0015,0.0015,0.0015)), t=O.time, ) def testHook(): if abs(sigmaIso)*0.99 <= abs(triax.meanStress) <= abs(sigmaIso)*1.01: O.pause() test_hook.dead = True print("FIRST STAGE DONE") def Deviatoric(): flow.dead = False #flow.defTolerance = 0.8 flow.meshUpdateInterval = 800 #flow.useSolver = 3 flow.permeabilityFactor = 1 flow.viscosity = 0.00298 flow.bndCondIsPressure = [0, 0, 0, 0, 0, 0] flow.fluidBulkModulus=0.1 #flow.imposePressure(Vector3(triax.width/2,triax.height/2,triax.depth/2),10.001) flow.bndCondValue = [0, 0, 0, 0, 0, 0] flow.boundaryUseMaxMin = [0, 0, 0, 0, 0, 0] #flow.imposePressure(Vector3(triax.width/2,triax.height/2,triax.depth/2),100.001) triax.wall_bottom_activated = True triax.wall_top_activated = True triax.wall_back_activated = True triax.wall_front_activated = True triax.wall_left_activated = True triax.wall_right_activated = True triax.stressMask = 3 triax.goal1 = sigmaIso triax.goal2 = sigmaIso triax.goal3 = -0.0001 triax.max_vel=0.000
Re: [Yade-users] [Question #703055]: imposible to reach specific porosity
Question #703055 on Yade changed: https://answers.launchpad.net/yade/+question/703055 Status: Open => Solved Fedor confirmed that the question is solved: Many thanks. Solved -- 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 #702972]: porosity control
Question #702972 on Yade changed: https://answers.launchpad.net/yade/+question/702972 Status: Open => Solved Fedor confirmed that the question is solved: Thank you -- 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 #703055]: imposible to reach specific porosity
New question #703055 on Yade: https://answers.launchpad.net/yade/+question/703055 Hello, I cannot reach the target porosity. The script based on periodical triaxial test tutorial example. After isotropic stage finished, the simulation stopped as well so that the porosity condition could not be satisfied. Maybe I am wrong with O.run command. Could you please help me? from __future__ import print_function import time import datetime import os from yade import pack, plot, export import numpy as np #FIXED PARAMETERS poisson=0.2 R=1e-3 rate=1e-2 dimcell = 0.03 density= 1e9 young=1e9 frictionAngle=radians(30) targetPorosity=0.43 #SETTINGS O.periodic = True O.cell.hSize = Matrix3(dimcell , 0, 0, 0, dimcell , 0, 0, 0, dimcell ) sp = pack.SpherePack() sp.makeCloud((0, 0, 0), (dimcell, dimcell, dimcell), rMean=R, rRelFuzz=.1, periodic=True) pp = O.materials.append(CohFrictMat( young=young, poisson=poisson, frictionAngle=frictionAngle, density=density, isCohesive=False, momentRotationLaw=True, etaRoll=.1,label='spheres' )) sp.toSimulation(material='spheres') O.engines = [ ForceResetter( ), InsertionSortCollider([Bo1_Sphere_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,always_use_moment_law=True)]), PeriTriaxController(goal=(-1e4,-1e4,-1e4), relStressTol=1e-3, stressMask=7, maxStrainRate=(rate, rate, rate), dynCell=True, maxUnbalanced=.1, label='triax', doneHook = 'triaxDone()' ), NewtonIntegrator(damping=.2), PyRunner(command='addPlotData()', iterPeriod=500), ] O.dt = .5 * PWaveTimeStep() print('time step',O.dt) def triaxDone(): frictionAngle=radians(30) while utils.porosity>targetPorosity: frictionAngle = 0.7*frictionAngle setContactFriction(frictionAngle) print (frictionAngle," porosity:",utils.porosity()) O.run(50,1) def addPlotData(): plot.addData( i=O.iter, Ezz=log(O.cell.trsf[2,2]), Eyy=log(O.cell.trsf[1,1]), Exx=log(O.cell.trsf[0,0]), szz=utils.getStress()[2,2], syy=utils.getStress()[1,1], sxx=utils.getStress()[0,0], u=utils.porosity() ) # define what to plot plot.plots = { 'i ': ('sxx', 'syy', 'szz'), ' i': ('Exx', 'Eyy', 'Ezz'), ' i ':('u') # energy plot } # show the plot 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 #702972]: porosity control
Question #702972 on Yade changed: https://answers.launchpad.net/yade/+question/702972 Fedor gave more information on the question: Hello, I double check everything, I applied stress but I cannot compress specimen. I need 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 #702972]: porosity control
Question #702972 on Yade changed: https://answers.launchpad.net/yade/+question/702972 Fedor gave more information on the question: Hello, thank you very much for clarification. But the problem with zero strains and stress has not solved. I put preliminar iteration but I could not reach a confined state (-1e4). from __future__ import print_function import time import datetime import os from yade import pack, plot, export import numpy as np #FIXED PARAMETERS poisson=0.2 R=1e-3 rate=1e-4 dimcell = 0.03 density= 1e9 young=1e9 frictionAngle=radians(30) targetPorosity=0.43 #SETTINGS O.periodic = True O.cell.hSize = Matrix3(dimcell , 0, 0, 0, dimcell , 0, 0, 0, dimcell ) sp = pack.SpherePack() sp.makeCloud((0, 0, 0), (dimcell, dimcell, dimcell), rMean=R, rRelFuzz=.1, periodic=True) pp = O.materials.append(CohFrictMat( young=young, poisson=poisson, frictionAngle=frictionAngle, density=density, isCohesive=False, momentRotationLaw=True, etaRoll=.1,label='spheres' )) sp.toSimulation(material='spheres') O.engines = [ ForceResetter( ), InsertionSortCollider([Bo1_Sphere_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,always_use_moment_law=True)]), TriaxialStressController( stressMask = 7,label='triax'), NewtonIntegrator(damping=.2), PyRunner(command='addPlotData()', iterPeriod=500), ] O.dt = .5 * PWaveTimeStep() print('time step',O.dt) triax.goal1=triax.goal2=triax.goal3=-1 def addPlotData(): plot.addData( i=O.iter, Ezz=log(O.cell.trsf[2,2]), Eyy=log(O.cell.trsf[1,1]), Exx=log(O.cell.trsf[0,0]), szz=utils.getStress()[2,2], syy=utils.getStress()[1,1], sxx=utils.getStress()[0,0], u=utils.porosity() ) while 1: O.run(100, 1) print(getStress().trace() / 3.) if getStress().trace() / 3.<-1: break triax.goal1=triax.goal2=triax.goal3=-4 while triax.porosity>targetPorosity: frictionAngle = 0.95*frictionAngle setContactFriction(radians(30)) print (frictionAngle," porosity:",triax.porosity) O.run(500,0) # define what to plot plot.plots = { 'i ': ('sxx', 'syy', 'szz'), ' i': ('Exx', 'Eyy', 'Ezz'), ' i ':('u') # energy plot } # show the plot 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 #702972]: porosity control
Question #702972 on Yade changed: https://answers.launchpad.net/yade/+question/702972 Status: Answered => Open Fedor is still having a problem: Hello, thank you for reply. But when I put some iterations there is another issue File "", line 1, in NameError: name 'addPlotData' is not defined Please look at my script below ## from __future__ import print_function import time import datetime import os from yade import pack, plot, export import numpy as np #FIXED PARAMETERS poisson=0.2 R=1e-3 rate=1e-4 dimcell = 0.03 density= 1e5 young=1e9 frictionAngle=radians(30) targetPorosity=0.43 #SETTINGS O.periodic = True O.cell.hSize = Matrix3(dimcell , 0, 0, 0, dimcell , 0, 0, 0, dimcell ) sp = pack.SpherePack() sp.makeCloud((0, 0, 0), (dimcell, dimcell, dimcell), rMean=R, rRelFuzz=.1, periodic=True) pp = O.materials.append(CohFrictMat( young=young, poisson=poisson, frictionAngle=frictionAngle, density=density, isCohesive=False, momentRotationLaw=True, etaRoll=.1,label='spheres' )) sp.toSimulation(material='spheres') O.engines = [ ForceResetter( ), InsertionSortCollider([Bo1_Sphere_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,always_use_moment_law=True)]), TriaxialStressController( stressMask = 7,label='triax'), NewtonIntegrator(damping=.2), PyRunner(command='addPlotData()', iterPeriod=500), ] O.dt = .5 * PWaveTimeStep() print('time step',O.dt) triax.goal1=triax.goal2=triax.goal3=-1 while 1: O.run(1000, 1) unb=unbalancedForce() if abs(1-getStress().trace() / 3.)/1<0.1: O.cell.velGrad=Matrix3(0,0,0,0,0,0,0,0,0) break triax.goal1=triax.goal2=triax.goal3=-4 while triax.porosity>targetPorosity: frictionAngle = 0.95*frictionAngle setContactFriction(radians(30)) print (frictionAngle," porosity:",triax.porosity) O.run(500,1) def addPlotData(): plot.addData( i=O.iter, Ezz=log(O.cell.trsf[2,2]), Eyy=log(O.cell.trsf[1,1]), Exx=log(O.cell.trsf[0,0]), szz=utils.getStress()[2,2], syy=utils.getStress()[1,1], sxx=utils.getStress()[0,0], u=utils.porosity() ) # define what to plot plot.plots = { 'i ': ('sxx', 'syy', 'szz'), ' i': ('Exx', 'Eyy', 'Ezz'), ' i ':('u') # energy plot } # show the plot 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
[Yade-users] [Question #702972]: porosity control
New question #702972 on Yade: https://answers.launchpad.net/yade/+question/702972 Hello, dear Team. For controlling porosity (0.43), I maintained a constant stress (-4e4) and decrease friction progressively based on recommendation I found here (stress-free packing asked by Sergei Dorofeenko on 2011-04-16). I tried to modify script from tutorial examples (periodic triax). The thing is that strains and stress are zero during simulation. Could you please help me? from __future__ import print_function import time import datetime import os from yade import pack, plot, export import numpy as np #FIXED PARAMETERS poisson=0.2 R=1e-3 rate=1e-4 dimcell = 0.03 density= 1e5 young=1e9 frictionAngle=radians(30) targetPorosity=0.43 #SETTINGS O.periodic = True O.cell.hSize = Matrix3(dimcell , 0, 0, 0, dimcell , 0, 0, 0, dimcell ) sp = pack.SpherePack() sp.makeCloud((0, 0, 0), (dimcell, dimcell, dimcell), rMean=R, rRelFuzz=.1, periodic=True) pp = O.materials.append(CohFrictMat( young=young, poisson=poisson, frictionAngle=frictionAngle, density=density, isCohesive=False, momentRotationLaw=True, etaRoll=.1,label='spheres' )) sp.toSimulation(material='spheres') O.engines = [ ForceResetter( ), InsertionSortCollider([Bo1_Sphere_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,always_use_moment_law=True)]), TriaxialStressController( stressMask = 7,label='triax'), NewtonIntegrator(damping=.2), PyRunner(command='addPlotData()', iterPeriod=500), ] O.dt = .5 * PWaveTimeStep() print('time step',O.dt) triax.goal1=triax.goal2=triax.goal3=-4 while triax.porosity>targetPorosity: frictionAngle = 0.95*frictionAngle setContactFriction(radians(30)) print (frictionAngle," porosity:",triax.porosity) O.run(500,1) def addPlotData(): plot.addData( i=O.iter, Ezz=log(O.cell.trsf[2,2]), Eyy=log(O.cell.trsf[1,1]), Exx=log(O.cell.trsf[0,0]), szz=utils.getStress()[2,2], syy=utils.getStress()[1,1], sxx=utils.getStress()[0,0], u=utils.porosity() ) # define what to plot plot.plots = { 'i ': ('sxx', 'syy', 'szz'), ' i': ('Exx', 'Eyy', 'Ezz'), ' i ':('u') # energy plot } # show the plot 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 #699605]: orthogonal packing
Question #699605 on Yade changed: https://answers.launchpad.net/yade/+question/699605 Fedor 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 #699605]: orthogonal packing
Question #699605 on Yade changed: https://answers.launchpad.net/yade/+question/699605 Status: Answered => Solved Fedor confirmed that the question is solved: Thank you for your clarifications. -- 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 #699605]: orthogonal packing
Question #699605 on Yade changed: https://answers.launchpad.net/yade/+question/699605 Status: Answered => Open Fedor is still having a problem: Thank you very much, but whether I use makeCloud packing, can I avoid the particles intersections or not? Big thanks once again for your previous elaborate reply Sent from my iPhone > On 24 Nov 2021, at 02:25, Jan Stránský > wrote: > > Your question #699605 on Yade changed: > https://answers.launchpad.net/yade/+question/699605 > >Status: Open => Answered > > Jan Stránský proposed the following answer: >> but I thought that orthogonal packing would have turned into hexagonal > packing > > it remains orthogonal. > Under the loading conditions, the packing seems to be stable like that. > >> But now I realized that change of porosity occurs thank to > intersection (overlapping) particles. Does my suggestion make sense? > > yes. > (There have been some discussions about interpretation of such results and > that porosity computed in this way may not have physical meaning, but it is > another topic) > >> But in the real soil porosity changes due to particles compaction not > intersection. > > yes, a more realistic packing should behave like that > >> But again when I started working with initial script I obtained good > relation pressure/porosity > > what is "initial script"? The one you linked? > If so, there is hexagonal packing. As the periodic cell is cubic, the space > is not fully filled and the spheres have some freedom to move, unlike in the > case of the orthogonal packing. > >> but when I added E , I was confused. > > E is of course present (although it is hidden) also in the original > script, with the default value 1e7. > > Cheers > Jan > > -- > If this answers your question, please go to the following page to let us > know that it is solved: > https://answers.launchpad.net/yade/+question/699605/+confirm?answer_id=8 > > If you still need help, you can reply to this email or go to the > following page to enter your feedback: > https://answers.launchpad.net/yade/+question/699605 > > You received this question notification because you asked the 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 #699605]: orthogonal packing
Question #699605 on Yade changed: https://answers.launchpad.net/yade/+question/699605 Status: Answered => Open Fedor is still having a problem: Thank you very much , but I thought that orthogonal packing ( max porosity) would have turned into hexagonal packing ( min porosity) during compression and the porosity would decrease. But now I realized that change of porosity occurs thank to intersection (overlapping) particles. Does my suggestion make sense? But in the real soil porosity changes due to particles compaction not intersection. But again when I started working with initial script I obtained good relation pressure/porosity but when I added E , I was confused. Sent from my iPhone > On 24 Nov 2021, at 01:41, Jan Stránský > wrote: > > Your question #699605 on Yade changed: > https://answers.launchpad.net/yade/+question/699605 > >Status: Open => Answered > > Jan Stránský proposed the following answer: >> porrr=utils.voxelPorosity(200,(0.75,0.75,0.75),(1.25,1.25,1.25)) > > The problem here is voxelPorosity and its parameters. > resolution=200 might be too little, you can try higher values. > > More importantly, you are using some random region for evaluation, porosity > computed there has (or at least may have) no relation to the true total > porosity. Randomly omitting / adding some border parts of spheres influence > significantly the result. > You can play with shifting the region. > > If I use an analytical formula > ### > def porosity(): >volTot = O.cell.volume >r = 0.09 >volSphs = len(O.bodies) * 4/3. * pi * r**3 >ds = [2*r - i.geom.penetrationDepth for i in O.interactions] ># https://mathworld.wolfram.com/Sphere-SphereIntersection.html >volContactss = [1/12.*pi*(4*r+d)*(2*r-d)**2 for d in ds] >volContacts = sum(volContactss) >volSolid = volSphs - volContacts >volVoid = volTot - volSolid >return volVoid / volTot > ### > I get consistent results: > 0.47577 (isotropic pressure -1e5) > 0.47326 (isotropic pressure -5e5) > 0.47202 (isotropic pressure -7e5) > > Cheers > Jan > > -- > If this answers your question, please go to the following page to let us > know that it is solved: > https://answers.launchpad.net/yade/+question/699605/+confirm?answer_id=6 > > If you still need help, you can reply to this email or go to the > following page to enter your feedback: > https://answers.launchpad.net/yade/+question/699605 > > You received this question notification because you asked the 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 #699605]: orthogonal packing
Question #699605 on Yade changed: https://answers.launchpad.net/yade/+question/699605 Status: Needs information => Open Fedor gave more information on the question: I expected that when compression is increasing the porosity tends to decrease. But in my case when i increase the Isotropic value - the porosity also increases. In the initial script when you increase pressure the porosity decreases. But when I added the parameter of young module in the O.materials.append it showed the wrong tendency I mentioned before Sent from my iPhone > On 24 Nov 2021, at 00:20, Jan Stránský > wrote: > > Your question #699605 on Yade changed: > https://answers.launchpad.net/yade/+question/699605 > >Status: Open => Needs information > > Jan Stránský requested more information: > Thanks for clarification. > > What does "inadequate" mean here in the relation of porosity vs. young? > What is expected behavior? > > Cheers > Jan > > -- > To answer this request for more information, you can either reply to > this email or enter your reply at the following page: > https://answers.launchpad.net/yade/+question/699605 > > You received this question notification because you asked the 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 #699605]: orthogonal packing
Question #699605 on Yade changed: https://answers.launchpad.net/yade/+question/699605 Status: Needs information => Open Fedor gave more information on the question: This file is called *04-periodic-simple-shear.py* <https://gitlab.com/yade-dev/trunk/-/blob/990dda83e2558b7d244f52476f07742ce6b44176/doc/sphinx/tutorial/04-periodic-simple-shear.py>. The link is https://gitlab.com/yade-dev/trunk/-/blob/990dda83e2558b7d244f52476f07742ce6b44176/doc/sphinx/tutorial/04-periodic-simple-shear.py For module 5e7 the porosity equals 0,39 (isotropic pressure -1e5) equals 0,44 (isotropic pressure -5e5) equals 0,43 (isotropic pressure -7e5) Thank you for your help On Tue, Nov 23, 2021 at 9:15 PM Jan Stránský < question699...@answers.launchpad.net> wrote: > Your question #699605 on Yade changed: > https://answers.launchpad.net/yade/+question/699605 > > Status: Open => Needs information > > Jan Stránský requested more information: > > I used the existing script > > what is "the existing script"? Do you have any reference (e.g. a > tutorial script for this and that page)? > > > but when I vary module the porosity changes inadequate. > > What does "vary" mean? > What does "inadequate" mean? > Please be (much) more specific. E.g. for this young I get this porosity, > for that young I get that porosity... > > Cheers > Jan > > -- > To answer this request for more information, you can either reply to > this email or enter your reply at the following page: > https://answers.launchpad.net/yade/+question/699605 > > You received this question notification because you asked the 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 #699605]: orthogonal packing
Question #699605 on Yade changed: https://answers.launchpad.net/yade/+question/699605 Status: Needs information => Open Fedor gave more information on the question: Thank you for notes. My apologies I want to use orthogonal packing and investigate how to change porosity vs isotropic pressure with diffrent values of young modulus. I used the existing script and added young modulus, but when I vary module the porosity changes inadequate. There is the script. from __future__ import print_function O.periodic = True O.cell.hSize = Matrix3(2, 0, 0, 0, 2, 0, 0, 0, 2) from yade import pack, plot sigmaIso = -7e5 young=5e8 poisson=0.2 frictionAngle=0 # the "if 0:" block will be never executed, therefore the "else:" block will be # to use cloud instead of regular packing, change to "if 1:" or something similar # in this case, add dense packing pp=O.materials.append(FrictMat(young=young,poisson=poisson,frictionAngle=frictionAngle)) O.bodies.append(pack.regularOrtho(pack.inAlignedBox((0, 0, 0), (2, 2, 2)), radius=.09, gap=0, color=(0, 0, 1), material=pp)) #O.bodies.append(pack.regularHexa(pack.inAlignedBox((0, 0, 0), (2, 2, 2)), radius=.09, gap=0, color=(0, 0, 1))) # create "dense" packing by setting friction to zero initially #O.materials[0].frictionAngle = 0 # simulation loop (will be run at every step) O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb()]), InteractionLoop( # interaction loop [Ig2_Sphere_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()] ), NewtonIntegrator(damping=.4), # run checkStress function (defined below) every second # the label is arbitrary, and is used later to refer to this engine PyRunner(command='checkStress()', realPeriod=1, label='checker'), # record data for plotting every 100 steps; addData function is defined below PyRunner(command='addData()', iterPeriod=100), PeriTriaxController( label='triax', # specify target values and whether they are strains or stresses goal=(sigmaIso, sigmaIso, sigmaIso), stressMask=7, # type of servo-control dynCell=True, maxStrainRate=(10, 10, 10), # wait until the unbalanced force goes below this value maxUnbalanced=5, relStressTol=1e-3, # call this function when goal is reached and the packing is stable doneHook='compactionFinished()' ), ] # set the integration timestep to be 1/2 of the "critical" timestep O.dt = .5 * PWaveTimeStep() # prescribe isotropic normal deformation (constant strain rate) # of the periodic cell O.cell.velGrad = Matrix3(0, 0, 0, 0, -.1, 0, 0, 0, 0) # when to stop the isotropic compression (used inside checkStress) limitMeanStress = -5e5 # called every second by the PyRunner engine def checkStress(): # stress tensor as the sum of normal and shear contributions # Matrix3.Zero is the intial value for sum(...) stress = getStress().trace() / 3. print('mean stress', stress) porrr=utils.voxelPorosity(200,(0.75,0.75,0.75),(1.25,1.25,1.25)) #porrr=utils.aabbExtrema(0, False) print('porosity', porrr) # called from the 'checker' engine periodically, during the shear phase # called periodically to store data history def addData(): # get the stress tensor (as 3x3 matrix) stress = sum(normalShearStressTensors(), Matrix3.Zero) # give names to values we are interested in and save them plot.addData(exz=O.cell.trsf[0, 2], szz=stress[2, 2], sxz=stress[0, 2], tanPhi=(stress[0, 2] / stress[2, 2]) if stress[2, 2] != 0 else 0, i=O.iter, porrr=utils.voxelPorosity(200,(0.75,0.75,0.75),(1.25,1.25,1.25)), stress = getStress().trace() / 3.) # color particles based on rotation amount for b in O.bodies: # rot() gives rotation vector between reference and current position b.shape.color = scalarOnColorScale(b.state.rot().norm(), 0, pi / 2.) # define what to plot (3 plots in total) ## exz(i), [left y axis, separate by None:] szz(i), sxz(i) ## szz(exz), sxz(exz) ## tanPhi(i) # note the space in 'i ' so that it does not overwrite the 'i' entry plot.plots = { 'i ': ('stress',), 'stress':('porrr')} # better show rotation of particles Gl1_Sphere.stripes = True # open the plot on the screen plot.plot() O.saveTmp() def compactionFinished(): # set the current cell configuration to be the reference one O.cell.trsf = Matrix3.Identity # change contr
[Yade-users] [Question #699605]: orthogonal packing
New question #699605 on Yade: https://answers.launchpad.net/yade/+question/699605 Hello! I try to use regular packing in the isotropic pressure during triaxial test but how to consider the young modulus in this test? I want to check how prosity will be changed during isopropic compression with orthogonal packing. But when we use cloud packing this parametr affects on result. -- 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