biaxial (undrained test) in 2D model
Dear yade user,
Could anyone please help me to see my code whether is it correct or not to make a biaxial undrained test in 2D (without periodic condition)?
I'm using "ThreeDTriaxial
Is there anyone have an experience in doing the triaxial/biaxial undrained test? What is the best way to model it?
Thank you for your help and your sharing.
Here is my code:
# -*- coding: utf-8 -*-
from yade import pack,log, plot
from utils import *
#######
### DEFINING VARIABLES AND MATERIALS ###
#######
num_spheres = 500 # number of spheres
compFricDegree = 30 # contact friction during the confining phase
finalFricDegree = 30 # contact friction during the deviatoric loading
rate = 0.01 # loading rate (strain rate)
damp = 0.1 # damping coefficient
stabilityThreshold = 0.001 # unbalancedForce
key = '_biax_undrained_' # simulation's name
young = 5e6 # contact stiffness
mn,mx=Vector3(
thick = 0.01 # thickness of the plates
## create materials for spheres and plates
O.materials.
O.materials.
## create walls around the packing
walls=utils.
wallIds=
## generate a random loose particles packing
sp=pack.
sp.makeCloud(
O.bodies.
# Blocked certain degress of freedom to make 2D-Model in plane-XY
for k in O.bodies:
if isinstance(k.shape, Sphere): k.state.
# initial timestep
O.dt=.5*
O.usesTimeStepp
#######
### DEFINING ENGINES ###
#######
triax=ThreeDTri
## ThreeDTriaxialE
maxMultiplier=
finalMaxMultip
thickness = thick,
stressControl_1 = False, #switch stress/strain control
stressControl_2 = False,
## The stress used for (isotropic) internal compaction
sigma_iso = 10000,
## Independant stress values for anisotropic loadings
sigma1=10000,
sigma2=10000,
internalCompac
Key=key, # passed to the engine so that the output file will have the correct name
)
newton=
unb=unbalancedF
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
GlobalStiffnes
triax,
TriaxialStateR
newton,
]
#######
### Exemple of how to record and plot data ###
#######
def addPlotData():
plot.
s_
s_
exx=
dev_
conf_
vol_strain= triax.strain[
)
# define what to plot
plot.plots=
' axial_strain'
}
# show the plot
plot.plot()
#Display spheres with 2 colors for seeing rotations better
Gl1_Sphere.
yade.qt.
#######
### APPLYING CONFINING PRESSURE ###
#######
while 1:
O.run(1000, True)
#the global unbalanced force on dynamic bodies, thus excluding boundaries, which are not at equilibrium
unb=unbalance
#average stress
#note: triax.stress(k) returns a stress vector, so we need to keep only the normal component
meanS=
print 'unbalanced force:',unb,' mean stress: ',meanS
if unb<stabilityTh
break
O.save(
print "### Isotropic state saved ###"
#######
### DEVIATORIC LOADING ###
### UNDRAINED TEST ###
#######
#We move to deviatoric loading, let us turn internal compaction off to keep particles sizes constant
triax.internalC
# Change contact friction (remember that decreasing it would generate instantaneous instabilities)
triax.setContac
#set independant stress control on each axis
triax.stressCon
triax.strainRat
triax.strainRat
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask jessica sjah for more information if necessary.