Wierd volumetric strain during triaxial tests under different confining pressure
Hello everyone,
I did my triaxial compression tests under different confining pressures. Sigma3 in the horizontal directions is constant all through the test and the cubic sample is compressed in the vertical direction with a constant strain rate. Sigma3 is equal to 100kPa or 400kPa in my tests. Both samples contract first and dilate later as the compression goes on.
As well all know, larger volume contraction and lower volume dilation afterwards will occur through the test under higher sigma3. But my results are just reverse to this. In the case when sigma3 is 100kPa, the volume contraction is larger and the volume dilation is maller afterwards. I really don't know why this happens.
My sample is trimmed from a big gravity deposited sample. My friend obtained his sample by expanding spheres inside a cubic box and found the same weird deformation. We use the same contact law. We have adjusted the elastic modulus and the poisson ratio, but it doesn't work.
I did triaxial tests with PFC with linear contact model under different confining pressures and everything is fine.
Does anyone else meet this kind of problem?
Below is my code:
from yade import ymport
from yade import utils
#######
### DEFINING VARIABLES AND MATERIALS ###
#######
compFricDegree = 26.565 # initial contact friction during the confining phase
finalFricDegree = 26.565 # contact friction during the deviatoric loading
rate=-0.01 # loading rate (strain rate)
damp=0.7 # damping coefficient
stabilityThresh
young=5e8 # contact stiffness
mn,mx=Vector3(
## create materials for spheres and plates
O.materials.
O.materials.
## create walls around the packing
walls=aabbWalls
wallIds=
print "Load clumps"
deposited_bodies = ymport.
O.bodies.
#######
### DEFINING ENGINES ###
#######
triax=TriaxialS
## TriaxialStressC
## this control of boundary conditions was used for instance in http://
maxMultiplier=
finalMaxMultip
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,
internalCompac
)
contact = Law2_ScGeom_
newton=
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[contact]
),
## We will use the global stiffness of each body to determine an optimal timestep (see https:/
GlobalStiffnes
triax,
newton,
# save data for Paraview
VTKRecorder(
]
O.dt=.5*
#######
### APPLYING CONFINING PRESSURE ###
#######
## we define the lateral stresses during the test, here the same 100kPa as for the initial confinement.
p_const = 100000
#the value of (isotropic) confining stress defines the target stress to be applied in all three directions
triax.goal1=
while 1:
O.run(1000, True)
##the global unbalanced force on dynamic bodies, thus excluding boundaries, which are not at equilibrium
unb=unbalance
print 'unbalanced force:',unb,' mean stress: ',triax.meanStress
if unb<stabilityTh
break
O.save(
print "### Isotropic state saved ###"
#######
### DEVIATORIC LOADING ###
#######
## Change contact friction (remember that decreasing it would generate instantaneous instabilities)
setContactFrict
##set stress control on x and y, we will impose strain rate on z
triax.stressMask = 3
##now goal2 is the target strain rate
triax.goal3=rate
O.run(4000000,True)
O.save(
Question information
- Language:
- English Edit question
- Status:
- Expired
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply: