geolysis 0.9.0__py3-none-any.whl → 0.10.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. geolysis/__init__.py +3 -3
  2. geolysis/bearing_capacity/abc/__init__.py +21 -0
  3. geolysis/bearing_capacity/abc/_cohl/__init__.py +109 -0
  4. geolysis/bearing_capacity/abc/{cohl → _cohl}/_core.py +25 -8
  5. geolysis/bearing_capacity/abc/_cohl/bowles_abc.py +103 -0
  6. geolysis/bearing_capacity/abc/_cohl/meyerhof_abc.py +100 -0
  7. geolysis/bearing_capacity/abc/_cohl/terzaghi_abc.py +148 -0
  8. geolysis/bearing_capacity/ubc/__init__.py +107 -128
  9. geolysis/bearing_capacity/ubc/_core.py +82 -52
  10. geolysis/bearing_capacity/ubc/_hansen_ubc.py +271 -0
  11. geolysis/bearing_capacity/ubc/_terzaghi_ubc.py +178 -0
  12. geolysis/bearing_capacity/ubc/_vesic_ubc.py +253 -0
  13. geolysis/foundation.py +146 -136
  14. geolysis/soil_classifier.py +386 -290
  15. geolysis/spt.py +323 -257
  16. geolysis/{utils/__init__.py → utils.py} +44 -33
  17. geolysis-0.10.1.dist-info/METADATA +182 -0
  18. geolysis-0.10.1.dist-info/RECORD +22 -0
  19. {geolysis-0.9.0.dist-info → geolysis-0.10.1.dist-info}/WHEEL +1 -1
  20. geolysis/bearing_capacity/abc/cohl/__init__.py +0 -137
  21. geolysis/bearing_capacity/abc/cohl/bowles_abc.py +0 -96
  22. geolysis/bearing_capacity/abc/cohl/meyerhof_abc.py +0 -96
  23. geolysis/bearing_capacity/abc/cohl/terzaghi_abc.py +0 -131
  24. geolysis/bearing_capacity/ubc/hansen_ubc.py +0 -287
  25. geolysis/bearing_capacity/ubc/terzaghi_ubc.py +0 -246
  26. geolysis/bearing_capacity/ubc/vesic_ubc.py +0 -293
  27. geolysis/utils/exceptions.py +0 -65
  28. geolysis/utils/validators.py +0 -119
  29. geolysis-0.9.0.dist-info/METADATA +0 -206
  30. geolysis-0.9.0.dist-info/RECORD +0 -24
  31. {geolysis-0.9.0.dist-info → geolysis-0.10.1.dist-info}/licenses/LICENSE.txt +0 -0
  32. {geolysis-0.9.0.dist-info → geolysis-0.10.1.dist-info}/top_level.txt +0 -0
@@ -1,131 +0,0 @@
1
- from geolysis.foundation import Foundation
2
- from geolysis.utils import round_
3
-
4
- from ._core import AllowableBearingCapacity
5
-
6
-
7
- class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
8
- r"""Allowable bearing capacity for pad foundation on cohesionless
9
- soils according to ``Terzaghi & Peck (1948)``.
10
-
11
- :Equation:
12
-
13
- .. math::
14
-
15
- q_a(kPa) &= 12N \dfrac{1}{c_w f_d}\left(\dfrac{S}{25.4}\right),
16
- \ B \ \le 1.2m
17
-
18
- q_a(kPa) &= 8N\left(\dfrac{3.28B + 1}{3.28B} \right)^2\dfrac{1}
19
- {c_w f_d}\left(\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
20
-
21
- f_d &= 1 + 0.25 \cdot \frac{D_f}{B} \le 1.25
22
-
23
- c_w &= 2 - \frac{D_w}{2B} \le 2, D_w \gt D_f
24
-
25
- c_w &= 2 - \frac{D_f}{2B} \le 2, D_w \le D_f
26
-
27
- =================== ====================================== ===========
28
- Symbol Description Unit
29
- =================== ====================================== ===========
30
- :math:`q_a` Allowable bearing capacity :math:`kPa`
31
- :math:`N` Corrected SPT N-value —
32
- :math:`f_d` Depth factor —
33
- :math:`c_w` Water correction factor —
34
- :math:`S` Tolerable settlement :math:`mm`
35
- :math:`B` Width of foundation footing :math:`m`
36
- :math:`D_f` Depth of foundation footing :math:`m`
37
- :math:`D_w` Depth of water below ground level :math:`m`
38
- =================== ====================================== ===========
39
- """
40
-
41
- def __init__(self, corrected_spt_n_value: float,
42
- tol_settlement: float,
43
- foundation_size: Foundation) -> None:
44
- """
45
- :param corrected_spt_n_value: Lowest (or average) uncorrected SPT
46
- N-value (60% energy) within the foundation
47
- influence zone i.e :math:`D_f` to
48
- :math:`D_f + 2B`
49
- :type corrected_spt_n_value: float
50
-
51
- :param tol_settlement: Tolerable settlement of foundation (mm).
52
- :type tol_settlement: float
53
-
54
- :param foundation_size: Size of the foundation.
55
- :type foundation_size: Foundation
56
- """
57
- super().__init__(corrected_spt_n_value=corrected_spt_n_value,
58
- tol_settlement=tol_settlement,
59
- foundation_size=foundation_size)
60
-
61
- def _fd(self) -> float:
62
- """Calculate the depth factor."""
63
- depth = self.foundation_size.depth
64
- width = self.foundation_size.width
65
-
66
- return min(1.0 + 0.25 * depth / width, 1.25)
67
-
68
- def _cw(self):
69
- """Calculate the water correction factor."""
70
- depth = self.foundation_size.depth
71
- width = self.foundation_size.width
72
- water_level = self.foundation_size.ground_water_level
73
-
74
- if water_level is None:
75
- return 2.0
76
-
77
- if water_level <= depth:
78
- cw = 2.0 - depth / (2.0 * width)
79
- else:
80
- cw = 2.0 - water_level / (2.0 * width)
81
-
82
- return min(cw, 2.0)
83
-
84
- @round_(ndigits=2)
85
- def bearing_capacity(self):
86
- """Calculates the allowable bearing capacity of the pad foundation."""
87
- n_corr = self.corrected_spt_n_value
88
- width = self.foundation_size.width
89
-
90
- if width <= 1.2:
91
- return 12 * n_corr * (1 / (self._cw() * self._fd())) * self._sr()
92
-
93
- return (8 * n_corr * ((3.28 * width + 1) / (3.28 * width)) ** 2
94
- * (1 / (self._cw() * self._fd())) * self._sr())
95
-
96
-
97
- class TerzaghiABC4MatFoundation(TerzaghiABC4PadFoundation):
98
- r"""Allowable bearing capacity for mat foundation on cohesionless soils
99
- according to ``Terzaghi & Peck (1948)``.
100
-
101
- :Equation:
102
-
103
- .. math::
104
-
105
- q_a(kPa) &= 8N\dfrac{1}{c_w f_d}\left(\dfrac{S}{25.4}\right)
106
-
107
- f_d &= 1 + 0.25 \cdot \frac{D_f}{B} \le 1.25
108
-
109
- c_w &= 2 - \frac{D_w}{2B} \le 2, D_w \gt D_f
110
-
111
- c_w &= 2 - \frac{D_f}{2B} \le 2, D_w \le D_f
112
-
113
- =================== ====================================== ===========
114
- Symbol Description Unit
115
- =================== ====================================== ===========
116
- :math:`q_a` Allowable bearing capacity :math:`kPa`
117
- :math:`N` Corrected SPT N-value —
118
- :math:`f_d` Depth factor —
119
- :math:`c_w` Water correction factor —
120
- :math:`S` Tolerable settlement :math:`mm`
121
- :math:`B` Width of foundation footing :math:`m`
122
- :math:`D_f` Depth of foundation footing :math:`m`
123
- :math:`D_w` Depth of water below ground level :math:`m`
124
- =================== ====================================== ===========
125
- """
126
-
127
- @round_(ndigits=2)
128
- def bearing_capacity(self):
129
- """Calculates the allowable bearing capacity of the mat foundation."""
130
- n_corr = self.corrected_spt_n_value
131
- return 8 * n_corr * (1 / (self._cw() * self._fd())) * self._sr()
@@ -1,287 +0,0 @@
1
- from geolysis.foundation import Shape
2
- from geolysis.utils import cos, cot, exp, isclose, pi, round_, sin, tan
3
-
4
- from ._core import UltimateBearingCapacity
5
-
6
- __all__ = ["HansenUltimateBearingCapacity"]
7
-
8
-
9
- @round_(ndigits=2)
10
- def n_c(friction_angle: float) -> float:
11
- if isclose(friction_angle, 0.0):
12
- return 5.14
13
- return cot(friction_angle) * (n_q(friction_angle) - 1.0)
14
-
15
-
16
- @round_(ndigits=2)
17
- def n_q(friction_angle: float) -> float:
18
- return (tan(45.0 + friction_angle / 2.0) ** 2.0
19
- * exp(pi * tan(friction_angle)))
20
-
21
-
22
- @round_(ndigits=2)
23
- def n_gamma(friction_angle: float) -> float:
24
- return 1.8 * (n_q(friction_angle) - 1.0) * tan(friction_angle)
25
-
26
-
27
- @round_(ndigits=2)
28
- def s_c(f_width: float, f_length: float, f_shape: Shape) -> float:
29
- if f_shape == Shape.STRIP:
30
- return 1.0
31
- elif f_shape == Shape.RECTANGLE:
32
- return 1.0 + 0.2 * f_width / f_length
33
- else: # SQUARE & CIRCLE
34
- return 1.3
35
-
36
-
37
- @round_(ndigits=2)
38
- def s_q(f_width: float, f_length: float, f_shape: Shape) -> float:
39
- if f_shape == Shape.STRIP:
40
- return 1.0
41
- elif f_shape == Shape.RECTANGLE:
42
- return 1.0 + 0.2 * f_width / f_length
43
- else: # SQUARE & CIRCLE
44
- return 1.2
45
-
46
-
47
- @round_(ndigits=2)
48
- def s_gamma(f_width: float, f_length: float, f_shape: Shape) -> float:
49
- if f_shape == Shape.STRIP:
50
- return 1.0
51
- elif f_shape == Shape.RECTANGLE:
52
- return 1.0 - 0.4 * f_width / f_length
53
- elif f_shape == Shape.SQUARE:
54
- return 0.8
55
- else: # CIRCLE
56
- return 0.6
57
-
58
-
59
- @round_(ndigits=2)
60
- def d_c(f_depth: float, f_width: float) -> float:
61
- return 1.0 + 0.35 * f_depth / f_width
62
-
63
-
64
- @round_(ndigits=2)
65
- def d_q(f_depth: float, f_width: float) -> float:
66
- return d_c(f_depth, f_width)
67
-
68
-
69
- @round_(ndigits=2)
70
- def d_gamma() -> float:
71
- return 1.0
72
-
73
-
74
- @round_(ndigits=2)
75
- def i_c(cohesion: float,
76
- load_angle: float,
77
- f_width: float,
78
- f_length: float) -> float:
79
- return 1.0 - sin(load_angle) / (2.0 * cohesion * f_width * f_length)
80
-
81
-
82
- @round_(ndigits=2)
83
- def i_q(load_angle: float) -> float:
84
- return 1.0 - (1.5 * sin(load_angle)) / cos(load_angle)
85
-
86
-
87
- @round_(ndigits=2)
88
- def i_gamma(load_angle: float) -> float:
89
- return i_q(load_angle) ** 2.0
90
-
91
-
92
- class HansenUltimateBearingCapacity(UltimateBearingCapacity):
93
- r"""Ultimate bearing capacity for soils according to ``Hansen (1961)``.
94
-
95
- :Equation:
96
-
97
- .. math::
98
-
99
- q_u = cN_c s_c d_c i_c + qN_q s_q d_q i_q
100
- + 0.5 \gamma B N_{\gamma} s_{\gamma} d_{\gamma} i_{\gamma}
101
-
102
- .. list-table::
103
- :widths: auto
104
- :header-rows: 1
105
-
106
- * - Symbol
107
- - Description
108
- - Unit
109
- * - :math:`q_u`
110
- - Ultimate bearing capacity
111
- - :math:`kPa`
112
- * - :math:`c`
113
- - Cohesion of soil
114
- - :math:`kPa`
115
- * - :math:`q`
116
- - Overburden pressure of soil
117
- - :math:`kPa`
118
- * - :math:`\gamma`
119
- - Unit weight of soil
120
- - :math:`kN/m^3`
121
- * - :math:`B`
122
- - Width of foundation footing
123
- - :math:`m`
124
- * - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
125
- - Bearing capacity factors
126
- - —
127
- * - :math:`s_c`, :math:`s_q`, :math:`s_{\gamma}`
128
- - Shape factors
129
- - —
130
- * - :math:`d_c`, :math:`d_q`, :math:`d_{\gamma}`
131
- - Depth factors
132
- - —
133
- * - :math:`i_c`, :math:`i_q`, :math:`i_{\gamma}`
134
- - Inclination factors
135
- - —
136
- """
137
-
138
- @property
139
- def n_c(self) -> float:
140
- r"""Bearing capacity factor :math:`N_c`.
141
-
142
- :Equation:
143
-
144
- .. math:: N_c = \cot(\phi) \left(N_q - 1\right)
145
- """
146
- return n_c(self.friction_angle)
147
-
148
- @property
149
- def n_q(self) -> float:
150
- r"""Bearing capacity factor :math:`N_q`.
151
-
152
- :Equation:
153
-
154
- .. math::
155
-
156
- N_q = \tan^2\left(45 + \frac{\phi}{2}\right) \cdot e^{\pi \tan(\phi)}
157
- """
158
- return n_q(self.friction_angle)
159
-
160
- @property
161
- def n_gamma(self) -> float:
162
- r"""Bearing capacity factor :math:`N_{\gamma}`.
163
-
164
- :Equation:
165
-
166
- .. math:: N_{\gamma} = 1.8 \left(N_q - 1\right) \tan(\phi)
167
- """
168
- return n_gamma(self.friction_angle)
169
-
170
- @property
171
- def s_c(self) -> float:
172
- r"""Shape factor :math:`S_c`.
173
-
174
- :Equation:
175
-
176
- .. math::
177
-
178
- s_c &= 1.0 \rightarrow \text{Strip footing}
179
-
180
- s_c &= 1.0 + 0.2 \frac{B}{L} \rightarrow \text{Rectangular footing}
181
-
182
- s_c &= 1.3 \rightarrow \text{Square or circular footing}
183
- """
184
- width, length, shape = self.foundation_size.footing_params()
185
- return s_c(width, length, shape)
186
-
187
- @property
188
- def s_q(self) -> float:
189
- r"""Shape factor :math:`S_q`.
190
-
191
- :Equation:
192
-
193
- .. math::
194
-
195
- s_q &= 1.0 \rightarrow \text{Strip footing}
196
-
197
- s_q &= 1.0 + 0.2 \frac{B}{L} \rightarrow \text{Rectangular footing}
198
-
199
- s_q &= 1.2 \rightarrow \text{Square or circular footing}
200
- """
201
- width, length, shape = self.foundation_size.footing_params()
202
- return s_q(width, length, shape)
203
-
204
- @property
205
- def s_gamma(self) -> float:
206
- r"""Shape factor :math:`S_{\gamma}`.
207
-
208
- :Equation:
209
-
210
- .. math::
211
-
212
- s_{\gamma} &= 1.0 \rightarrow \text{Strip footing}
213
-
214
- s_{\gamma} &= 1.0 - 0.4 \frac{B}{L} \rightarrow
215
- \text{Rectangular footing}
216
-
217
- s_{\gamma} &= 0.8 \rightarrow \text{Square footing}
218
-
219
- s_{\gamma} &= 0.6 \rightarrow \text{Circular footing}
220
- """
221
- width, length, shape = self.foundation_size.footing_params()
222
- return s_gamma(width, length, shape)
223
-
224
- @property
225
- def d_c(self) -> float:
226
- r"""Depth factor :math:`D_c`.
227
-
228
- :Equation:
229
-
230
- .. math:: d_c = 1.0 + 0.35 \cdot \frac{D_f}{B}
231
- """
232
- depth = self.foundation_size.depth
233
- width = self.foundation_size.width
234
- return d_c(depth, width)
235
-
236
- @property
237
- def d_q(self) -> float:
238
- r"""Depth factor :math:`D_q`.
239
-
240
- :Equation:
241
-
242
- .. math:: d_q = 1.0 + 0.35 \cdot \frac{D_f}{B}
243
- """
244
- depth = self.foundation_size.depth
245
- width = self.foundation_size.width
246
- return d_q(depth, width)
247
-
248
- @property
249
- def d_gamma(self) -> float:
250
- r"""Depth factor :math:`D_{\gamma}`.
251
-
252
- :Equation:
253
-
254
- .. math:: d_{\gamma} = 1.0
255
- """
256
- return d_gamma()
257
-
258
- @property
259
- def i_c(self) -> float:
260
- r"""Inclination factor :math:`I_c`.
261
-
262
- :Equation:
263
-
264
- .. math:: I_c = 1 - \frac{\sin(\alpha)}{2cBL}
265
- """
266
- width, length = self.foundation_size.width, self.foundation_size.length
267
- return i_c(self.cohesion, self.load_angle, width, length)
268
-
269
- @property
270
- def i_q(self) -> float:
271
- r"""Inclination factor :math:`I_q`.
272
-
273
- :Equation:
274
-
275
- .. math:: I_q = 1 - \frac{1.5 \sin(\alpha)}{\cos(\alpha)}
276
- """
277
- return i_q(self.load_angle)
278
-
279
- @property
280
- def i_gamma(self) -> float:
281
- r"""Inclination factor :math:`I_{\gamma}`.
282
-
283
- :Equation:
284
-
285
- .. math:: I_{\gamma} = I_q^2
286
- """
287
- return i_gamma(self.load_angle)
@@ -1,246 +0,0 @@
1
- from abc import ABC
2
-
3
- from geolysis.utils import cos, cot, deg2rad, exp, isclose, pi, round_, tan
4
-
5
- from ._core import UltimateBearingCapacity
6
-
7
- __all__ = ["TerzaghiUBC4StripFooting",
8
- "TerzaghiUBC4CircularFooting",
9
- "TerzaghiUBC4SquareFooting",
10
- "TerzaghiUBC4RectangularFooting"]
11
-
12
-
13
- @round_(ndigits=2)
14
- def n_c(friction_angle: float) -> float:
15
- if isclose(friction_angle, 0.0):
16
- return 5.7
17
- return cot(friction_angle) * (n_q(friction_angle) - 1.0)
18
-
19
-
20
- @round_(ndigits=2)
21
- def n_q(friction_angle: float) -> float:
22
- return (exp((3.0 * pi / 2.0 - deg2rad(friction_angle))
23
- * tan(friction_angle))
24
- / (2.0 * (cos(45.0 + friction_angle / 2.0)) ** 2.0))
25
-
26
-
27
- @round_(ndigits=2)
28
- def n_gamma(friction_angle: float) -> float:
29
- return (n_q(friction_angle) - 1.0) * tan(1.4 * friction_angle)
30
-
31
-
32
- class TerzaghiUltimateBearingCapacity(UltimateBearingCapacity, ABC):
33
-
34
- @property
35
- def n_c(self) -> float:
36
- r"""Bearing capacity factor :math:`N_c`.
37
-
38
- :Equation:
39
-
40
- .. math:: N_c = \cot(\phi) \cdot (N_q - 1)
41
- """
42
- return n_c(self.friction_angle)
43
-
44
- @property
45
- def n_q(self) -> float:
46
- r"""Bearing capacity factor :math:`N_q`.
47
-
48
- :Equation:
49
-
50
- .. math::
51
-
52
- N_q = \dfrac{e^{(\frac{3\pi}{2} - \phi)\tan\phi}}
53
- {2\cos^2(45 + \frac{\phi}{2})}
54
- """
55
- return n_q(self.friction_angle)
56
-
57
- @property
58
- def n_gamma(self) -> float:
59
- r"""Bearing capacity factor :math:`N_{\gamma}`.
60
-
61
- :Equation:
62
-
63
- .. math:: N_{\gamma} = (N_q - 1) \cdot \tan(1.4\phi)
64
- """
65
- return n_gamma(self.friction_angle)
66
-
67
-
68
- class TerzaghiUBC4StripFooting(TerzaghiUltimateBearingCapacity):
69
- r"""Ultimate bearing capacity for strip footing according to
70
- ``Terzaghi 1943``.
71
-
72
- :Equation:
73
-
74
- .. math:: q_u = cN_c + qN_q + 0.5 \gamma BN_{\gamma}
75
-
76
- .. list-table::
77
- :widths: auto
78
- :header-rows: 1
79
-
80
- * - Symbol
81
- - Description
82
- - Unit
83
- * - :math:`q_u`
84
- - Ultimate bearing capacity
85
- - :math:`kPa`
86
- * - :math:`c`
87
- - Cohesion of soil
88
- - :math:`kPa`
89
- * - :math:`q`
90
- - Overburden pressure of soil
91
- - :math:`kPa`
92
- * - :math:`\gamma`
93
- - Unit weight of soil
94
- - :math:`kN/m^3`
95
- * - :math:`B`
96
- - Width of foundation footing
97
- - :math:`m`
98
- * - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
99
- - Bearing capacity factors
100
- - —
101
- """
102
-
103
- @round_(ndigits=2)
104
- def bearing_capacity(self) -> float:
105
- """Calculates ultimate bearing capacity for strip footing."""
106
- return (self._cohesion_term(1.0)
107
- + self._surcharge_term()
108
- + self._embedment_term(0.5))
109
-
110
-
111
- class TerzaghiUBC4CircularFooting(TerzaghiUltimateBearingCapacity):
112
- r"""Ultimate bearing capacity for circular footing according to
113
- ``Terzaghi 1943``.
114
-
115
- :Equation:
116
-
117
- .. math:: q_u = 1.3cN_c + qN_q + 0.3 \gamma BN_{\gamma}
118
-
119
- .. list-table::
120
- :widths: auto
121
- :header-rows: 1
122
-
123
- * - Symbol
124
- - Description
125
- - Unit
126
- * - :math:`q_u`
127
- - Ultimate bearing capacity
128
- - :math:`kPa`
129
- * - :math:`c`
130
- - Cohesion of soil
131
- - :math:`kPa`
132
- * - :math:`q`
133
- - Overburden pressure of soil
134
- - :math:`kPa`
135
- * - :math:`\gamma`
136
- - Unit weight of soil
137
- - :math:`kN/m^3`
138
- * - :math:`B`
139
- - Width of foundation footing
140
- - :math:`m`
141
- * - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
142
- - Bearing capacity factors
143
- - —
144
- """
145
-
146
- @round_(ndigits=2)
147
- def bearing_capacity(self) -> float:
148
- """Calculates ultimate bearing capacity for circular footing."""
149
- return (self._cohesion_term(1.3)
150
- + self._surcharge_term()
151
- + self._embedment_term(0.3))
152
-
153
-
154
- class TerzaghiUBC4RectangularFooting(TerzaghiUltimateBearingCapacity):
155
- r"""Ultimate bearing capacity for rectangular footing according to
156
- ``Terzaghi 1943``.
157
-
158
- :Equation:
159
-
160
- .. math::
161
-
162
- q_u = \left(1 + 0.3 \dfrac{B}{L} \right) c N_c + qN_q
163
- + \left(1 - 0.2 \dfrac{B}{L} \right) 0.5 B \gamma N_{\gamma}
164
-
165
- .. list-table::
166
- :widths: auto
167
- :header-rows: 1
168
-
169
- * - Symbol
170
- - Description
171
- - Unit
172
- * - :math:`q_u`
173
- - Ultimate bearing capacity
174
- - :math:`kPa`
175
- * - :math:`c`
176
- - Cohesion of soil
177
- - :math:`kPa`
178
- * - :math:`q`
179
- - Overburden pressure of soil
180
- - :math:`kPa`
181
- * - :math:`\gamma`
182
- - Unit weight of soil
183
- - :math:`kN/m^3`
184
- * - :math:`B`
185
- - Width of foundation footing
186
- - :math:`m`
187
- * - :math:`L`
188
- - Length of foundation footing
189
- - :math:`m`
190
- * - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
191
- - Bearing capacity factors
192
- - —
193
- """
194
-
195
- @round_(ndigits=2)
196
- def bearing_capacity(self) -> float:
197
- """Calculates ultimate bearing capacity for rectangular footing."""
198
- width = self.foundation_size.width
199
- length = self.foundation_size.length
200
- coh_coef = 1.0 + 0.3 * (width / length)
201
- emb_coef = (1.0 - 0.2 * (width / length)) / 2.0
202
-
203
- return (self._cohesion_term(coh_coef)
204
- + self._surcharge_term()
205
- + self._embedment_term(emb_coef))
206
-
207
-
208
- class TerzaghiUBC4SquareFooting(TerzaghiUBC4RectangularFooting):
209
- r"""Ultimate bearing capacity for square footing according to
210
- ``Terzaghi 1943``.
211
-
212
- :Equation:
213
-
214
- .. math:: q_u = 1.3cN_c + qN_q + 0.4 \gamma BN_{\gamma}
215
-
216
- .. list-table::
217
- :widths: auto
218
- :header-rows: 1
219
-
220
- * - Symbol
221
- - Description
222
- - Unit
223
- * - :math:`q_u`
224
- - Ultimate bearing capacity
225
- - :math:`kPa`
226
- * - :math:`c`
227
- - Cohesion of soil
228
- - :math:`kPa`
229
- * - :math:`q`
230
- - Overburden pressure of soil
231
- - :math:`kPa`
232
- * - :math:`\gamma`
233
- - Unit weight of soil
234
- - :math:`kN/m^3`
235
- * - :math:`B`
236
- - Width of foundation footing
237
- - :math:`m`
238
- * - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
239
- - Bearing capacity factors
240
- - —
241
- """
242
-
243
- def bearing_capacity(self):
244
- """Calcalates ultimate bearing capacity for square footing.
245
- """
246
- return super().bearing_capacity()