OpenGeoRock
3.6

Pore pressure and unsaturated strength

Describes OGR Slip2D 0.1.235

Because the methods of slices work in effective stresses, the factor of safety depends directly on the pore pressure at the base of each slice. OGR Slip2D can take that pore pressure from water surfaces, the ratio rur_u, a constant value, a pressure grid or a finite-element seepage field. Three other effects of water also enter the analysis: water ponded on the slope, excess pore pressure from undrained loading and the strength that matric suction adds to an unsaturated soil.

3.6.1Pore pressure in the analysis#

The shear strength available on the base of a slice is written in effective stresses (Eq. (3.1.1)). For a Mohr–Coulomb material it is

τf=c′+(σn−u)tan⁡ϕ′\tau_f = c' + (\sigma_n - u)\tan\phi'

where

σn\sigma_n
total normal stress on the base (kPa)
uu
pore pressure at the base (kPa)
c′, ϕ′c',\ \phi'
effective cohesion (kPa) and effective friction angle (°)

The methods of slices carry it as forces: the pore-water force on a base of length ll is U=u lU = u\,l, subtracted from the total normal force NN (Eq. (3.1.2)). OGR Slip2D evaluates one pore pressure per slice, at the midpoint of its base, and every method reads that value in its own equilibrium equations (Section 3.2). The Ordinary method is the only one that does not subtract the whole of u lu\,l; it is treated in Section 3.6.10.

In OGR Slip2D

The pore pressure is computed once per slice at the midpoint of its base, (xc, yb)(x_c,\ y_b), with the unit weight of the pore fluid γw\gamma_w set in Analysis → Project Settings → Groundwater (Pore Fluid Unit Weight, 9.81 kN/m³ by default). Two situations are refused: a slice whose material takes its pore pressure from a water surface that does not extend over the slice (the whole slip surface is discarded, since treating that slice as dry would give an unsafe result) and a slice with no material at its base.

Source: ogr_slip2d/slicer.py · ogr_core/hydraulic/pore_pressure.py · ogr_core/hydraulic/water_surfaces.py

3.6.2Groundwater methods and pore-pressure types#

Pore pressure is defined at two levels. The project's groundwater method can install a field that covers the whole model (a pressure grid or a finite-element solution), and each material has a pore-pressure type, which decides where its pore pressure comes from whenever no such field governs it. Table 3.6.1 lists the project methods and Table 3.6.2 the material types.

Table 3.6.1 Groundwater methods of a project and what each one does to the pore pressure of the materials.
MethodIdentifierEffect on the pore pressure
Water surfaceswater_table, piezo_lineNo project-wide field: each material uses its own type. These are the only methods a rapid-drawdown analysis accepts (Section 3.8). water_table is the default.
None, rur_unone, ruNo project-wide field: each material uses its own type, as above.
Water pressure gridgrid_total_head, grid_pressure_head, grid_pore_pressureThe grid governs every material except those of type Constant or rur_u and those with the grid switched off. The method states what the grid values are (Section 3.6.5).
Finite-element seepagefea_steady, fea_transientThe computed field reaches the materials of type fem (Section 3.6.6); the heads prescribed on the boundary also define the ponded water (Section 3.6.7).
Table 3.6.2 Pore-pressure types of a material.
TypeIdentifierPore pressure at the base of a slice
Nonenoneu=0u = 0
Water tablewater_tableu=γwHuhu = \gamma_w H_u h below the water table assigned to the material, Eq. (3.6.2)
Piezometric linepiezometricthe same expression with the piezometric line assigned to the material
rur_u coefficientruu=ru σvu = r_u\,\sigma_v, Eq. (3.6.4)
Constantconstantu=ucu = u_c, the same at every base of the material; a negative value is taken as zero
Finite elementfeminterpolated from the seepage field, Eq. (3.6.9)
In OGR Slip2D

The type is set in the Water Parameters group of the material dialog (Type, Water Surface, Hu coefficient, Auto Hu, Ru coefficient, Constant u and, with a grid method, Use the water pressure grid). Each material names the water surface it reads. A material that names none takes the first surface of its type in drawing order: a fallback kept for older models, which makes the result depend on that order when a model has several surfaces of the same type.

