geolysis 0.2.0__py3-none-any.whl → 0.3.0__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.
- geolysis/__init__.py +2 -10
- geolysis/core/__init__.py +9 -0
- geolysis/core/abc_4_cohl_soils.py +495 -0
- geolysis/core/constants.py +47 -0
- geolysis/core/estimators.py +549 -0
- geolysis/core/foundation.py +543 -0
- geolysis/core/soil_classifier.py +859 -0
- geolysis/core/spt.py +633 -0
- geolysis/core/utils.py +113 -0
- {geolysis-0.2.0.dist-info → geolysis-0.3.0.dist-info}/LICENSE.txt +1 -1
- geolysis-0.3.0.dist-info/METADATA +223 -0
- geolysis-0.3.0.dist-info/RECORD +14 -0
- {geolysis-0.2.0.dist-info → geolysis-0.3.0.dist-info}/WHEEL +1 -1
- geolysis/bearing_capacity/__init__.py +0 -1
- geolysis/bearing_capacity/abc.py +0 -335
- geolysis/constants.py +0 -19
- geolysis/estimators.py +0 -255
- geolysis/foundation.py +0 -176
- geolysis/soil_classifier.py +0 -658
- geolysis/spt.py +0 -424
- geolysis/utils.py +0 -106
- geolysis-0.2.0.dist-info/METADATA +0 -193
- geolysis-0.2.0.dist-info/RECORD +0 -14
- {geolysis-0.2.0.dist-info → geolysis-0.3.0.dist-info}/top_level.txt +0 -0
geolysis/__init__.py
CHANGED
@@ -0,0 +1,495 @@
|
|
1
|
+
from abc import ABC, abstractmethod
|
2
|
+
|
3
|
+
from geolysis.core.constants import UNIT
|
4
|
+
from geolysis.core.foundation import FoundationSize
|
5
|
+
from geolysis.core.utils import round_
|
6
|
+
|
7
|
+
__all__ = [
|
8
|
+
"BowlesABC4PadFoundation",
|
9
|
+
"BowlesABC4MatFoundation",
|
10
|
+
"MeyerhofABC4PadFoundation",
|
11
|
+
"MeyerhofABC4MatFoundation",
|
12
|
+
"TerzaghiABC4PadFoundation",
|
13
|
+
"TerzaghiABC4MatFoundation",
|
14
|
+
]
|
15
|
+
|
16
|
+
kPa = UNIT.kPa
|
17
|
+
|
18
|
+
|
19
|
+
class SettlementError(ValueError):
|
20
|
+
pass
|
21
|
+
|
22
|
+
|
23
|
+
def _chk_settlement(tol_settlement: float, max_tol_settlement: float):
|
24
|
+
if tol_settlement > max_tol_settlement:
|
25
|
+
err_msg = "tol_settlement should not be greater than 25.4."
|
26
|
+
raise SettlementError(err_msg)
|
27
|
+
|
28
|
+
|
29
|
+
class _AbstractABC(ABC):
|
30
|
+
|
31
|
+
MAX_TOL_SETTLEMENT = 25.4
|
32
|
+
|
33
|
+
_unit = kPa
|
34
|
+
|
35
|
+
def __init__(
|
36
|
+
self,
|
37
|
+
corrected_spt_number: float,
|
38
|
+
tol_settlement: float,
|
39
|
+
foundation_size: FoundationSize,
|
40
|
+
) -> None:
|
41
|
+
|
42
|
+
self.corrected_spt_number = corrected_spt_number
|
43
|
+
self.tol_settlement = tol_settlement
|
44
|
+
self.foundation_size = foundation_size
|
45
|
+
|
46
|
+
_chk_settlement(self.tol_settlement, self.MAX_TOL_SETTLEMENT)
|
47
|
+
|
48
|
+
@property
|
49
|
+
def unit(self) -> str:
|
50
|
+
return self._unit
|
51
|
+
|
52
|
+
@property
|
53
|
+
def f_depth(self) -> float:
|
54
|
+
"""Depth of foundation."""
|
55
|
+
return self.foundation_size.depth
|
56
|
+
|
57
|
+
@f_depth.setter
|
58
|
+
def f_depth(self, __val: float):
|
59
|
+
self.foundation_size.depth = __val
|
60
|
+
|
61
|
+
@property
|
62
|
+
def f_width(self) -> float:
|
63
|
+
"""Width of foundation footing."""
|
64
|
+
return self.foundation_size.width
|
65
|
+
|
66
|
+
@f_width.setter
|
67
|
+
def f_width(self, __val):
|
68
|
+
self.foundation_size.width = __val
|
69
|
+
|
70
|
+
@property
|
71
|
+
def FD(self) -> float:
|
72
|
+
"""Depth factor."""
|
73
|
+
return min(1 + 0.33 * self.f_depth / self.f_width, 1.33)
|
74
|
+
|
75
|
+
@property
|
76
|
+
def SR(self) -> float:
|
77
|
+
"""Settlement ratio."""
|
78
|
+
return self.tol_settlement / self.MAX_TOL_SETTLEMENT
|
79
|
+
|
80
|
+
@abstractmethod
|
81
|
+
def bearing_capacity(self) -> float:
|
82
|
+
raise NotImplementedError
|
83
|
+
|
84
|
+
|
85
|
+
class BowlesABC4PadFoundation(_AbstractABC):
|
86
|
+
r"""Allowable bearing capacity for mat foundation on cohesionless
|
87
|
+
soils according to ``Bowles (1997)``.
|
88
|
+
|
89
|
+
Parameters
|
90
|
+
----------
|
91
|
+
corrected_spt_number : float
|
92
|
+
Statistical average of corrected SPT N-value (55% energy with
|
93
|
+
overburden pressure correction) within the foundation influence
|
94
|
+
zone i.e ``0.5B`` to ``2B``.
|
95
|
+
tol_settlement : float, mm
|
96
|
+
Tolerable settlement.
|
97
|
+
foundation_size : FoundationSize
|
98
|
+
Size of foundation.
|
99
|
+
|
100
|
+
Attributes
|
101
|
+
----------
|
102
|
+
f_depth : float
|
103
|
+
f_width : float
|
104
|
+
|
105
|
+
Notes
|
106
|
+
-----
|
107
|
+
Allowable bearing capacity for ``isolated/pad/spread`` foundations:
|
108
|
+
|
109
|
+
.. math::
|
110
|
+
|
111
|
+
q_a(kPa) &= 19.16(N_1)_{55} f_d\left(\dfrac{S}{25.4}\right),
|
112
|
+
\ B \ \le \ 1.2m
|
113
|
+
|
114
|
+
q_a(kPa) &= 11.98(N_1)_{55}\left(\dfrac{3.28B + 1}{3.28B} \right)^2
|
115
|
+
f_d \left(\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
|
116
|
+
|
117
|
+
Depth factor:
|
118
|
+
|
119
|
+
.. math:: f_d = 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
120
|
+
|
121
|
+
Examples
|
122
|
+
--------
|
123
|
+
>>> from geolysis.core.abc_4_cohl_soils import BowlesABC4PadFoundation
|
124
|
+
>>> from geolysis.core.foundation import create_foundation, Shape
|
125
|
+
|
126
|
+
>>> foundation_size = create_foundation(depth=1.5, thickness=0.3,
|
127
|
+
... width=1.2, footing_shape=Shape.SQUARE)
|
128
|
+
>>> bowles_abc = BowlesABC4PadFoundation(corrected_spt_number=17.0,
|
129
|
+
... tol_settlement=20.0,
|
130
|
+
... foundation_size=foundation_size)
|
131
|
+
>>> bowles_abc.bearing_capacity()
|
132
|
+
341.1083
|
133
|
+
"""
|
134
|
+
|
135
|
+
@round_
|
136
|
+
def bearing_capacity(self) -> float:
|
137
|
+
"""Return allowable bearing capacity for isolated foundation on
|
138
|
+
cohesionless soils. |rarr| :math:`kN/m^2`
|
139
|
+
"""
|
140
|
+
if self.f_width <= 1.2:
|
141
|
+
return 19.16 * self.corrected_spt_number * self.FD * self.SR
|
142
|
+
|
143
|
+
return (
|
144
|
+
11.98
|
145
|
+
* self.corrected_spt_number
|
146
|
+
* ((3.28 * self.f_width + 1) / (3.28 * self.f_width)) ** 2
|
147
|
+
* self.FD
|
148
|
+
* self.SR
|
149
|
+
)
|
150
|
+
|
151
|
+
|
152
|
+
class BowlesABC4MatFoundation(_AbstractABC):
|
153
|
+
r"""Allowable bearing capacity for mat foundation on cohesionless
|
154
|
+
soils according to ``Bowles (1997)``.
|
155
|
+
|
156
|
+
Parameters
|
157
|
+
----------
|
158
|
+
corrected_spt_number : float
|
159
|
+
Statistical average of corrected SPT N-value (55% energy with
|
160
|
+
overburden pressure correction) within the foundation influence
|
161
|
+
zone i.e ``0.5B`` to ``2B``.
|
162
|
+
tol_settlement : float, mm
|
163
|
+
Tolerable settlement.
|
164
|
+
foundation_size : FoundationSize
|
165
|
+
Size of foundation.
|
166
|
+
|
167
|
+
Attributes
|
168
|
+
----------
|
169
|
+
f_depth : float
|
170
|
+
f_width : float
|
171
|
+
|
172
|
+
Notes
|
173
|
+
-----
|
174
|
+
Allowable bearing capacity for ``raft/mat`` foundations:
|
175
|
+
|
176
|
+
.. math:: q_a(kPa) = 11.98(N_1)_{55}f_d\left(\dfrac{S}{25.4}\right)
|
177
|
+
|
178
|
+
Depth factor:
|
179
|
+
|
180
|
+
.. math:: f_d = 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
181
|
+
|
182
|
+
Examples
|
183
|
+
--------
|
184
|
+
>>> from geolysis.core.abc_4_cohl_soils import BowlesABC4MatFoundation
|
185
|
+
>>> from geolysis.core.foundation import create_foundation, Shape
|
186
|
+
|
187
|
+
>>> foundation_size = create_foundation(depth=1.5, thickness=0.3,
|
188
|
+
... width=1.2, footing_shape=Shape.SQUARE)
|
189
|
+
>>> bowles_abc = BowlesABC4MatFoundation(corrected_spt_number=17.0,
|
190
|
+
... tol_settlement=20.0,
|
191
|
+
... foundation_size=foundation_size)
|
192
|
+
>>> bowles_abc.bearing_capacity()
|
193
|
+
213.2817
|
194
|
+
"""
|
195
|
+
|
196
|
+
@round_
|
197
|
+
def bearing_capacity(self) -> float:
|
198
|
+
"""Return allowable bearing capacity for raft foundation on
|
199
|
+
cohesionless soils. |rarr| :math:`kN/m^2`
|
200
|
+
"""
|
201
|
+
return 11.98 * self.corrected_spt_number * self.FD * self.SR
|
202
|
+
|
203
|
+
|
204
|
+
class MeyerhofABC4PadFoundation(_AbstractABC):
|
205
|
+
r"""Allowable bearing capacity for pad foundation on cohesionless
|
206
|
+
soils according to ``Meyerhof (1956)``.
|
207
|
+
|
208
|
+
Parameters
|
209
|
+
----------
|
210
|
+
corrected_spt_number : float
|
211
|
+
Average uncorrected SPT N-value (60% energy with dilatancy
|
212
|
+
(water) correction if applicable) within the foundation influence
|
213
|
+
zone i.e :math:`D_f` to :math:`D_f + 2B`
|
214
|
+
tol_settlement : float, mm
|
215
|
+
Tolerable settlement
|
216
|
+
foundation_size : FoundationSize
|
217
|
+
Size of foundation.
|
218
|
+
|
219
|
+
Attributes
|
220
|
+
----------
|
221
|
+
f_depth : float
|
222
|
+
f_width : float
|
223
|
+
|
224
|
+
Notes
|
225
|
+
-----
|
226
|
+
Allowable bearing capacity for ``isolated/pad/spread`` foundations:
|
227
|
+
|
228
|
+
.. math::
|
229
|
+
|
230
|
+
q_a(kPa) &= 12N f_d\left(\dfrac{S}{25.4}\right), \ B \ \le 1.2m
|
231
|
+
|
232
|
+
q_a(kPa) &= 8N\left(\dfrac{3.28B + 1}{3.28B} \right)^2 f_d\left(
|
233
|
+
\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
|
234
|
+
|
235
|
+
Depth factor:
|
236
|
+
|
237
|
+
.. math:: f_d = 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
238
|
+
|
239
|
+
Examples
|
240
|
+
--------
|
241
|
+
>>> from geolysis.core.abc_4_cohl_soils import MeyerhofABC4PadFoundation
|
242
|
+
>>> from geolysis.core.foundation import create_foundation, Shape
|
243
|
+
|
244
|
+
>>> foundation_size = create_foundation(depth=1.5, thickness=0.3,
|
245
|
+
... width=1.2, footing_shape=Shape.SQUARE)
|
246
|
+
>>> meyerhof_abc = MeyerhofABC4PadFoundation(corrected_spt_number=17.0,
|
247
|
+
... tol_settlement=20.0,
|
248
|
+
... foundation_size=foundation_size)
|
249
|
+
>>> meyerhof_abc.bearing_capacity()
|
250
|
+
213.6378
|
251
|
+
"""
|
252
|
+
|
253
|
+
@round_
|
254
|
+
def bearing_capacity(self) -> float:
|
255
|
+
"""Return allowable bearing capacity for isolated foundation on
|
256
|
+
cohesionless soils. |rarr| :math:`kN/m^2`
|
257
|
+
"""
|
258
|
+
|
259
|
+
if self.f_width <= 1.2:
|
260
|
+
return 12 * self.corrected_spt_number * self.FD * self.SR
|
261
|
+
|
262
|
+
return (
|
263
|
+
8
|
264
|
+
* self.corrected_spt_number
|
265
|
+
* ((3.28 * self.f_width + 1) / (3.28 * self.f_width)) ** 2
|
266
|
+
* self.FD
|
267
|
+
* self.SR
|
268
|
+
)
|
269
|
+
|
270
|
+
|
271
|
+
class MeyerhofABC4MatFoundation(_AbstractABC):
|
272
|
+
r"""Allowable bearing capacity for mat foundation on cohesionless
|
273
|
+
soils according to ``Meyerhof (1956)``.
|
274
|
+
|
275
|
+
Parameters
|
276
|
+
----------
|
277
|
+
corrected_spt_number : float
|
278
|
+
Average uncorrected SPT N-value (60% energy with dilatancy
|
279
|
+
(water) correction if applicable) within the foundation influence
|
280
|
+
zone i.e :math:`D_f` to :math:`D_f + 2B`
|
281
|
+
tol_settlement : float, mm
|
282
|
+
Tolerable settlement
|
283
|
+
foundation_size : FoundationSize
|
284
|
+
Size of foundation.
|
285
|
+
|
286
|
+
Attributes
|
287
|
+
----------
|
288
|
+
f_depth : float
|
289
|
+
f_width : float
|
290
|
+
|
291
|
+
Notes
|
292
|
+
-----
|
293
|
+
Allowable bearing capacity for ``raft/mat`` foundations:
|
294
|
+
|
295
|
+
.. math:: q_a(kPa) = 8 N f_d\left(\dfrac{S}{25.4}\right)
|
296
|
+
|
297
|
+
Depth factor:
|
298
|
+
|
299
|
+
.. math:: f_d = 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
300
|
+
|
301
|
+
Examples
|
302
|
+
--------
|
303
|
+
>>> from geolysis.core.abc_4_cohl_soils import MeyerhofABC4MatFoundation
|
304
|
+
>>> from geolysis.core.foundation import create_foundation, Shape
|
305
|
+
|
306
|
+
>>> foundation_size = create_foundation(depth=1.5, thickness=0.3,
|
307
|
+
... width=1.2, footing_shape=Shape.SQUARE)
|
308
|
+
>>> meyerhof_abc = MeyerhofABC4MatFoundation(corrected_spt_number=17.0,
|
309
|
+
... tol_settlement=20.0,
|
310
|
+
... foundation_size=foundation_size)
|
311
|
+
>>> meyerhof_abc.bearing_capacity()
|
312
|
+
142.4252
|
313
|
+
"""
|
314
|
+
|
315
|
+
@round_
|
316
|
+
def bearing_capacity(self) -> float:
|
317
|
+
"""Return allowable bearing capacity for raft foundation on
|
318
|
+
cohesionless soils. |rarr| :math:`kN/m^2`
|
319
|
+
"""
|
320
|
+
return 8 * self.corrected_spt_number * self.FD * self.SR
|
321
|
+
|
322
|
+
|
323
|
+
class TerzaghiABC4PadFoundation(_AbstractABC):
|
324
|
+
r"""Allowable bearing capacity for pad foundation on cohesionless
|
325
|
+
soils according to ``Terzaghi & Peck (1948)``.
|
326
|
+
|
327
|
+
Parameters
|
328
|
+
----------
|
329
|
+
corrected_spt_number : float
|
330
|
+
Lowest (or average) uncorrected SPT N-value (60% energy) within
|
331
|
+
the foundation influence zone i.e :math:`D_f` to :math:`D_f + 2B`
|
332
|
+
tol_settlement : float, mm
|
333
|
+
Tolerable settlement.
|
334
|
+
water_depth : float, m
|
335
|
+
Depth of water below ground surface.
|
336
|
+
foundation_size : float
|
337
|
+
Size of foundation.
|
338
|
+
|
339
|
+
Attributes
|
340
|
+
----------
|
341
|
+
f_depth : float
|
342
|
+
f_width : float
|
343
|
+
|
344
|
+
Notes
|
345
|
+
-----
|
346
|
+
Allowable bearing capacity for ``isolated/pad/spread`` foundations:
|
347
|
+
|
348
|
+
.. math::
|
349
|
+
|
350
|
+
q_a(kPa) &= 12N \dfrac{1}{c_w f_d}\left(\dfrac{S}{25.4}\right),
|
351
|
+
\ B \ \le 1.2m
|
352
|
+
|
353
|
+
q_a(kPa) &= 8N\left(\dfrac{3.28B + 1}{3.28B} \right)^2\dfrac{1}
|
354
|
+
{c_w f_d}\left(\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
|
355
|
+
|
356
|
+
Depth factor:
|
357
|
+
|
358
|
+
.. math:: f_d = 1 + 0.25 \cdot \frac{D_f}{B} \le 1.25
|
359
|
+
|
360
|
+
Water correction for surface footing:
|
361
|
+
|
362
|
+
.. math:: c_w = 2 - \frac{D_w}{2B} \le 2
|
363
|
+
|
364
|
+
Water correction for fully submerged footing :math:`D_w \le D_f`
|
365
|
+
|
366
|
+
.. math:: c_w = 2 - \frac{D_f}{2B} \le 2
|
367
|
+
|
368
|
+
Examples
|
369
|
+
--------
|
370
|
+
>>> from geolysis.core.abc_4_cohl_soils import TerzaghiABC4PadFoundation
|
371
|
+
>>> from geolysis.core.foundation import create_foundation, Shape
|
372
|
+
|
373
|
+
>>> foundation_size = create_foundation(depth=1.5, thickness=0.3,
|
374
|
+
... width=1.2, footing_shape=Shape.SQUARE)
|
375
|
+
>>> terzaghi_abc = TerzaghiABC4PadFoundation(corrected_spt_number=17,
|
376
|
+
... tol_settlement=20.0, water_depth=1.2,
|
377
|
+
... foundation_size=foundation_size)
|
378
|
+
>>> terzaghi_abc.bearing_capacity()
|
379
|
+
93.4574
|
380
|
+
"""
|
381
|
+
|
382
|
+
def __init__(
|
383
|
+
self,
|
384
|
+
corrected_spt_number: float,
|
385
|
+
tol_settlement: float,
|
386
|
+
water_depth: float,
|
387
|
+
foundation_size: FoundationSize,
|
388
|
+
):
|
389
|
+
super().__init__(corrected_spt_number, tol_settlement, foundation_size)
|
390
|
+
|
391
|
+
self.water_depth = water_depth
|
392
|
+
|
393
|
+
@property
|
394
|
+
@round_
|
395
|
+
def FD(self):
|
396
|
+
"""Depth factor.
|
397
|
+
|
398
|
+
:meta private:
|
399
|
+
"""
|
400
|
+
|
401
|
+
return min(1 + 0.25 * self.f_depth / self.f_width, 1.25)
|
402
|
+
|
403
|
+
@property
|
404
|
+
@round_
|
405
|
+
def CW(self):
|
406
|
+
"""Water correction factor.
|
407
|
+
|
408
|
+
:meta private:
|
409
|
+
"""
|
410
|
+
if self.water_depth <= self.f_depth:
|
411
|
+
corr = 2 - self.f_depth / (2 * self.f_width)
|
412
|
+
else:
|
413
|
+
corr = 2 - self.water_depth / (2 * self.f_width)
|
414
|
+
return min(corr, 2)
|
415
|
+
|
416
|
+
@round_
|
417
|
+
def bearing_capacity(self) -> float:
|
418
|
+
"""Return allowable bearing capacity for isolated foundation on
|
419
|
+
cohesionless soils. |rarr| :math:`kN/m^2`
|
420
|
+
"""
|
421
|
+
correction = 1 / (self.CW * self.FD)
|
422
|
+
|
423
|
+
if self.f_width <= 1.2:
|
424
|
+
return 12 * self.corrected_spt_number * correction * self.SR
|
425
|
+
|
426
|
+
return (
|
427
|
+
8
|
428
|
+
* self.corrected_spt_number
|
429
|
+
* ((3.28 * self.f_width + 1) / (3.28 * self.f_width)) ** 2
|
430
|
+
* correction
|
431
|
+
* self.SR
|
432
|
+
)
|
433
|
+
|
434
|
+
|
435
|
+
class TerzaghiABC4MatFoundation(TerzaghiABC4PadFoundation):
|
436
|
+
r"""Allowable bearing capacity for mat foundation on cohesionless soils
|
437
|
+
according to ``Terzaghi & Peck (1948)``.
|
438
|
+
|
439
|
+
Parameters
|
440
|
+
----------
|
441
|
+
corrected_spt_number : float
|
442
|
+
Lowest (or average) uncorrected SPT N-value (60% energy) within
|
443
|
+
the foundation influence zone i.e :math:`D_f` to :math:`D_f + 2B`
|
444
|
+
tol_settlement : float, mm
|
445
|
+
Tolerable settlement.
|
446
|
+
water_depth : float, m
|
447
|
+
Depth of water below ground surface.
|
448
|
+
foundation_size : float
|
449
|
+
Size of foundation.
|
450
|
+
|
451
|
+
Attributes
|
452
|
+
----------
|
453
|
+
f_depth : float
|
454
|
+
f_width : float
|
455
|
+
|
456
|
+
Notes
|
457
|
+
-----
|
458
|
+
Allowable bearing capacity for ``isolated/pad/spread`` foundations:
|
459
|
+
|
460
|
+
.. math:: q_a(kPa) = 8N\dfrac{1}{c_w f_d}\left(\dfrac{S}{25.4}\right)
|
461
|
+
|
462
|
+
Depth factor:
|
463
|
+
|
464
|
+
.. math:: f_d = 1 + 0.25 \cdot \frac{D_f}{B} \le 1.25
|
465
|
+
|
466
|
+
Water correction for surface footing:
|
467
|
+
|
468
|
+
.. math:: c_w = 2 - \frac{D_w}{2B} \le 2
|
469
|
+
|
470
|
+
Water correction for fully submerged footing :math:`D_w \le D_f`
|
471
|
+
|
472
|
+
.. math:: c_w = 2 - \frac{D_f}{2B} \le 2
|
473
|
+
|
474
|
+
Examples
|
475
|
+
--------
|
476
|
+
>>> from geolysis.core.abc_4_cohl_soils import TerzaghiABC4MatFoundation
|
477
|
+
>>> from geolysis.core.foundation import create_foundation, Shape
|
478
|
+
|
479
|
+
>>> foundation_size = create_foundation(depth=1.5, thickness=0.3,
|
480
|
+
... width=1.2, footing_shape=Shape.SQUARE)
|
481
|
+
>>> terzaghi_abc = TerzaghiABC4MatFoundation(corrected_spt_number=17,
|
482
|
+
... tol_settlement=20.0, water_depth=1.2,
|
483
|
+
... foundation_size=foundation_size)
|
484
|
+
>>> terzaghi_abc.bearing_capacity()
|
485
|
+
62.3049
|
486
|
+
"""
|
487
|
+
|
488
|
+
@round_
|
489
|
+
def bearing_capacity(self) -> float:
|
490
|
+
"""Return allowable bearing capacity for raft foundation on
|
491
|
+
cohesionless soils. |rarr| :math:`kN/m^2`
|
492
|
+
"""
|
493
|
+
return (
|
494
|
+
8 * self.corrected_spt_number * (1 / (self.CW * self.FD)) * self.SR
|
495
|
+
)
|
@@ -0,0 +1,47 @@
|
|
1
|
+
from dataclasses import dataclass
|
2
|
+
|
3
|
+
__all__ = ["DECIMAL_PLACES", "ERROR_TOL", "UNIT"]
|
4
|
+
|
5
|
+
#: The number of decimal places to round mathematical
|
6
|
+
#: values returned from functions (or methods) to.
|
7
|
+
DECIMAL_PLACES: int = 4
|
8
|
+
|
9
|
+
#: Allowable error tolerance for mathematical values
|
10
|
+
#: returned from functions (or methods).
|
11
|
+
ERROR_TOL: float = 0.01
|
12
|
+
|
13
|
+
|
14
|
+
@dataclass(init=False)
|
15
|
+
class UNIT:
|
16
|
+
"""Physical units manager for values returned by various functions
|
17
|
+
(or methods) that returns a float.
|
18
|
+
|
19
|
+
Notes
|
20
|
+
-----
|
21
|
+
These units are compatible with the `pint <https://pint.readthedocs.io/en/stable/index.html>`_
|
22
|
+
library unit system.
|
23
|
+
"""
|
24
|
+
|
25
|
+
#: meter
|
26
|
+
m = "meter"
|
27
|
+
|
28
|
+
#: millimeter
|
29
|
+
mm = "millimeter"
|
30
|
+
|
31
|
+
#: kilogram
|
32
|
+
kg = "kilogram"
|
33
|
+
|
34
|
+
#: degree
|
35
|
+
deg = "degrees"
|
36
|
+
|
37
|
+
#: square meter
|
38
|
+
m2 = "m**2"
|
39
|
+
|
40
|
+
#: cubic meter
|
41
|
+
m3 = "m**3"
|
42
|
+
|
43
|
+
#: kilo Pascal
|
44
|
+
kPa = "kPa"
|
45
|
+
|
46
|
+
#: kilo Newton per cubic meter
|
47
|
+
kN_m3 = "kN/m**3"
|