# Is any way to calculate excess pore pressure in 3DEC?

**URL:** <https://forum.itascainternational.com/t/is-any-way-to-calculate-excess-pore-pressure-in-3dec/1825>\
**Category:** 3DEC\
**Created:** [November 30, 2024, 3:08am UTC](https://forum.itascainternational.com/t/is-any-way-to-calculate-excess-pore-pressure-in-3dec/1825 "2024-11-30T03:08:34Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Phopthorn\_M](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@Phopthorn\_M](https://forum.itascainternational.com/u/Phopthorn_M)\
**Post date:** [November 30, 2024, 3:08am UTC](https://forum.itascainternational.com/t/is-any-way-to-calculate-excess-pore-pressure-in-3dec/1825/1 "2024-11-30T03:08:34Z")

</div>

Hi everyone,  
Is any way to calculate excess pore pressure in 3DEC? I want to implement this to a mine dump slope than has a consolidation problem.  
Thanks, in advanced.

---

<div class="post-metadata">

**Author:** ![jhazzard](https://avatars.discourse-cdn.com/v4/letter/j/4af34b/32.png) [@jhazzard](https://forum.itascainternational.com/u/jhazzard)\
**Post date:** [November 30, 2024, 6:21pm UTC](https://forum.itascainternational.com/t/is-any-way-to-calculate-excess-pore-pressure-in-3dec/1825/2 "2024-11-30T18:21:00Z")

</div>

You would have to record the inotial pore pressures in an extra variable and then subtract to see the excess. Example below.

```
model new
model config matrix
block create brick -10 10
block densify
block zone gen edge 2.5

block zone cmodel assign el
block zone prop dens 2500 bulk 1e9 shear 0.6e9
block zone fluid prop perm 1e-8 poros 0.1

block contact jmodel assign el
block contact prop stiff-norm 1e10 stiff-shear 1e10
flowplane vertex property aperture-initial 1e-4 ...
                aperture-minimum 1e-5 aperture-maximum 1e-3

block fluid property dens 1000 visc 0.001 bulk 1e8

; initial water table
model grav 9.81
block water plane normal 0,0,-1 origin 0,0,8

; run fluid flow only
model fluid active on
model mechanical active off
model large-strain off
model cycle 100

model save 'initial'

; store initial pore pressures
fish def store_pp
  loop foreach gp block.gp.list
    block.gp.extra(gp) = block.gp.pp(gp)
  end_loop
end
[store_pp]

;; same with splitting
;[block.gp.extra(::block.gp.list) ::= block.gp.pp(::block.gp.list)]

; ***you could do the same with sub-contacts****

; change pore pressures

flowknot apply pore-pressure 3.0e5 range pos-x -10 pos-z -1 1
model cyc 1000

; now get difference and put in extra variable 2
fish def excess_pp
  loop foreach gp block.gp.list
    block.gp.extra(gp,2) = block.gp.pp(gp) - block.gp.extra(gp,1)
  end_loop
end

;; same with operator (multi-threaded)
;fish operator excess_pp2(gp)
; block.gp.extra(gp,2) = block.gp.pp(gp) - block.gp.extra(gp,1)
;end
;[excess_pp2(::block.gp.list)]

```