Source: ogr_core/materials/material.py · ogr_core/project/settings.py · ogr_core/hydraulic/pore_pressure.py

3.6.3Water tables and piezometric lines#

A water table or a piezometric line is a polyline. At the base midpoint of a slice the program takes the vertical distance hh up to the surface assigned to the material and writes

u=γw Hu h,h=yw(xc)−ybu = \gamma_w\,H_u\,h, \qquad h = y_w(x_c) - y_b

where

γw\gamma_w
unit weight of the pore fluid (kN/m³)
yw(xc)y_w(x_c)
elevation of the water surface above the base midpoint, interpolated linearly along the polyline (m)
yby_b
elevation of the base midpoint (m)
HuH_u
pressure-head factor, between 0 and 1 (—)

Where the surface lies below the point (h≤0h \le 0) the pore pressure is zero: a water surface never produces suction. With Hu=1H_u = 1 the expression is the hydrostatic pressure below a horizontal free surface.

The Hu factor#

Below an inclined phreatic surface the water is not static, and the vertical depth overstates the pressure head. When the flow lines are straight and parallel to a phreatic line inclined at α\alpha, as in an infinite slope with seepage parallel to its surface (Skempton & DeLory, 1957), the equipotentials are straight lines perpendicular to it. The equipotential through the base midpoint PP meets the phreatic line at QQ (Figure 3.6.1), where u=0u = 0 and the total head equals the elevation yQy_Q. PP and QQ share the same total head, so the pressure head at PP is their difference of elevation. PP lies at a distance hcos⁡αh\cos\alpha from the line, measured along the equipotential, and QQ is higher than PP by that distance times cos⁡α\cos\alpha:

hp=yQ−yb=hcos⁡2α⟹Hu=cos⁡2αh_p = y_Q - y_b = h\cos^2\alpha \qquad\Longrightarrow\qquad H_u = \cos^2\alpha
Pressure head under an inclined phreatic line: the vertical distance h from the point to the line, and the pressure head h cos²α read along the equipotential perpendicular to the line ground surface phreatic line, u = 0 flow lines α h equipotential hp = h cos²α P A Q slice base midpoint
Figure 3.6.1 Pressure head under an inclined phreatic line. With flow parallel to the line, the equipotential through the base midpoint PP is perpendicular to it and reaches it at QQ; the pressure head at PP is the rise from PP to QQ, hcos⁡2αh\cos^2\alpha, smaller than the vertical depth hh to the line at AA. Drawn to scale for α=20∘\alpha = 20^\circ.

The automatic factor takes α\alpha as the inclination of the segment of the water surface above the base midpoint. It is exact only under the assumption that produced it (straight, parallel flow) and an approximation under a curved phreatic surface, where the equipotentials curve as well.

In OGR Slip2D

HuH_u is the material's Hu coefficient when it is set, and otherwise the project's Default Hu, 1.0. With Auto Hu on (for one material or for the whole project), the program uses cos⁡2α\cos^2\alpha of the segment of the water surface that spans the base midpoint; a vertical segment gives 0. The value is limited to the range 0 to 1, and the same factor applies to water tables and to piezometric lines.

Source: ogr_core/hydraulic/pore_pressure.py

Water table or piezometric line#

Both give the pore pressure of Eq. (3.6.2). They differ in three respects, all of which follow from a water table being a free water surface and a piezometric line a measurement of pressure head:

  • ponded water (Section 3.6.7) is created only by a water table drawn above the ground surface;
  • only a water table separates the saturated unit weight from the unit weight: a material that uses a saturated unit weight takes it in the parts of each slice column that lie below the highest water table;
  • a pressure grid is limited only by a water table: with a grid method, u=0u = 0 above the highest water table (Section 3.6.5).

Several piezometric lines can coexist (two aquifers separated by a clay layer, for instance), and each material reads the one assigned to it.

3.6.4The pore-pressure ratio ru#

Bishop & Morgenstern (1960) expressed the pore pressure in a slope as a fraction of the vertical stress, the pore-pressure ratio rur_u. OGR Slip2D applies it at the base midpoint as

