11. Geotechnical stability

This chapter includes the implemented geotechnical equations. These computations are automatically executed by the design classes when a Soil is specified. For the Caisson class the brinch_hansen() method is used to compute the bearing capacity of the soil. In RockRubbleMound and ConcreteRubbleMound a slip circle analysis is performed with Bishop. The required length of the scour protection is computed for all design classes.

11.1. Define Soil

class breakwater.core.soil.Soil(c, phi, gamma=None, rho=None, n=None)[source]

Define soil

Define the subsoil on which the breakwater is constructed. This class is used in the design classes for making the appropriate geotechnical computations.

Note

It is currently not possible to use several soil layers in the design classes. The soil must therefore be a homogeneous soil.

Parameters:
  • c (float) – cohesion of the soil [kPa]
  • phi (float) – internal friction angle [degrees]
  • gamma (float, optional, default: None) – volumetric weight of the soil [kN/m³]
  • rho (float, optional, default: None) – the density of the soil [kg/m³]
  • n (float, optional, default: None) – porosity of the soil
c

cohesion of the soil [kPa]

Type:float
phi

internal friction angle [rad]

Type:float
gamma

volumetric weight of the soil [kN/m³]

Type:float
gamma_sat

saturated volumetric weight of the soil [kN/m³]

Type:float
n

porosity of the soil

Type:float, optional, default: None
brinch_hansen(p, t, B, L, q, rho_w=None, sat=True)[source]

Brinch-Hansen

implementation of the Brinch Hansen equation to determine the bearing capacity of the soil per unit length. The equation is given by (Brinch Hansen, 1970):

\[p=i_{c} s_{c} c N_{c}+i_{q} s_{q} q N_{q}+i_{\gamma} s_{\gamma} \frac{1}{2} \gamma B N_{\gamma}\]

In which \(i\) and \(s\) are the inclination and shape factor, and \(N\) are dimensionless constants. Note that compared to the original equation the depth, base and ground inclination factors have been omitted. The latter two because the assumption is made that the foundation is never constructed at an angle, and the depth factor because the foundation is not placed in the soil but on top of the bottom.

Parameters:
  • t (float) – horizontal stress [kPa]
  • p (float) – vertical stress [kPa]
  • q (float) – overburden [kPa]
  • B (float) – width of the structure [m]
  • L (float) – length of the structure [m], set to None if the structure is a long structure and the shape factors can be neglected.
  • rho_w (float, optional, default: None) – density of water, by default the soil is not submerged [kg/m³]
  • sat (bool, optional, default: True) – True if the saturated volumetric weight of the soil must be used, False if the dry volumetric weight of the soil must be used.
Returns:

p (float) – bearing capacity of the foundation [kPa]

saturated_weight(gamma_sat=None, rho_w=None)[source]

Method to add the saturated weight

Method to add the properties of the soil if it is saturated. The saturated soil properties can be added by setting gamma_sat or by specifing rho_w. In case of the latter the saturated weight is computed with the porosity.

Parameters:
  • gamma_sat (float, optional, default: None) – saturated volumetric weight of the soil [kN/m³]
  • rho_w (float, optional, default: None) – density of water [kg/m³]
Raises:

InputError – if the porosity is not specified and the saturated volumetric weight is computed with rho_w

11.2. Slip Circle

class breakwater.core.bishop.Bishop(point2, y_step=1, wlev=None, SlipCircle=None)[source]

Bishop slip circles

Class for the computation of the factor of safety against slip failure. This factor of safety is computed with the following equation (Verruijt, 2012):

\[F=\frac{\sum \frac{c+(\gamma h-p) \tan \phi}{\cos \alpha( 1+\tan \alpha \tan \phi / F)}}{\sum \gamma h \sin \alpha}\]

The top of the soil is defined by one point, point2, see the Figure. All slip circles must go through (0,0) and point2, this means that if a custom slip circle is defined this circle must go through both points. If a custom slip circle is not given, slip circles are automatically generated. These circles are generated with an interval of y_step.

definition of the input parameters for the Bishop class
Parameters:
  • point2 (tuple) – x and y coordinate of point2
  • y_step (float, optional, default: 1) – step size of the y coordinate for generating circles, used if a custom circle is not defined
  • wlev (float, optional, defautl: None) – y coordinate of the water level, by default the water level is None, which means that there is no water
  • SlipCircle (SlipCircle) – user defined custom slip circle, circle must be defined with SlipCircle
