EPWP (Excess pore water pressure)

Asked by Sam

Hey Guys!

I wrote up a script for CU triaxial but I do not know how can I get EXWP (Excess pore water pressure) from my model. Hence, I would like to as you how can I get it or there is any way for it?

Best regards
Sam

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Jérôme Duriez
Solved:
Last query:
Last reply:
Revision history for this message
Jérôme Duriez (jduriez) said :
#1

Hi,

How do you simulate the CU test in YADE ?
Do you actually simulate the pore water, e.g. with FlowEngine ?

Revision history for this message
Sam (sambahmani) said :
#2

Dear Jerome,

Thanks for the reply. You can find herewith a part of my model, as you requested:

############################
### DEFINING ENGINES ###
############################

triax=TriaxialStressController(
 maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth)
 finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth)
 thickness = 0,
 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&Villard2005_licensed.pdf)
 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()

#######################################
### 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=-10000

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<stabilityThreshold and abs(-10000-triax.meanStress)/10000<0.001:
    break

O.save('confinedState'+key+'.yade.gz')
print "### Isotropic state saved ###"

##############################
### DEVIATORIC LOADING ###
##############################

#We move to deviatoric loading, let us turn internal compaction off to keep particles sizes constant
triax.internalCompaction=False

# Change contact friction (remember that decreasing it would generate instantaneous instabilities)
setContactFriction(radians(finalFricDegree))

#set stress control on x and z, we will impose strain rate on y
triax.stressMask = 0
#now goal2 is the target strain rate
triax.goal2=rate
# we define the lateral stresses during the test, here the same 10kPa as for the initial confinement.
triax.goal1=triax.goal3=-rate/2

#we can change damping here. What is the effect in your opinion?
newton.damping=0.1

#Save temporary state in live memory. This state will be reloaded from the interface with the "reload" button.
O.saveTmp()

Cheers
Sam

Revision history for this message
Jérôme Duriez (jduriez) said :
#3

Hi,

At the moment, there is nothing in your script (e.g. in your O.engines list) that would simulate the presence of pore water in your YADE model, thus it is impossible with this model to access a pore water pressure.

Revision history for this message
Best Jérôme Duriez (jduriez) said :
#4

This being said, it is nevertheless possible for you to back-calculate this excess pore water pressure "u" considering that

- triax.meanStress corresponds here to the mean effective stress p' from actual experiments

- that u = p - p' where p is the mean total stress that would be measured during experiments

- and accounting for the q-p relation pertaining to triaxial tests, where q is the deviatoric total stress = q' the deviatoric effective stress which you can directly measure in your model.

Jérôme

Revision history for this message
Sam (sambahmani) said :
#5

Thanks Jérôme Duriez, that solved my question.