u=ru σv=ru(γ z+γw dw)u = r_u\,\sigma_v = r_u\left(\gamma\,z + \gamma_w\,d_w\right)

where

rur_u
pore-pressure ratio of the material (—)
γ\gamma
unit weight of the material at the base, its saturated unit weight if the material uses one (kN/m³)
zz
depth of the base midpoint below the midpoint of the slice top (m)
dwd_w
depth of water ponded on the ground above the slice, zero if there is none (m)

The vertical stress is that of a single unit weight over the whole depth (the one of the material at the base) plus the ponded water; external loads are not included. In a layered slope this differs from the slice weight, which is integrated band by band.

In OGR Slip2D

rur_u is the material's Ru coefficient (0 to 1). A material of type Constant takes Constant u at every base, with negative values taken as zero.

Source: ogr_core/hydraulic/pore_pressure.py

3.6.5Water pressure grids#

A water pressure grid is a set of points (xi, yi, vi)(x_i,\ y_i,\ v_i), either piezometer readings or the output of another seepage analysis, from which a value vv is interpolated at each base midpoint. The project's groundwater method states what the values are, and the pore pressure follows from it:

u=γw (v−y)total headu=γw vpressure headu=vpore pressure\begin{aligned} u &= \gamma_w\,(v - y) &&\text{total head}\\ u &= \gamma_w\,v &&\text{pressure head}\\ u &= v &&\text{pore pressure} \end{aligned}

The values are interpolated with a thin-plate spline (Harder & Desmarais, 1972; Duchon, 1977), the radial-basis surface

v(x,y)=∑i=1nwi ri2ln⁡ri+a0+a1x+a2y,ri=(x−xi)2+(y−yi)2v(x, y) = \sum_{i=1}^{n} w_i\,r_i^2\ln r_i + a_0 + a_1x + a_2y, \qquad r_i = \sqrt{(x - x_i)^2 + (y - y_i)^2}

whose n+3n + 3 coefficients solve the symmetric system

[APPT0]{wa}={v0},Aij=rij2ln⁡rij,Pi=[1xiyi]\begin{bmatrix}\mathbf{A} & \mathbf{P}\\ \mathbf{P}^{\mathsf T} & \mathbf{0}\end{bmatrix}\begin{Bmatrix}\mathbf{w}\\ \mathbf{a}\end{Bmatrix} = \begin{Bmatrix}\mathbf{v}\\ \mathbf{0}\end{Bmatrix}, \qquad A_{ij} = r_{ij}^2\ln r_{ij}, \qquad \mathbf{P}_i = \begin{bmatrix}1 & x_i & y_i\end{bmatrix}

The spline passes through every data point and reproduces a planar field exactly, so a hydrostatic field given as total heads (constant) or as pore pressures (linear in yy) is recovered without error. Outside the cloud of points it extrapolates, and a slip surface near the crest of a slope often has bases there; the points should cover the whole region the slip surfaces cross.

When the spline cannot be used the program falls back to inverse-distance weighting (Shepard, 1968) over the nearest points:

v(x,y)=∑i=1kvi/di2∑i=1k1/di2v(x, y) = \dfrac{\sum_{i=1}^{k} v_i / d_i^2}{\sum_{i=1}^{k} 1 / d_i^2}

where

did_i
distance from the point to the ii-th nearest data point (m)
kk
number of neighbours, 8 by default (—)
In OGR Slip2D

Points are typed or imported from text in Groundwater → Water Pressure Grid…. The thin-plate spline is replaced by inverse-distance weighting when the interpolation is set to it, when the grid has more than 300 points, or when the spline system is singular or has a condition number above 101210^{12}; a grid of a single point gives its value everywhere. A negative interpolated pore pressure is set to zero unless the grid is set to allow suction, which it is not by default. Materials of type Constant or rur_u, and those with Use the water pressure grid switched off, keep their own type. An analysis is refused when a grid built with one kind of value is read by a method of another.

Source: ogr_core/hydraulic/water_pressure_grid.py · ogr_core/hydraulic/pore_pressure.py · ogr_slip2d/analysis_runner.py

3.6.6Pore pressure from a seepage analysis#

