Stress and strain

pyeng.geotechnical.stress_strain.elastic.stresses_circle_boussinesq(circle_stress, circle_radius, z, radius=0.0, poisson_coefficient=0.3, fail_silently=True, **kwargs)

Calculates the increase in stress below a uniformy loaded circular area on elastic soil. For points below the center, a closed-form solution exists. For points off center, the vertical normal stress increase is obtained from a chart derived from finite element simulations. The function does not return radial and tangential stresses for points off center. The interpolation is limited to \(z/R = 15\) and \(r/R = 10\).

Parameters:
  • circle_stress – Uniform stress acting on the circular area (\(q\)) [\(kPa\)]
  • circle_radius – Radius of the circle (\(R\)) [\(m\)] - Suggested range: 0.0<=circle_radius
  • z – z-coordinate of the point where stresses are calculated (\(z\)) [\(m\)] - Suggested range: 0.0<=z
  • radius – Radial distance from circle center to point where stresses are calculated (\(r\)) [\(m\)] (optional, default=0.0) - Suggested range: 0.0<=radius
  • poisson_coefficient – Poisson’s coefficient (\(\nu\)) [\(-\)] (optional, default=0.3) - Suggested range: 0.0<=poisson_coefficient<=0.5
\[ \begin{align}\begin{aligned}\sigma_z = q \left[ 1 - \left( \frac{1}{1 + (R/z)^2} \right)^{3/2} \right]\\\sigma_r = \sigma_{\theta} = \frac{q}{2} \left[ (1 + 2 \nu) - \frac{4 (1 + \nu)}{\left[ 1 + (R/z)^2 \right]^{1/2}} + \frac{1}{\left[ 1 + (R/z)^2 \right]^{3/2}} \right]\end{aligned}\end{align} \]
Returns:Vertical stress (\(\sigma_z\)) [\(kPa\)], Radial stress (\(\sigma_r\)) [\(kPa\)], Circumferential stress (\(\sigma_{theta}\)) [\(kPa\)]
Return type:Python dictionary with keys [‘sigma_z [kPa]’,’sigma_r [kPa]’,’sigma_theta [kPa]’]
../../../_images/stresses_circle_boussinesq.PNG

Interpolation chart for points vertical normal stress below a uniformly loaded circular area

Reference - Boussinesq J. (1885). Application des potentiels a l’etude de l’equilibre et du mouvement des solides elastiques. Gauthier-Villar. Paris

pyeng.geotechnical.stress_strain.elastic.stresses_lineload_boussinesq(line_load, x, z, fail_silently=True, **kwargs)

Calculates stresses in an elastic half-space due to a line load acting at the surface.

Parameters:
  • line_load – Magnitude of the line load (\(P\)) [\(kN/m\)]
  • x – x-coordinate of the point where stresses are calculated (\(x\)) [\(m\)]
  • z – z-coordinate of the point where stresses are calculated (\(z\)) [\(m\)] - Suggested range: 0.0<=z
\[ \begin{align}\begin{aligned}\sigma_z = \frac{2 P z^3}{\pi (x^2 + z^2)^2}\\\sigma_x = \frac{2 P x^2 z}{\pi (x^2 + z^2)^2}\\\tau_{zx} = \frac{2 P x z^2}{\pi (x^2 + z^2)^2}\end{aligned}\end{align} \]
Returns:Vertical normal stress (\(\sigma_z\)) [\(kPa\)], Horizontal normal stress (\(\sigma_x\)) [\(kPa\)], Shear stress normal to the z-direction acting in the x-direction (\(\tau_{zx}\)) [\(kPa\)]
Return type:Python dictionary with keys [‘sigma_z [kPa]’,’sigma_x [kPa]’,’tau_zx [kPa]’]
../../../_images/stresses_lineload_boussinesq.PNG

Nomenclature and sign convention for stresses in an elastic half-space due to a line load

Reference - Boussinesq J. (1885). Application des potentiels a l’etude de l’equilibre et du mouvement des solides elastiques. Gauthier-Villar. Paris

pyeng.geotechnical.stress_strain.elastic.stresses_pointload_boussinesq(point_load, x, y, z, poisson_coefficient=0.3, fail_silently=True, **kwargs)

Calculates stresses in a linear elastic half space due to a point load. Although most geotechnical material behave in a non-linear manner, these formulae can be applied provided that the hypothesis of linear elasticity is a reasonable approximation for the actual behaviour of the soil.

Parameters:
  • point_load – Point load acting on the half-space (\(P\)) [\(kPa\)]
  • x – x-coordinate of the point where stresses are calculated (\(x\)) [\(m\)]
  • y – y-coordinate of the point where stresses are calculated (\(y\)) [\(m\)]
  • z – z-coordinate of the point where stresses are calculated (\(z\)) [\(m\)] - Suggested range: 0.0<=z
  • poisson_coefficient – Poisson coefficient (\(\nu\)) [\(-\)] (optional, default=0.3) - Suggested range: 0.0<=poisson_coefficient<=0.5
\[ \begin{align}\begin{aligned}\sigma_z = \frac{3P}{2 \pi} \cdot \frac{z^3}{R^5}\\\sigma_x = \frac{3P}{2 \pi} \left[ \frac{x^2 z}{R^5} + \frac{1 - 2 \nu}{3} \left( - \frac{1}{R (R + z)} - \frac{x^2 (2R + z)}{R^3 (R +z)^2} - \frac{z}{R^3} \right) \right]\\\sigma_y = \frac{3P}{2 \pi} \left[ \frac{y^2 z}{R^5} + \frac{1 - 2 \nu}{3} \left( - \frac{1}{R (R + z)} - \frac{y^2 (2R + z)}{R^3 (R +z)^2} - \frac{z}{R^3} \right) \right]\\\tau_{zx} = - \frac{3 P}{2 \pi} \frac{x z^2}{R^5}\\\tau_{yz} = - \frac{3 P}{2 \pi} \frac{y z^2}{R^5}\\\tau_{xy} = - \frac{3 P}{2 \pi} \left( \frac{x y z}{R^5} - \frac{1 - 2 \nu}{3} \frac{x y (2R + z)}{R^3 (R + z)^2} \right)\\r = \sqrt{x^2 + y^2}\\R = \sqrt{r^2 + z^2}\end{aligned}\end{align} \]
Returns:Normal stress in the z-direction (\(\sigma_z\)) [\(kPa\)], Normal stress in the x-direction (\(\sigma_x\)) [\(kPa\)], Normal stress in the y-direction (\(\sigma_y\)) [\(kPa\)], Shear stress normal to the z-direction acting in the x-direction (\(\tau_{zx}\)) [\(kPa\)], Shear stress normal to the y-direction acting in the z-direction (\(\tau_{yz}\)) [\(kPa\)], Shear stress normal to the x-direction acting in the y-direction (\(\tau_{xy}\)) [\(kPa\)], Distance from point load to point at which stresses are calculated (\(R\)) [\(m\)]
Return type:Python dictionary with keys [‘sigma_z [kPa]’,’sigma_x [kPa]’,’sigma_y [kPa]’,’tau_zx [kPa]’,’tau_yz [kPa]’,’tau_xy [kPa]’,’radius [m]’]
../../../_images/stresses_pointload_boussinesq.PNG

Coordinate system and sign convention for point load acting on an elastic half-space

Reference - Boussinesq J. (1885). Application des potentiels a l’etude de l’equilibre et du mouvement des solides elastiques. Gauthier-Villar. Paris

pyeng.geotechnical.stress_strain.elastic.stresses_rectangle_boussinesq(rectangle_stress, rectangle_length, rectangle_width, z, fail_silently=True, **kwargs)

Calculates the increase in stress below the corner of a uniformly loaded rectangular area.

Parameters:
  • rectangle_stress – Stress acting on the uniformly loaded rectangle (\(q\)) [\(kPa\)]
  • rectangle_length – Length of the longest side of the rectangle (\(L\)) [\(m\)] - Suggested range: 0.0<=rectangle_length
  • rectangle_width – Width of the rectangle (\(B\)) [\(m\)] - Suggested range: 0.0<=rectangle_width
  • z – z-coordinate of the point where stresses are calculated (\(z\)) [\(m\)] - Suggested range: 0.0<=z
\[ \begin{align}\begin{aligned}\sigma_z = \frac{q}{2 \pi} \left[ \tan^{-1} \frac{L B}{z R_3} + \frac{L B z}{R_3} \left( \frac{1}{R_1^2} + \frac{1}{R_2^2} \right) \right]\\\sigma_x = \frac{q}{2 \pi} \left[ \tan^{-1} \frac{L B}{z R_3} - \frac{L B z}{R_1^2 R_3} \right]\\\sigma_y = \frac{q}{2 \pi} \left[ \tan^{-1} \frac{L B}{z R_3} - \frac{L B z}{R_2^2 R_3} \right]\\\tau_{zx} = \frac{q}{2 \pi} \left[\frac{B}{R_2} - \frac{z^2 B}{R_1^2 R_3} \right]\\R_1 = (L^2 + z^2)^{1/2}\\R_2 = (B^2 + z^2)^{1/2}\\R_3 = (L^2 + B^2 +z^2)^{1/2}\end{aligned}\end{align} \]
Returns:Vertical normal stress (\(\sigma_z\)) [\(kPa\)], Normal stress in the horizontal x-direction (\(\sigma_x\)) [\(kPa\)], Normal stress in the horizontal y-direction (\(\sigma_y\)) [\(kPa\)], Shear stress in the xy-plane (\(\tau_{zx}\)) [\(kPa\)]
Return type:Python dictionary with keys [‘sigma_z [kPa]’,’sigma_x [kPa]’,’sigma_y [kPa]’,’tau_zx [kPa]’]
../../../_images/stresses_rectangle_boussinesq.PNG

Stresses below the corner of a uniformly loaded rectangle, nomenclature and sign convention

Reference - Boussinesq J. (1885). Application des potentiels a l’etude de l’equilibre et du mouvement des solides elastiques. Gauthier-Villar. Paris

pyeng.geotechnical.stress_strain.elastic.stresses_striploadconstant_boussinesq(strip_load, load_width, x, z, fail_silently=True, **kwargs)

Calculates the increase in stress at a point in an elastic halfspace due to a strip load of constant magnitude.

Parameters:
  • strip_load – Magnitude of the constant strip load (\(q\)) [\(kPa\)]
  • load_width – Width over which the strip load is acting (\(B\)) [\(m\)] - Suggested range: 0.0<=load_width
  • x – x-coordinate of the point where stresses are calculated (\(x\)) [\(m\)]
  • z – z-coordinate of the point where stresses are calculated (\(z\)) [\(m\)] - Suggested range: 0.0<=z
\[ \begin{align}\begin{aligned}\sigma_z = \frac{q}{\pi} \left[ \alpha + \sin \alpha \cos(\alpha + 2 \beta) \right]\\\sigma_x = \frac{q}{\pi} \left[ \alpha - \sin \alpha \cos(\alpha + 2 \beta) \right]\\\tau_{zx} = \frac{q}{\pi} \left[ \sin \alpha \sin ( \alpha + 2 \beta) \right]\end{aligned}\end{align} \]
Returns:Vertical normal stress (\(\sigma_z\)) [\(kPa\)], Horizontal normal stress (\(\sigma_x\)) [\(kPa\)], Shear stress (\(\tau_{zx}\)) [\(kPa\)]
Return type:Python dictionary with keys [‘sigma_z [kPa]’,’sigma_x [kPa]’,’tau_zx [kPa]’]
../../../_images/stresses_striploadconstant_boussinesq.PNG

Nomenclature and sign convention for stress calculation

Reference - Boussinesq J. (1885). Application des potentiels a l’etude de l’equilibre et du mouvement des solides elastiques. Gauthier-Villar. Paris

pyeng.geotechnical.stress_strain.elastic.stresses_striploadtriangular_boussinesq(strip_load_max, load_width, x, z, fail_silently=True, **kwargs)

Calculates the increase in stress at a point in an elastic halfspace due to a strip load with triangular stress distribution

Parameters:
  • strip_load_max – Maximum value of the strip load acting on the halfspace (\(q\)) [\(kPa\)]
  • load_width – Width over which the strip load is acting (\(B\)) [\(m\)] - Suggested range: 0.0<=load_width
  • x – x-coordinate of the point where stresses are calculated (\(x\)) [\(m\)]
  • z – z-coordinate of the point where stresses are calculated (\(z\)) [\(m\)]
\[ \begin{align}\begin{aligned}\sigma_z = \frac{q}{\pi} \left( \frac{x}{B} \alpha - \frac{1}{2} \sin 2 \beta \right)\\\sigma_x = \frac{q}{\pi} \left( \frac{x}{B} \alpha - \frac{z}{B} \ln{\frac{R_1^2}{R_2^2}} + \frac{1}{2} \sin 2 \beta \right)\\\tau_{zx} = \frac{q}{2 \pi} \left( 1 + \cos 2 \beta - 2 \frac{z}{B} \alpha \right)\end{aligned}\end{align} \]
Returns:Vertical normal stress (\(\sigma_z\)) [\(kPa\)], Horizontal normal stress (\(\sigma_x\)) [\(kPa\)], Shear stress (\(\tau_{zx}\)) [\(kPa\)]
Return type:Python dictionary with keys [‘sigma_z [kPa]’,’sigma_x [kPa]’,’tau_zx [kPa]’]
../../../_images/stresses_striploadtriangular_boussinesq.PNG

Nomenclature and sign convention for stresses due to a triangular strip load

Reference - Boussinesq J. (1885). Application des potentiels a l’etude de l’equilibre et du mouvement des solides elastiques. Gauthier-Villar. Paris