New question #163253 on Yade:
https://answers.launchpad.net/yade/+question/163253

Dear all, 

I would like to know below issues.
1. Why I don't get stress 0 at time=0 during isotropic consolidation 
(hydrostatic pressure) when I run peri3dController_triaxialCompression.py with 
the parameters as given below (It seems that there is 300kPa pressure at t=0, I 
don't know how this high pressure is applied at t=0). 
2. Its also not clear why stresses in xx and yy directions change during axial 
compression (those should be constants).
3. How can I change/know strain rate? It seems the original script attached 
herewith doesn't have any parameter to change strain rate. Is that so?
4. Whats stressMask? How is stressMask related to goal?
5. How can I access to original data of the tests (here, I just see graphs but 
I prefer to take data and use them in my analysis)
6. Are there any publications used peri3dController_triaxialCompression.py 
script to test triaxial tests? 

.........................................................................................................................................................................................................................................
# peri3dController_triaxialCompression.py
# script, that explains funcionality and input parameters of Peri3dController 
on the example of
# triaxial compression. 
#   Firstly, a hydrostatic preassure is applied, then a strain along z axis is 
increasing
# while x- and y- stress is constant
#   The simulation is run on rotated cell to enable localization and strain 
softening
# (you can also try simulation with command sp.toSimulation() with no rotation,
# in this case there is almost no difference, but in script 
peri3dController_shear,
# the cell rotation has significant effect)

from yade import pack,plot,qt

# define material
O.materials.append(FrictMat())

# create periodic assembly of particles
initSize=.004
sp=pack.randomPeriPack(radius=.00023,initSize=Vector3(initSize,initSize,initSize),memoizeDb='/tmp/packDb.sqlite')
angle=0
rot=Matrix3(cos(angle),0,-sin(angle), 0,1,0, sin(angle),0,cos(angle))
sp.toSimulation(rot=rot)

# plotting 
plot.live=False
plot.plots={'iter':('sx','sy','sz','syz','szx','sxy',),'iter_':('ex','ey','ez','eyz','ezx','exy',),'ez':('sz',)}
def plotAddData():
        plot.addData(
                iter=O.iter,iter_=O.iter,
                sx=p3d.stress[0],sy=p3d.stress[1],sz=p3d.stress[2],
                syz=p3d.stress[3],szx=p3d.stress[4],sxy=p3d.stress[5],
                ex=p3d.strain[0],ey=p3d.strain[1],ez=p3d.strain[2],
                eyz=p3d.strain[3],ezx=p3d.strain[4],exy=p3d.strain[5],
        )

O.dt=utils.PWaveTimeStep()/2

# define the first part of simulation, hydrostatic compression
O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb()]),
        InteractionLoop(
                [Ig2_Sphere_Sphere_Dem3DofGeom()],
                
[Ip2_FrictMat_FrictMat_FrictPhys()],[Law2_Dem3DofGeom_FrictPhys_CundallStrack()]),
        NewtonIntegrator(),
        Peri3dController(       goal=(-1e5,-1e5,-1e5, 0,0,0), # Vector6 of 
prescribed final values
                                                        stressMask=0b000111,
                                                        nSteps=500,
                                                        doneHook='print 
"Hydrostatic load reached."; O.pause()',
                                                        youngEstimation=.09e9, 
# needed, when only nonzero prescribed values are stress
                                                        maxStrain=.5,
                                                        label='p3d'
                                                        ),
        PyRunner(command='plotAddData()',iterPeriod=1),
]
O.run(); O.wait()

# second part, z-axis straining and constant transversal stress
O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb()]),
        InteractionLoop(
                [Ig2_Sphere_Sphere_Dem3DofGeom()],
                
[Ip2_FrictMat_FrictMat_FrictPhys()],[Law2_Dem3DofGeom_FrictPhys_CundallStrack()]),
        NewtonIntegrator(),
        Peri3dController(       goal=(-1e5,-1e5,-4e-1, 0,0,0), # Vector6 of 
prescribed final values
                                                        stressMask=0b000011,
                                                        nSteps=1000,
                                                        xxPath=[(0,1),(1,1)], # 
the first (time) zero defines the initial value of stress considered nonzero
                                                        yyPath=[(0,1),(1,1)],
                                                        doneHook='print 
"Simulation with Peri3dController finished."; O.pause()',
                                                        maxStrain=.5,
                                                        label='p3d',
                                                        strain=p3d.strain, # 
continue from value reached in previous part
                                                        
stressIdeal=Vector6(-1e5,-1e5,0, 0,0,0), # continue from value reached in 
previous part
                                                        ),
        PyRunner(command='plotAddData()',iterPeriod=1),
]
O.run();O.wait()
plot.plot()
...........................................................................................................................................................................................................................................

Thank you very much.

Regards,
Janaka

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to