When the groundwater method is a finite-element analysis (Section 3.7), the solution is a total head HiH_i at each node of the mesh, and the nodal pore pressures are ui=γw(Hi−yi)u_i = \gamma_w (H_i - y_i). At a base midpoint the program finds the triangle that contains it and interpolates with the linear shape functions of that triangle:

u(xc, yb)=∑i=13Ni(xc, yb) uiu(x_c,\ y_b) = \sum_{i=1}^{3} N_i(x_c,\ y_b)\,u_i

where

NiN_i
linear shape functions of the triangle, equal to the barycentric coordinates of the point (—)
uiu_i
pore pressures at its three nodes (kPa)

The interpolation is exact for the piecewise-linear field the solver computes. Above the free surface the field is negative (the pore water is in suction), and those values are passed to the treatment of unsaturated strength of Section 3.6.9.

In OGR Slip2D

Only materials of type fem read the field: choosing a finite-element method does not by itself couple it. An analysis in which a material is of type fem and no field has been computed is refused, rather than run with u=0u = 0. A base midpoint that falls outside the mesh is given u=0u = 0. In a transient analysis, each stage flagged Calculate SF is analysed with its own field and its own boundary conditions (Section 3.7.9).

Source: ogr_core/hydraulic/pore_pressure.py · ogr_fem2d/mesh/mesh.py · ogr_slip2d/analysis_runner.py

3.6.7Ponded water#

Where a water table lies above the ground surface, the water standing on the slope is a load, not a pore pressure. Its hydrostatic pressure p=γwdp = \gamma_w d acts normal to the top of each slice it covers (Figure 3.6.2). On a slice of width bb whose top has slope m=dy/dxm = \mathrm{d}y/\mathrm{d}x, the top is b1+m2b\sqrt{1 + m^2} long and the resultant of that pressure has the components

Ww=γw d b,Hw=γw d b mW_w = \gamma_w\,d\,b, \qquad H_w = \gamma_w\,d\,b\,m

where

dd
depth of water above the midpoint of the slice top (m)
WwW_w
vertical component, downwards: the weight of the water column standing on the slice (kN/m)
HwH_w
horizontal component, positive towards +x+x; it pushes the slope towards the side where the ground rises (kN/m)

The two components belong to a single force. Summed over a submerged face, the horizontal components give the classical thrust 12γwhw2\tfrac{1}{2}\gamma_w h_w^2 on its vertical projection. Both act at the midpoint of the slice top.

Ponded water on a slice: the hydrostatic pressure normal to the slice top, whose resultant has a vertical component equal to the weight of the water column and a horizontal thrust free water surface ground surface d b p = γw d resultant on the slice top Ww = γw d b Hw = γw d b |m|
Figure 3.6.2 Ponded water on a slice. The hydrostatic pressure p=γwdp = \gamma_w d acts normal to the slice top; its resultant, drawn apart on the right, is the weight WwW_w of the water column plus a horizontal thrust HwH_w into the slope.

Only a water table produces ponded water. A piezometric line drawn above the ground records a pressure head somewhere in the ground and implies no standing water; a drawdown line ponds only at the final level of a rapid-drawdown analysis, when it takes the place of the water table (Section 3.8). With a finite-element groundwater method the water is also read from the boundary conditions: it stands above every boundary node whose prescribed total head or pressure head exceeds the elevation of the node, in runs that are contiguous along the boundary and never extrapolated beyond their last submerged node. Where drawn and prescribed water overlap, the higher level governs.

Ponded water carries no pseudo-static seismic force. The seismic coefficients multiply the weight of the soil only (Section 3.9): water has no shear strength, and its inertia is not carried by the sliding mass.

In OGR Slip2D

The water force of each slice is kept apart from its weight, which is how the seismic coefficients avoid it. The Ordinary method reads the strength at a normal force that leaves out HwH_w (Section 3.6.10); its moment equation keeps every water force.

Source: ogr_slip2d/slicer.py · ogr_core/hydraulic/ponded_water.py · ogr_slip2d/external_forces.py

3.6.8Excess pore pressure from undrained loading#

A soil of low permeability loaded faster than it can drain responds with a rise in pore pressure. Skempton (1954) related that rise to the change of stress through the pore-pressure coefficients; OGR Slip2D uses the one-dimensional form with the coefficient Bˉ\bar B:

