Geotechnic utils¶
Soil with friction and cohesion¶
Frictional soil¶
frictional_soil.py: frictional (or cohesionless) soil model.
- class geotechnics.frictional_soil.FrictionalSoil(phi: float, rho=2100.0, rhoSat=None, phi_cv=None, gammaMPhi=1.0, E=100000000.0, nu=0.3)¶
Bases:
object
Free-running type of soil, such as sand or gravel, whose strength depends on friction between particles.
- Variables
phi – internal friction angle of the soil.
rho – soil density (mass per unit volume).
E – Young’s modulus.
nu – Poisson’s ratio.
- K0Jaky()¶
Returns Jaky’s coefficient (earth pressure at rest).
- Ka()¶
Active earth pressure coefficient.
- Ka_coulomb(a, b, d=0.0, designValue=False)¶
Return the active earth pressure coefficient according to Coulomb’s theory (see Recomendaciones para obras marítimas ROM 0.5-05 figure 3.7.12.).
- Parameters
a – angle of the back of the retaining wall (radians, 0 if vertical).
b – slope of the backfill (radians, 0 if horizontal).
d – friction angle between soil and the back of retaining wall (radians).
designValue – if true use the design value of the internal friction.
- Kah_coulomb(a, b, d, designValue=False)¶
Return the horizontal component of the active earth pressure coefficient according to Coulomb’s theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
d – friction angle between soil an back of retaining wall (radians).
designValue – if true use the design value of the internal friction.
- Kav_coulomb(a, b, d, designValue=False)¶
Return the vertical component of the active earth pressure coefficient according to Coulomb’s theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
phi – internal friction angle of the soil (radians).
d – friction angle between the soil an the back surface of the retaining wall (radians).
designValue – if true use the design value of the internal friction.
- Kp()¶
Passive earth pressure coefficient.
- Kp_coulomb(a, b, d=0.0, designValue=False)¶
Return the passive earth pressure coefficient according to Coulomb’s theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
d – friction angle between the soil and the back surface of the retaining wall (radians).
designValue – if true use the design value of the internal friction.
- eq_coulomb(a, b, d, p, designValue=False)¶
eq_coulomb(a,b,d,p): Return the lateral earth pressure caused by a uniform load q action over the backfill surface according to Coulomb’s theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
d – friction angle between soil an back of retaining wall (radians).
p – Uniform load.
designValue – if true use the design value of the internal friction.
- gamma()¶
Unit weight of soil
- getBulkModulus()¶
Return the bulk modulus of the soil. See https://en.wikipedia.org/wiki/Bulk_modulus
- getDesignC()¶
Return the design value of the soil cohesion.
- getDesignPhi()¶
Return the design value of the soil internal friction angle.
- getMononobeOkabeDryOverpressure(H, kv, kh, psi=1.5707963267948966, delta_ad=0.0, beta=0.0, Kas=None, g=9.81)¶
Overpressure due to seismic action according to Mononobe-Okabe
- Parameters
H – height of the structure.
kv – seismic coefficient of vertical acceleration.
kh – seismic coefficient of horizontal acceleration.
psi – back face inclination of the structure (< PI/2)
beta – slope inclination of backfill.
delta_ad – angle of friction soil - structure.
Kas – static earth pressure coefficient
- getShearModulus()¶
Return the shear modulus of the soil.
- submergedGamma(waterDensity=1000.0)¶
Return the submerged specific gravity of the soil.
- Parameters
waterDensity – water density.
Earth pressure¶
earth_pressure.py: earth pressures for retaining structures.
- class geotechnics.earth_pressure.BellSoil(phi, c, beta=0.0, rho=2100.0, rhoSat=None, phi_cv=None, gammaMPhi=1.0, gammaMc=1.0, E=100000000.0, nu=0.3, Kh=None, deltaAngle=0.0, gammaRe=1.0)¶
Bases:
geotechnics.earth_pressure.SoilModel
Soil response according to Bell’s theory of earth pressure for clay.
- Ka(alphaAngle=0.0, designValue=False)¶
Return the horizontal component of the active earth pressure coefficient according to Coulomb’s theory.
- Parameters
alphaAngle – angle of the back of the retaining wall (radians).
designValue – if true use the design value of the internal friction.
- Kp(alphaAngle=0.0, designValue=False)¶
Return the horizontal component of the passive earth pressure coefficient according to Coulomb’s theory.
- Parameters
alphaAngle – angle of the back of the retaining wall (radians).
designValue – if true use the design value of the internal friction.
- getActivePressure(sg_v, alphaAngle=0.0, designValue=False)¶
- Returns the active presure corresponding to the given vertical
pressure.
- Parameters
sg_v – vertical stress.
alphaAngle – inclination of the back face.
designValue – if true use the design value of the internal friction.
- getCoulombTensionCrackDepth(sg_v, alphaAngle=0.0, designValue=False)¶
- Return the depth of the tension crack (the depth at which
active lateral earth pressure is cero due to soil cohesion).
- Parameters
sg_v – vertical stress.
alphaAngle – angle of the back of the retaining wall (radians).
designValue – if true use the design value of the internal friction and the cohesion.
- getPassivePressure(sg_v, alphaAngle=0.0, designValue=False)¶
- Returns the passive presure corresponding to the given vertical
pressure.
- Parameters
sg_v – vertical stress.
alphaAngle – inclination of the back face.
designValue – if true use the design value of the internal friction.
- class geotechnics.earth_pressure.CoulombSoil(phi, beta=0.0, rho=2100.0, rhoSat=None, phi_cv=None, gammaMPhi=1.0, E=100000000.0, nu=0.3, Kh=None, deltaAngle=0.0, gammaRe=1.0)¶
Bases:
geotechnics.earth_pressure.SoilModel
Soil response according to Coulomb’s theory.
- Ka(alphaAngle=0.0, designValue=False)¶
Return the horizontal component of the active earth pressure coefficient according to Coulomb’s theory.
- Parameters
alphaAngle – angle of the back of the retaining wall (radians).
designValue – if true use the design value of the internal friction.
- Kp(alphaAngle=0.0, designValue=False)¶
Return the horizontal component of the passive earth pressure coefficient according to Coulomb’s theory.
- Parameters
alphaAngle – angle of the back of the retaining wall (radians).
designValue – if true use the design value of the internal friction.
- class geotechnics.earth_pressure.RankineSoil(phi, beta=0.0, rho=2100.0, rhoSat=None, gammaMPhi=1.0, Kh=None, deltaAngle=0.0, gammaRe=1.0)¶
Bases:
geotechnics.earth_pressure.SoilModel
From Wikipedia: Rankine’s theory, developed in 1857, is a stress field solution that predicts active and passive earth pressure. It assumes that the soil is cohesionless, the wall is frictionless, the soil-wall interface is vertical, the failure surface on which the soil moves is planar, and the resultant force is angled parallel to the backfill surface. The equations for active and passive lateral earth pressure coefficients are given below. Note that φ is the angle of shearing resistance of the soil and the backfill is inclined at angle β to the horizontal.
- Ka(alphaAngle=0.0, designValue=False)¶
Returns Rankine’s active earth pressure coefficient.
- Parameters
alphaAngle – inclination of the back face.
designValue – if true use the design value of the internal friction.
- Kp(alphaAngle=0.0, designValue=False)¶
Returns Rankine’s passive earth pressure coefficient.
- Parameters
alphaAngle – angle of the back of the retaining wall (radians).
designValue – if true use the design value of the internal friction.
- class geotechnics.earth_pressure.SoilModel(beta=0.0, Kh=None, deltaAngle=0.0, gammaRe=1.0)¶
Bases:
object
Soil response abstract base class.
- Variables
beta – angle of backfill with horizontal
;ivar Kh: horizontal reaction modulus of the soil. :ivar deltaAngle: friction angle between the soil and the back surface
of the retaining wall.
- Variables
gammaRe – partial safety factor for passive earth resistance.
- K0Jaky(designValue=False)¶
Returns Jaky’s coefficient (earth pressure at rest).
- Parameters
designValue – if true use the design value of the internal friction.
- defHorizontalSubgradeReactionNlMaterial(preprocessor, name, sg_v, tributaryArea, alphaAngle=0.0, designValue=False)¶
Return the points of the force-displacement diagram.
- Parameters
preprocessor – preprocessor of the finite element problem.
name – name identifying the material (if None compute a suitable name)
sg_v – vertical stress.
tributaryArea – area on which the pressure acts.
alphaAngle – inclination of the back face.
designValue – if true use the design value of the geotechnical parameters.
- gamma()¶
Return the specific weight of soil.
- getActivePressure(sg_v, alphaAngle=0.0, designValue=False)¶
- Returns the active presure corresponding to the given vertical
pressure.
- Parameters
sg_v – vertical stress.
alphaAngle – inclination of the back face.
designValue – if true use the design value of the internal friction.
- getAtRestPressure(sg_v, designValue=False)¶
- Returns the at-rest presure corresponding to the given vertical
pressure.
- Parameters
z – depth to compute the pressure.
designValue – if true use the design value of the internal friction.
- getDeltaAngleActivePressure(alphaAngle=0.0)¶
- Returns the angle of the earth pressure with respect to the
wall back face.
- Parameters
alphaAngle – inclination of the back face.
- getEarthThrusts(sg_v, tributaryArea, alphaAngle=0.0, designValue=False)¶
- Returns the active, at-rest and passive presure corresponding to
the given vertical pressure.
- Parameters
sg_v – vertical stress.
tributaryArea – area on which the pressure acts.
alphaAngle – inclination of the back face.
designValue – if true use the design value of the internal friction.
- getPassivePressure(sg_v, alphaAngle=0.0, designValue=False)¶
- Returns the passive presure corresponding to the given vertical
pressure.
- Parameters
sg_v – vertical stress.
alphaAngle – inclination of the back face.
designValue – if true use the design value of the internal friction.
- getVerticalStressAtDepth(z, waterTableDepth=6371000.0, waterDensity=1000.0)¶
Returns the vertical presure at depth z assuming that the soil is homogeneous along the given depth.
- Parameters
z – depth to compute the pressure.
waterTableDepth – depth of the water table.
waterDensity – water density.
- phi(designValue=False)¶
Return the specific weight of soil.
- Parameters
designValue – if true use the design value of the angle of internal friction.
- rho()¶
Return the soil density.
- submergedGamma(waterDensity=1000.0)¶
Return the submerged gamma of the soil.
- Parameters
waterDensity – water density.
- geotechnics.earth_pressure.active_pressure_culmann_method(soil, wallBack, backfillProfile, delta=0.0, numValues=8)¶
Return the active earth pressure according to Culmann Method.
- Parameters
soil – soil model.
wallBack – 2D segment (geom.Segment2d) representing the back of the wall. The first point of the segment is the top of the wall and the second one corresponds to the bottom.
backfillProfile – 2D polyline representing the profile of the backfill.
delta – friction angle of the soil and the wall.
numValues – number of test values along the backfill.
- geotechnics.earth_pressure.def_ey_basic_material(preprocessor, name, E, upperYieldStress, lowerYieldStress)¶
- Constructs an elastic perfectly-plastic uniaxial material adapted
to represent the horizontal thrust of a soil.
- Parameters
preprocessor – preprocessor of the finite element problem.
name – name identifying the material (if None compute a suitable name)
E – tangent in the elastic zone of the stress-strain diagram
upperYieldStress – stress at which material reaches plastic state in decompression.
lowerYieldStress – stress at which material reaches plastic state in compression.
- geotechnics.earth_pressure.eq_coulomb(a, b, phi, d, p)¶
Return the lateral earth pressure caused by a uniform load q action over the backfill surface according to Coulomb’s theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
phi – internal friction angle of the soil (radians).
d – friction angle between soil an back of retaining wall (radians).
p – Uniform load.
- geotechnics.earth_pressure.eql_coulomb(x, H, z, ql)¶
Return the earth pressure due to a linear load ql acting on a line parallel to the top of the wall on the surface of the retained backfill.
- Parameters
x – Distance from the top of the back and the linea where the load is applied.
H – Depth of the bottom end of the wall back.
z – depth of the point for which the pressure is computed.
l – value of the linear load.
- geotechnics.earth_pressure.eqp_coulomb(x, H, z, qp)¶
Return the earth pressure resulting from a vertical point load qp acting behind a retaining wall and is contained in the same vertical plane of the wall section.
- Parameters
x – Distance from the top of the trasdós to the point of application of the load.
H – Profundidad del extremo inferior del trasdós.
z – depth of the point for which the pressure is computed.
qp – punctual load
- geotechnics.earth_pressure.get_earth_thrusts(sg_v, tributaryArea, Ka, K0, Kp)¶
Return the earth thrusts corresponding to the given argumenst.
- Parameters
sg_v – vertical stress.
tributaryArea – area on which the pressure acts.
Ka – active earth pressure coefficient.
K0 – earth pressure at rest coefficient.
Kp – passive earth pressure coefficient.
- geotechnics.earth_pressure.get_horizontal_soil_reaction_diagram(sg_v, tributaryArea, Ka, K0, Kp, Kh)¶
Return the points of the force-displacement diagram.
- Parameters
sg_v – vertical stress.
tributaryArea – area on which the pressure acts.
Ka – active earth pressure coefficient.
K0 – earth pressure at rest coefficient.
Kp – passive earth pressure coefficient.
Kh – horizontal Winkler modulus.
- geotechnics.earth_pressure.k_janssen(k, d, B, z)¶
Lateral earth pressure coefficient for limited backfills according to Janssen’s Theory (1895) and Kniss et Al (2007):
- Parameters
k – lateral earth pressure (usually k= K_0).
d – friction angle between soil an back of retaining wall (radians).
B – width of the backfill (radians).
z – depth from top of wall.
- geotechnics.earth_pressure.ka_coulomb(a, b, phi, d)¶
Return the active earth pressure coefficient according to Coulomb theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
phi – internal friction angle of the soil (radians).
d – friction angle between soil an back of retaining wall (radians).See Jiménez Salas, Geotecnia y Cimientos page 682.
- geotechnics.earth_pressure.ka_rankine(b, phi)¶
Return the active earth pressure coefficient according to Rankine theory.
- Parameters
b – slope of the backfill (radians).
phi – internal friction angle of the soil (radians).
- geotechnics.earth_pressure.kah_coulomb(a, b, phi, d)¶
Return the horizontal component of the active earth pressure coefficient according to Coulomb’s theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
phi – internal friction angle of the soil (radians).
d – friction angle between soil an back of retaining wall (radians).
- geotechnics.earth_pressure.kav_coulomb(a, b, phi, d)¶
Return the vertical component of the active earth pressure coefficient according to Coulomb’s theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
phi – internal friction angle of the soil (radians).
d – friction angle between soil an back of retaining wall (radians).
- geotechnics.earth_pressure.kp_coulomb(a, b, phi, d)¶
Return the passive earth pressure coefficient according to Coulomb’s theory.
- Parameters
a – angle of the back of the retaining wall (radians).
b – slope of the backfill (radians).
phi – internal friction angle of the soil (radians).
d – friction angle between soil an back of retaining wall (radians).
- geotechnics.earth_pressure.kp_rankine(b, phi)¶
Return the passive earth pressure coefficient according to Rankine theory.
- Parameters
b – slope of the backfill (radians).
phi – internal friction angle of the soil (radians).
- geotechnics.earth_pressure.phi_rankine_from_active_coefficient(b, ka)¶
- Return the soil internal friction angle of the soil, given its active
earth pressure coefficient according to Rankine theory.
- Parameters
b – slope of the backfill (radians).
ka – active earth pressure coefficiente according to Rankine theory.
Mononobe okabe¶
Mononobe-Okabe theory.
- geotechnics.mononobe_okabe.active_earth_pressure_coefficient_Kad(psi, phi, theta, delta_ad, beta)¶
Return the active earth pressure coefficient according to Mononobe-Okabe according to EN1998-5 §E.4.
- Parameters
psi – back face inclination of the structure (<= PI/2)
phi – angle of internal friction of soil [radians].
theta – angle of weight with vertical: - kv= seismic coefficient of vertical acceleration. - kh= seismic coefficient of horizontal acceleration. - tan(theta)= kh/(1+kv) AND tan(theta)= kh/(1-kv)
delta_ad – angle of friction soil - structure [radians].
beta – slope inclination of terrain.
- geotechnics.mononobe_okabe.overpressure_dry(H, gamma_soil, kv, kh, psi, phi, delta_ad, beta, Kas)¶
Overpressure due to seismic action according to Mononobe-Okabe
- Parameters
H – height of the structure.
gamma_soil – unit weight of soil (backfill)
kv – seismic coefficient of vertical acceleration.
kh – seismic coefficient of horizontal acceleration.
psi – back face inclination of the structure (<= PI/2) [radians]
phi – angle of internal friction of soil [radians].
delta_ad – angle of friction soil - structure.
beta – slope inclination of backfill.
Kas – static earth pressure coefficient
- geotechnics.mononobe_okabe.passive_earth_pressure_coefficient_Kpd(psi, phi, theta, beta)¶
Return the passive earth pressure coefficient according to Mononobe-Okabe according to EN1998-5 §E.4.
- Parameters
psi – back face inclination of the structure (<= PI/2) [radians]
phi – angle of internal friction of soil [radians].
theta – angle of weight with vertical: - kv= seismic coefficient of vertical acceleration. - kh= seismic coefficient of horizontal acceleration. - tan(theta)= kh/(1+kv) AND tan(theta)= kh/(1-kv)
beta – slope inclination of terrain.
- geotechnics.mononobe_okabe.theta_values(kh, kv)¶
- Return the values of the auxiliary angle theta for the case of water
table below the retaining wall in accordance with EN1998-5 equation (E.6).
- Parameters
kh – horizontal seismic coefficient.
kv – vertical seismic coefficient.
Settlement¶
Soil settlement.
Code based on the chapter 5 of the book “Principles of Foundation Engineering, SI Edition. Seventh edition. Braja M. Das. ISBN-13: 978-0-495-66812-1
- geotechnics.settlement.average_vertical_stress_increment_under_concentrated_load(P, x, y, z1, z2, zInc=0.2)¶
Return the average increment in the vertical stress of a the points between z1 and z2.
- Parameters
P – value of the load.
x – x-coordinate of the point relative to the loaded point.
y – y-coordinate of the point relative to the loaded point.
z1 – upper limit of the z-coordinate.
z2 – lower limit of the z-coordinate.
zInc – size of the discretization.
- geotechnics.settlement.average_vertical_stress_increment_under_rectangular_loaded_area(q, B, L, x, y, z1, z2, eSize=0.1, zInc=0.2)¶
Return the average increment in the vertical stress of the points between z1 and z2 inside an homogeneous and elastic soil due to a load distributed on a rectangular area.
- Parameters
q – pressure on the loaded area.
B – dimension of the rectangular area in direction x.
L – dimension of the rectangular area in direction y.
x – x-coordinate of the point relative to the rectangle center.
y – y-coordinate of the point relative to the rectangle center.
z – z-coordinate of the point relative to the rectangle center.
z1 – upper limit of the z-coordinate.
z2 – lower limit of the z-coordinate.
zInc – size of the discretization.
- geotechnics.settlement.vertical_stress_increment_under_rectangular_loaded_area(q, B, L, x, y, z, eSize=0.1)¶
Return the increment in the vertical stress of a point inside an homogeneous and elastic soil due to a load distributed on a rectangular area.
- Parameters
q – pressure on the loaded area.
B – dimension of the rectangular area in direction x.
L – dimension of the rectangular area in direction y.
eSize – length of the side for the discretization.
x – x-coordinate of the point relative to the rectangle center.
y – y-coordinate of the point relative to the rectangle center.
z – z-coordinate of the point relative to the rectangle center.