x2, y2

x and y coordinate of point2

Type:float
wlev

y coordinate of the water level

Type:float
circles

dictionary with the centre and radius of the circle. Slices are added to the dict when generated during the computation.

Type:dict
layers

dictionary with the defined layers

Type:dict
normative

id of the normative SlipCircle

Type:int
add_layer(gamma, c, phi, name, ymin=None, ymax=None, gamma_sat=None)[source]

Add layer to the soil

Add a soil layer for the computation. In case of a homogeneous soil the arguments ymin and ymax do not have to be specified. However, if the soil consists of several layers these parameters must be given for each layer.

Warning

soil layers must be added sequentially from the lowest layer to the highest layer.

Parameters:
  • gamma (float) – volumetric weight of the material [kN/m³]
  • c (float) – cohesion of the material [kPa]
  • phi (float) – internal friction angle [deg]
  • name (str) – name of the layer
  • ymin (float, optional, default: None) – y coordinate of the start of the layer, required if more than 1 layer is added
  • ymax (float, optional, default: None) – y coordinate of the end of the layer, required if more than 1 layer is added
  • gamma_sat (float, optional, default: None) – saturated volumetric weight of the material [kN/m³]. Only required if a wlev is specified.
Raises:

InputError – if more than 1 layer is specified and ymin and/or ymax has not been specified or gamma_sat is not given when a wlev has been specified

compute(num_slices, max_iter=50, ftol=0.05, gamma_w=None)[source]

Compute the factor of safety

Method to compute the factor of safety for all generated circles, or the specified circle. Updates normative with the id of the normative slip circle, i.e. the slip circle with the lowest factor of safety.

Parameters:
  • num_slices (int) – number of slices
  • max_iter (int, optional, default: 50) – maximum number of iterations
  • ftol (float, optional, default: 0.05) – break criterium, when the change between the previous and the current factor of safety is below the change the iteration is ended
  • gamma_w (float, optional, default: None) – volumetric weight of water [kN/m³]
plot(id=None, show_slices=False)[source]

Plot slip circle(s)

Method to plot the slip circle(s)

Parameters:
  • id (int, optional, default: None) – id of the slip circle to plot, by default all slip circles are plotted
  • show_slices (bool, optional, default: False) – if the slices must be shown, only available after the computation as the slices are not generated before the computation. The default value is False, meaning that the slices will not be plotted.
class breakwater.core.bishop.SlipCircle(centre, r)[source]

Define a slip circle

Define a custom slip circle to use in Bishop

Parameters:
  • centre (tuple) – x and y coordinate of the centre of the circle
  • r (float) – radius of the circle
xy

x and y coordinate of the centre of the circle

Type:tuple
r

radius of the circle

Type:float
F

computed factor of safety

Type:float
slices

dictionary with the coordinates, height and slip angle of the slices

Type:dict
make_slices(num_slices, point2, layers)[source]

Make slices

Method to divide the given circle into slices

Parameters:
  • num_slices (int) – number of slices
  • circle (dict) – dictionary with the centre and radius of the circle
  • layers (dict) – dictionary with the layers
plot(show_slices=False)[source]

Plot the circle

Parameters:show_slices (bool, optional, default: False) – if the slices must be shown, only available after the computation as the slices are not generated before the computation. The default value is False, meaning that the slices will not be plotted.

11.3. Scour

breakwater.core.scour.scour_protection(L, slope=None)[source]

Compute the length of the scour protection

Compute the estimated length of the scour hole with Sumer and Fredsoe (2000). In the table the estimated length of the scour hole from the experimental study is presented.

slope of the breakwater estimated length
Vertical breakwater 1.0(L/4)
1:1.2 0.6(L/4)
1:1.75 0.4(L/4)
Parameters:
  • L (float) – wave length at the toe of the structure, computed with the mean wave period [m]
  • slope (float, optional, default: None) – Slope of the armour layer (V, H), for example a slope of 3V:4H is defined as (3, 4). By default the length of the scour protection for a vertical breakwater is computed.
Returns:

float – the required length of the scour protection