u=u0+Δu,Δu=Bˉ Δσvu = u_0 + \Delta u, \qquad \Delta u = \bar B\,\Delta\sigma_v

where

u0u_0
pore pressure given by the groundwater method and the material's type (kPa)
Bˉ\bar B
Skempton's coefficient of the material (—)
Δσv\Delta\sigma_v
increase of vertical stress at the base midpoint (kPa)

The increase of vertical stress is the sum of three contributions, each of which has to be switched on; all are transmitted straight down, with no spreading with depth:

Δσv=∑jγj tj+qv+Pvb+kv∑jγj tj\Delta\sigma_v = \sum_j \gamma_j\,t_j + q_v + \dfrac{P_v}{b} + k_v\sum_j \gamma_j\,t_j

where

γj, tj\gamma_j,\ t_j
unit weight and thickness of each band above the point whose material is set to load the materials below it; the column is cut at material boundaries and water tables as for the slice weight (kN/m³, m)
qvq_v
vertical component of the distributed loads set to create excess pore pressure (kPa)
PvP_v
vertical component of a line load set to create excess pore pressure and applied within the slice (kN/m)
bb
slice width (m)
kvk_v
vertical seismic coefficient, when the seismic load is on and set to create excess pore pressure (—)

Excess develops only in materials with Bˉ>0\bar B > 0; Bˉ=0\bar B = 0 is a free-draining material. Whether a material's weight loads the materials below it is a separate setting: an embankment over a clay foundation would typically load the clay while developing no excess itself. A line load is a concentrated force, so the stress it produces depends on the width it is spread over (here, the slice), and Δu\Delta u beneath it grows as the slices are made narrower; a distributed load is the better model for a surcharge whose excess pore pressure matters.

In OGR Slip2D

The analysis is switched on in Analysis → Project Settings → Groundwater → Advanced (Calculate Excess Pore Pressure (B-bar method)), and it excludes the transient groundwater analysis and rapid drawdown: one advanced option at a time. While it is on, the material dialog shows B-bar (0 to 5) and Material weight creates excess pore pressure. The excess is added after the treatment of suction (Section 3.6.9), so it cannot turn into suction cohesion.

Source: ogr_core/hydraulic/excess_pore_pressure.py · ogr_slip2d/slicer.py

3.6.9Negative pore pressures and unsaturated strength#

Above the free surface a seepage analysis returns negative pore pressures: the matric suction s=ua−uws = u_a - u_w, with the pore-air pressure uau_a atmospheric and taken as zero. Entering them unchanged in Eq. (3.6.1) would credit the whole suction with the saturated friction angle. Fredlund, Morgenstern & Widger (1978) wrote the strength of an unsaturated soil with two independent stress variables:

τf=c′+(σn−ua)tan⁡ϕ′+(ua−uw)tan⁡ϕb\tau_f = c' + (\sigma_n - u_a)\tan\phi' + (u_a - u_w)\tan\phi^b

where

ua, uwu_a,\ u_w
pore-air and pore-water pressures (kPa)
ϕb\phi^b
angle of the increase of shear strength with matric suction (°)

OGR Slip2D applies a bilinear form of it, controlled by two parameters of each material: ϕb\phi^b and the air-entry value ses_e. Below ses_e the soil is still effectively saturated and the suction acts through ϕ′\phi'; beyond it only the excess over ses_e acts, through ϕb\phi^b. The program expresses this as an effective pore pressure ueffu_\text{eff}, which the methods subtract as usual, and a suction cohesion csc_s, which they add to the cohesion of the base:

s≤se:ueff=−s,cs=0s>se:ueff=−se,cs=(s−se)tan⁡ϕb\begin{aligned} s \le s_e:&\qquad u_\text{eff} = -s, &\qquad c_s &= 0\\ s > s_e:&\qquad u_\text{eff} = -s_e, &\qquad c_s &= (s - s_e)\tan\phi^b \end{aligned}

so that the strength of the base becomes

τf=c′+cs+(σn−ueff)tan⁡ϕ′\tau_f = c' + c_s + (\sigma_n - u_\text{eff})\tan\phi'

Before this, the suction can be limited by the project's negative pore pressure cutoff smaxs_\text{max}, which replaces ss by min⁡(s, smax)\min(s,\ s_\text{max}). Figure 3.6.3 shows the three cases. With the default parameters, ϕb=0\phi^b = 0 and se=0s_e = 0, any negative pore pressure is set to zero and suction adds no strength, which is the conservative choice.

Contribution of matric suction to the shear strength as OGR Slip2D applies it, for a friction angle of 30 degrees: none with the default parameters, bilinear with phi_b = 15 degrees and an air-entry value of 20 kPa, and bounded by a cutoff of 80 kPa 0 10 20 30 40 50 60 0 25 50 75 100 125 150 matric suction s = −u (kPa) strength from suction (kPa) air-entry value cutoff s tan φ′ φb = 15°, AEV = 20 kPa same, with a cutoff of 80 kPa φb = 0, AEV = 0 (defaults)
Figure 3.6.3 Shear strength contributed by matric suction, −uefftan⁡ϕ′+cs-u_\text{eff}\tan\phi' + c_s, for a material with ϕ′=30∘\phi' = 30^\circ: none with the default parameters, bilinear with ϕb=15∘\phi^b = 15^\circ and se=20s_e = 20 kPa, and bounded by a cutoff of 80 kPa. The dotted line credits the whole suction with ϕ′\phi'. Computed with the routine of OGR Slip2D 0.1.235 that every method uses.
In OGR Slip2D

The material parameters are Unsaturated Shear Strength Angle (ϕb\phi^b) and Air Entry Value (ses_e), shown in the material dialog when the groundwater method is a finite-element one. The Negative pore pressure cutoff of Analysis → Project Settings → Groundwater is off by default, which means no limit, and its sign is ignored. It acts wherever either parameter is not zero: with se>0s_e > 0 and ϕb=0\phi^b = 0 it limits the suction credited through ϕ′\phi'. The suction cohesion is added to the cohesion of the base by all nine methods. Only a seepage field, or a grid set to allow suction, can produce u<0u < 0.

Source: ogr_slip2d/slicer.py · ogr_slip2d/methods/bishop.py · ogr_core/project/settings.py

3.6.10Pore pressure in the Ordinary method#

The Ordinary method ignores the interslice forces and resolves the forces on each slice normal to its base. Subtracting the whole pore-water force u lu\,l from Wcos⁡αW\cos\alpha in that resolution gives low, often negative, effective normal forces on steep wet bases. OGR Slip2D uses the correction of Turnbull & Hvorslev (1967), which takes the pore-water force over the vertical projection of the base:

N′=Wcos⁡α−u lcos⁡2α,F=∑(c′l+N′tan⁡ϕ′)∑Wsin⁡αN' = W\cos\alpha - u\,l\cos^2\alpha, \qquad F = \dfrac{\sum\left(c'l + N'\tan\phi'\right)}{\sum W\sin\alpha}

where

WW
weight of the slice (kN/m)
α, l\alpha,\ l
inclination (°) and length (m) of the base
N′N'
effective normal force on the base, to which the program adds the components of the other external forces (kN/m)

The term u lcos⁡2α=u bcos⁡αu\,l\cos^2\alpha = u\,b\cos\alpha is the component normal to the base of the vertical force u bu\,b. In the same spirit, the normal force at which the Ordinary method reads the strength leaves out the horizontal thrust of ponded water, so that water enters it through its vertical components only and a submerged slope gives the factor of safety of the same slope with buoyant unit weights. The other eight methods take the whole force U=u lU = u\,l in their own equilibrium (Section 3.2).

In OGR Slip2D

The correction is used on circular and on non-circular surfaces. The normal force the Ordinary method reports for each base is the one its strength was computed from, N′+u lN' + u\,l, plus the normal component of any support force.

Source: ogr_slip2d/methods/ordinary.py
Engineering judgement

Water surfaces, rur_u and grids are assumptions about the groundwater, and a seepage analysis is a model with its own permeabilities and boundary conditions, so the factor of safety carries their uncertainty. Before relying on a result, check the pore pressures on the slice bases as well as the factor of safety.

3.6.11References#