geolysis 0.4.3__tar.gz → 0.4.4__tar.gz
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-0.4.3 → geolysis-0.4.4}/PKG-INFO +38 -11
- {geolysis-0.4.3 → geolysis-0.4.4}/README.md +37 -10
- geolysis-0.4.4/geolysis/__init__.py +5 -0
- geolysis-0.4.4/geolysis/bearing_capacity/__init__.py +0 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/__init__.py +0 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/cohl/__init__.py +206 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/cohl/bowles_abc.py +107 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/cohl/meyerhof_abc.py +107 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/cohl/terzaghi_abc.py +142 -0
- geolysis-0.4.4/geolysis/bearing_capacity/ubc/__init__.py +337 -0
- geolysis-0.4.4/geolysis/bearing_capacity/ubc/hansen_ubc.py +296 -0
- geolysis-0.4.4/geolysis/bearing_capacity/ubc/terzaghi_ubc.py +258 -0
- geolysis-0.4.4/geolysis/bearing_capacity/ubc/vesic_ubc.py +302 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/geolysis/foundation.py +1 -1
- {geolysis-0.4.3 → geolysis-0.4.4}/geolysis/soil_classifier.py +2 -3
- {geolysis-0.4.3 → geolysis-0.4.4}/geolysis/spt.py +1 -2
- geolysis-0.4.4/geolysis/utils/__init__.py +100 -0
- geolysis-0.4.4/geolysis/utils/validators.py +80 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/geolysis.egg-info/PKG-INFO +38 -11
- geolysis-0.4.4/geolysis.egg-info/SOURCES.txt +30 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/pyproject.toml +3 -2
- geolysis-0.4.3/geolysis/__init__.py +0 -1
- geolysis-0.4.3/geolysis.egg-info/SOURCES.txt +0 -18
- {geolysis-0.4.3 → geolysis-0.4.4}/LICENSE.txt +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/geolysis.egg-info/dependency_links.txt +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/geolysis.egg-info/requires.txt +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/geolysis.egg-info/top_level.txt +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/setup.cfg +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/setup.py +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/tests/test_foundation.py +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/tests/test_soil_classifier.py +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/tests/test_spt.py +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/tests/test_utils.py +0 -0
- {geolysis-0.4.3 → geolysis-0.4.4}/tests/test_validators.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: geolysis
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.4
|
4
4
|
Summary: geolysis is an opensource software for geotechnical engineering analysis and modeling.
|
5
5
|
Author-email: Patrick Boateng <boatengpato.pb@gmail.com>
|
6
6
|
License: MIT License
|
@@ -159,18 +159,45 @@ SoilClf(symbol='A-6(4)', description='Clayey soils')
|
|
159
159
|
|
160
160
|
```
|
161
161
|
|
162
|
+
Check out more examples
|
163
|
+
[here](https://docs.geolysis.io/en/latest/user_guide/getting_started.html#quick-start)
|
164
|
+
|
162
165
|
## Features
|
163
166
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
167
|
+
<table>
|
168
|
+
<tr>
|
169
|
+
<td><strong>Soil Classification</strong></td>
|
170
|
+
<td>AASHTO Classification System</td>
|
171
|
+
</tr>
|
172
|
+
<tr>
|
173
|
+
<td></td>
|
174
|
+
<td>Unified Soil Classification System</td>
|
175
|
+
</tr>
|
176
|
+
<tr>
|
177
|
+
<td><strong>Standard Penetration Test (SPT) Analysis</strong></td>
|
178
|
+
<td>SPT Energy Correction</td>
|
179
|
+
</tr>
|
180
|
+
<tr>
|
181
|
+
<td></td>
|
182
|
+
<td>SPT Overburden Pressure Correction</td>
|
183
|
+
</tr>
|
184
|
+
<tr>
|
185
|
+
<td></td>
|
186
|
+
<td>Dilatancy Correction</td>
|
187
|
+
</tr>
|
188
|
+
<tr>
|
189
|
+
<td></td>
|
190
|
+
<td>SPT N-Design Calculation</td>
|
191
|
+
</tr>
|
192
|
+
<tr>
|
193
|
+
<td><strong>Bearing Capacity Estimation</strong></td>
|
194
|
+
<td>Allowable Bearing Capacity Estimation</td>
|
195
|
+
</tr>
|
196
|
+
<tr>
|
197
|
+
<td></td>
|
198
|
+
<td>Ultimate Bearing Capacity Estimation</td>
|
199
|
+
</tr>
|
200
|
+
</table>
|
174
201
|
|
175
202
|
## Documentation
|
176
203
|
|
@@ -128,18 +128,45 @@ SoilClf(symbol='A-6(4)', description='Clayey soils')
|
|
128
128
|
|
129
129
|
```
|
130
130
|
|
131
|
+
Check out more examples
|
132
|
+
[here](https://docs.geolysis.io/en/latest/user_guide/getting_started.html#quick-start)
|
133
|
+
|
131
134
|
## Features
|
132
135
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
136
|
+
<table>
|
137
|
+
<tr>
|
138
|
+
<td><strong>Soil Classification</strong></td>
|
139
|
+
<td>AASHTO Classification System</td>
|
140
|
+
</tr>
|
141
|
+
<tr>
|
142
|
+
<td></td>
|
143
|
+
<td>Unified Soil Classification System</td>
|
144
|
+
</tr>
|
145
|
+
<tr>
|
146
|
+
<td><strong>Standard Penetration Test (SPT) Analysis</strong></td>
|
147
|
+
<td>SPT Energy Correction</td>
|
148
|
+
</tr>
|
149
|
+
<tr>
|
150
|
+
<td></td>
|
151
|
+
<td>SPT Overburden Pressure Correction</td>
|
152
|
+
</tr>
|
153
|
+
<tr>
|
154
|
+
<td></td>
|
155
|
+
<td>Dilatancy Correction</td>
|
156
|
+
</tr>
|
157
|
+
<tr>
|
158
|
+
<td></td>
|
159
|
+
<td>SPT N-Design Calculation</td>
|
160
|
+
</tr>
|
161
|
+
<tr>
|
162
|
+
<td><strong>Bearing Capacity Estimation</strong></td>
|
163
|
+
<td>Allowable Bearing Capacity Estimation</td>
|
164
|
+
</tr>
|
165
|
+
<tr>
|
166
|
+
<td></td>
|
167
|
+
<td>Ultimate Bearing Capacity Estimation</td>
|
168
|
+
</tr>
|
169
|
+
</table>
|
143
170
|
|
144
171
|
## Documentation
|
145
172
|
|
File without changes
|
File without changes
|
@@ -0,0 +1,206 @@
|
|
1
|
+
""" Allowable bearing capacity package for cohesionless soils.
|
2
|
+
|
3
|
+
Exceptions
|
4
|
+
==========
|
5
|
+
|
6
|
+
.. autosummary::
|
7
|
+
:toctree: _autosummary
|
8
|
+
|
9
|
+
SettlementError
|
10
|
+
|
11
|
+
Enums
|
12
|
+
=====
|
13
|
+
|
14
|
+
.. autosummary::
|
15
|
+
:toctree: _autosummary
|
16
|
+
:nosignatures:
|
17
|
+
|
18
|
+
ABC_TYPE
|
19
|
+
|
20
|
+
Functions
|
21
|
+
=========
|
22
|
+
|
23
|
+
.. autosummary::
|
24
|
+
:toctree: _autosummary
|
25
|
+
|
26
|
+
create_allowable_bearing_capacity
|
27
|
+
"""
|
28
|
+
import enum
|
29
|
+
from abc import ABC, abstractmethod
|
30
|
+
from typing import Optional
|
31
|
+
|
32
|
+
from geolysis.foundation import (FoundationSize,
|
33
|
+
Shape,
|
34
|
+
FoundationType,
|
35
|
+
create_foundation)
|
36
|
+
from geolysis.utils import inf, enum_repr, validators
|
37
|
+
|
38
|
+
|
39
|
+
class SettlementError(ValueError):
|
40
|
+
"""Raised when tolerable settlement is greater than the maximum
|
41
|
+
allowable settlement.
|
42
|
+
"""
|
43
|
+
|
44
|
+
|
45
|
+
class AllowableBearingCapacity(ABC):
|
46
|
+
#: Maximum tolerable foundation settlement (mm).
|
47
|
+
MAX_TOL_SETTLEMENT = 25.4
|
48
|
+
|
49
|
+
def __init__(self, corrected_spt_n_value: float,
|
50
|
+
tol_settlement: float,
|
51
|
+
foundation_size: FoundationSize) -> None:
|
52
|
+
self.corrected_spt_n_value = corrected_spt_n_value
|
53
|
+
self.tol_settlement = tol_settlement
|
54
|
+
self.foundation_size = foundation_size
|
55
|
+
|
56
|
+
@property
|
57
|
+
def corrected_spt_n_value(self) -> float:
|
58
|
+
return self._corrected_spt_n_value
|
59
|
+
|
60
|
+
@corrected_spt_n_value.setter
|
61
|
+
@validators.ge(0.0)
|
62
|
+
def corrected_spt_n_value(self, val: float) -> None:
|
63
|
+
self._corrected_spt_n_value = val
|
64
|
+
|
65
|
+
@property
|
66
|
+
def tol_settlement(self) -> float:
|
67
|
+
return self._tol_settlement
|
68
|
+
|
69
|
+
@tol_settlement.setter
|
70
|
+
@validators.le(25.4, exc_type=SettlementError)
|
71
|
+
def tol_settlement(self, tol_settlement: float) -> None:
|
72
|
+
self._tol_settlement = tol_settlement
|
73
|
+
|
74
|
+
def _sr(self) -> float:
|
75
|
+
"""Calculate the settlement ratio."""
|
76
|
+
return self.tol_settlement / self.MAX_TOL_SETTLEMENT
|
77
|
+
|
78
|
+
def _fd(self) -> float:
|
79
|
+
"""Calculate the depth factor."""
|
80
|
+
depth = self.foundation_size.depth
|
81
|
+
width = self.foundation_size.width
|
82
|
+
|
83
|
+
return min(1.0 + 0.33 * depth / width, 1.33)
|
84
|
+
|
85
|
+
@abstractmethod
|
86
|
+
def bearing_capacity(self): ...
|
87
|
+
|
88
|
+
|
89
|
+
from . import bowles_abc, terzaghi_abc, meyerhof_abc
|
90
|
+
|
91
|
+
from .bowles_abc import BowlesABC4MatFoundation, BowlesABC4PadFoundation
|
92
|
+
from .meyerhof_abc import MeyerhofABC4MatFoundation, MeyerhofABC4PadFoundation
|
93
|
+
from .terzaghi_abc import TerzaghiABC4MatFoundation, TerzaghiABC4PadFoundation
|
94
|
+
|
95
|
+
|
96
|
+
@enum_repr
|
97
|
+
class ABC_TYPE(enum.StrEnum):
|
98
|
+
"""Enumeration of available allowable bearing capacity types."""
|
99
|
+
BOWLES = enum.auto()
|
100
|
+
MEYERHOF = enum.auto()
|
101
|
+
TERZAGHI = enum.auto()
|
102
|
+
|
103
|
+
|
104
|
+
def create_allowable_bearing_capacity(corrected_spt_n_value: float,
|
105
|
+
tol_settlement: float,
|
106
|
+
depth: float,
|
107
|
+
width: float,
|
108
|
+
length: Optional[float] = None,
|
109
|
+
eccentricity: float = 0.0,
|
110
|
+
ground_water_level: float = inf,
|
111
|
+
shape: Shape | str = Shape.SQUARE,
|
112
|
+
foundation_type: FoundationType | str = \
|
113
|
+
FoundationType.PAD,
|
114
|
+
abc_type: Optional[
|
115
|
+
ABC_TYPE | str] = None,
|
116
|
+
) -> AllowableBearingCapacity:
|
117
|
+
""" A factory function that encapsulate the creation of allowable bearing
|
118
|
+
capacities.
|
119
|
+
|
120
|
+
:param corrected_spt_n_value: The corrected SPT N-value.
|
121
|
+
:type corrected_spt_n_value: float
|
122
|
+
|
123
|
+
:param tol_settlement: Tolerable settlement of foundation (mm).
|
124
|
+
:type tol_settlement: float
|
125
|
+
|
126
|
+
:param depth: Depth of foundation (m).
|
127
|
+
:type depth: float
|
128
|
+
|
129
|
+
:param width: Width of foundation footing (m).
|
130
|
+
:type width: float
|
131
|
+
|
132
|
+
:param length: Length of foundation footing (m).
|
133
|
+
:type length: float, optional
|
134
|
+
|
135
|
+
:param eccentricity: The deviation of the foundation load from the center
|
136
|
+
of gravity of the foundation footing, defaults to 0.0.
|
137
|
+
This means that the foundation load aligns with the
|
138
|
+
center of gravity of the foundation footing (m).
|
139
|
+
:type eccentricity: float, optional
|
140
|
+
|
141
|
+
:param ground_water_level: Depth of water below ground level (m).
|
142
|
+
:type ground_water_level: float
|
143
|
+
|
144
|
+
:param shape: Shape of foundation footing, defaults to "SQUARE".
|
145
|
+
:type shape: str, optional
|
146
|
+
|
147
|
+
:param foundation_type: Type of foundation, defaults to "pad".
|
148
|
+
:type foundation_type: FoundationType | str, optional
|
149
|
+
|
150
|
+
:param abc_type: Type of allowable bearing capacity calculation to apply.
|
151
|
+
Available values can be found in :class:`ABC_TYPE`,
|
152
|
+
defaults to None.
|
153
|
+
:type abc_type: ABC_TYPE | str
|
154
|
+
|
155
|
+
:raises ValueError: Raised if abc_type or foundation_type is not supported.
|
156
|
+
:raises ValueError: Raised when length is not provided for a rectangular
|
157
|
+
footing.
|
158
|
+
:raises ValueError: Raised if an invalid footing shape is provided.
|
159
|
+
"""
|
160
|
+
msg = (f"{abc_type = } is not supported, Supported "
|
161
|
+
f"types are: {list(ABC_TYPE)}")
|
162
|
+
|
163
|
+
if abc_type is None:
|
164
|
+
raise ValueError(msg)
|
165
|
+
|
166
|
+
try:
|
167
|
+
abc_type = ABC_TYPE(str(abc_type).casefold())
|
168
|
+
except ValueError as e:
|
169
|
+
raise ValueError(msg) from e
|
170
|
+
|
171
|
+
msg = (f"{foundation_type = } is not supported, Supported "
|
172
|
+
f"types are: {list(FoundationType)}")
|
173
|
+
|
174
|
+
try:
|
175
|
+
foundation_type = FoundationType(str(foundation_type).casefold())
|
176
|
+
except ValueError as e:
|
177
|
+
raise ValueError(msg) from e
|
178
|
+
|
179
|
+
# exception from create_foundation will automaatically propagate
|
180
|
+
# no need to catch and handle it.
|
181
|
+
fnd_size = create_foundation(depth=depth,
|
182
|
+
width=width,
|
183
|
+
length=length,
|
184
|
+
eccentricity=eccentricity,
|
185
|
+
ground_water_level=ground_water_level,
|
186
|
+
shape=shape)
|
187
|
+
abc_classes = {
|
188
|
+
ABC_TYPE.BOWLES: {
|
189
|
+
FoundationType.PAD: BowlesABC4PadFoundation,
|
190
|
+
FoundationType.MAT: BowlesABC4MatFoundation,
|
191
|
+
},
|
192
|
+
ABC_TYPE.MEYERHOF: {
|
193
|
+
FoundationType.PAD: MeyerhofABC4PadFoundation,
|
194
|
+
FoundationType.MAT: MeyerhofABC4MatFoundation,
|
195
|
+
},
|
196
|
+
ABC_TYPE.TERZAGHI: {
|
197
|
+
FoundationType.PAD: TerzaghiABC4PadFoundation,
|
198
|
+
FoundationType.MAT: TerzaghiABC4MatFoundation,
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
abc_class = abc_classes[abc_type][foundation_type]
|
203
|
+
abc = abc_class(corrected_spt_n_value=corrected_spt_n_value,
|
204
|
+
tol_settlement=tol_settlement,
|
205
|
+
foundation_size=fnd_size)
|
206
|
+
return abc
|
@@ -0,0 +1,107 @@
|
|
1
|
+
""" Bowles allowable bearing capacity.
|
2
|
+
|
3
|
+
Classes
|
4
|
+
=======
|
5
|
+
|
6
|
+
.. autosummary::
|
7
|
+
:toctree: _autosummary
|
8
|
+
|
9
|
+
BowlesABC4PadFoundation
|
10
|
+
BowlesABC4MatFoundation
|
11
|
+
"""
|
12
|
+
from geolysis.foundation import FoundationSize
|
13
|
+
from geolysis.utils import round_
|
14
|
+
|
15
|
+
from . import AllowableBearingCapacity
|
16
|
+
|
17
|
+
|
18
|
+
class BowlesABC4PadFoundation(AllowableBearingCapacity):
|
19
|
+
r"""Allowable bearing capacity for pad foundation on cohesionless soils
|
20
|
+
according to ``Bowles (1997)``.
|
21
|
+
|
22
|
+
:Equation:
|
23
|
+
|
24
|
+
.. math::
|
25
|
+
|
26
|
+
q_a(kPa) &= 19.16(N_1)_{55} f_d\left(\dfrac{S}{25.4}\right),
|
27
|
+
\ B \ \le \ 1.2m
|
28
|
+
|
29
|
+
q_a(kPa) &= 11.98(N_1)_{55}\left(\dfrac{3.28B + 1}{3.28B} \right)^2
|
30
|
+
f_d \left(\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
|
31
|
+
|
32
|
+
f_d &= 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
33
|
+
|
34
|
+
=================== ====================================== ===========
|
35
|
+
Symbol Description Unit
|
36
|
+
=================== ====================================== ===========
|
37
|
+
:math:`q_a` Allowable bearing capacity :math:`kPa`
|
38
|
+
:math:`(N_1)_{55}` Corrected SPT N-value —
|
39
|
+
:math:`f_d` Depth factor —
|
40
|
+
:math:`S` Tolerable settlement :math:`mm`
|
41
|
+
:math:`B` Width of foundation footing :math:`m`
|
42
|
+
:math:`D_f` Depth of foundation footing :math:`m`
|
43
|
+
=================== ====================================== ===========
|
44
|
+
"""
|
45
|
+
|
46
|
+
def __init__(self, corrected_spt_n_value: float,
|
47
|
+
tol_settlement: float,
|
48
|
+
foundation_size: FoundationSize) -> None:
|
49
|
+
"""
|
50
|
+
:param corrected_spt_n_value: Statistical average of corrected SPT
|
51
|
+
N-value (55% energy with overburden
|
52
|
+
pressure correction) within the foundation
|
53
|
+
influence zone i.e ``0.5B`` to ``2B``.
|
54
|
+
:type corrected_spt_n_value: float
|
55
|
+
|
56
|
+
:param tol_settlement: Tolerable settlement of foundation (mm).
|
57
|
+
:type tol_settlement: float
|
58
|
+
|
59
|
+
:param foundation_size: Size of the foundation.
|
60
|
+
:type foundation_size: FoundationSize
|
61
|
+
"""
|
62
|
+
super().__init__(corrected_spt_n_value=corrected_spt_n_value,
|
63
|
+
tol_settlement=tol_settlement,
|
64
|
+
foundation_size=foundation_size)
|
65
|
+
|
66
|
+
@round_
|
67
|
+
def bearing_capacity(self) -> float:
|
68
|
+
"""Calculate the allowable bearing capacity of the pad foundation."""
|
69
|
+
n_corr = self.corrected_spt_n_value
|
70
|
+
width = self.foundation_size.width
|
71
|
+
|
72
|
+
if width <= 1.2:
|
73
|
+
return 19.16 * n_corr * self._fd() * self._sr()
|
74
|
+
|
75
|
+
return (11.98 * n_corr * ((3.28 * width + 1) / (3.28 * width)) ** 2
|
76
|
+
* self._fd() * self._sr())
|
77
|
+
|
78
|
+
|
79
|
+
class BowlesABC4MatFoundation(BowlesABC4PadFoundation):
|
80
|
+
r"""Allowable bearing capacity for mat foundation on cohesionless soils
|
81
|
+
according to ``Bowles (1997)``.
|
82
|
+
|
83
|
+
:Equation:
|
84
|
+
|
85
|
+
.. math::
|
86
|
+
|
87
|
+
q_a(kPa) &= 11.98(N_1)_{55}f_d\left(\dfrac{S}{25.4}\right)
|
88
|
+
|
89
|
+
f_d &= 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
90
|
+
|
91
|
+
=================== ====================================== ===========
|
92
|
+
Symbol Description Unit
|
93
|
+
=================== ====================================== ===========
|
94
|
+
:math:`q_a` Allowable bearing capacity :math:`kPa`
|
95
|
+
:math:`(N_1)_{55}` Corrected SPT N-value —
|
96
|
+
:math:`f_d` Depth factor —
|
97
|
+
:math:`S` Tolerable settlement :math:`mm`
|
98
|
+
:math:`B` Width of foundation footing :math:`m`
|
99
|
+
:math:`D_f` Depth of foundation footing :math:`m`
|
100
|
+
=================== ====================================== ===========
|
101
|
+
"""
|
102
|
+
|
103
|
+
@round_
|
104
|
+
def bearing_capacity(self) -> float:
|
105
|
+
"""Calculate the allowable bearing capacity of the mat foundation."""
|
106
|
+
n_corr = self.corrected_spt_n_value
|
107
|
+
return 11.98 * n_corr * self._fd() * self._sr()
|
@@ -0,0 +1,107 @@
|
|
1
|
+
""" Meyerhof allowable bearing capacity.
|
2
|
+
|
3
|
+
Classes
|
4
|
+
=======
|
5
|
+
|
6
|
+
.. autosummary::
|
7
|
+
:toctree: _autosummary
|
8
|
+
|
9
|
+
MeyerhofABC4PadFoundation
|
10
|
+
MeyerhofABC4MatFoundation
|
11
|
+
"""
|
12
|
+
from geolysis.foundation import FoundationSize
|
13
|
+
from geolysis.utils import round_
|
14
|
+
|
15
|
+
from . import AllowableBearingCapacity
|
16
|
+
|
17
|
+
|
18
|
+
class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
|
19
|
+
r"""Allowable bearing capacity for pad foundation on cohesionless soils
|
20
|
+
according to ``Meyerhof (1956)``.
|
21
|
+
|
22
|
+
:Equation:
|
23
|
+
|
24
|
+
.. math::
|
25
|
+
|
26
|
+
q_a(kPa) &= 12N f_d\left(\dfrac{S}{25.4}\right), \ B \ \le 1.2m
|
27
|
+
|
28
|
+
q_a(kPa) &= 8N\left(\dfrac{3.28B + 1}{3.28B} \right)^2 f_d\left(
|
29
|
+
\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
|
30
|
+
|
31
|
+
f_d &= 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
32
|
+
|
33
|
+
=================== ====================================== ===========
|
34
|
+
Symbol Description Unit
|
35
|
+
=================== ====================================== ===========
|
36
|
+
:math:`q_a` Allowable bearing capacity :math:`kPa`
|
37
|
+
:math:`N` Corrected SPT N-value —
|
38
|
+
:math:`f_d` Depth factor —
|
39
|
+
:math:`S` Tolerable settlement :math:`mm`
|
40
|
+
:math:`B` Width of foundation footing :math:`m`
|
41
|
+
:math:`D_f` Depth of foundation footing :math:`m`
|
42
|
+
=================== ====================================== ===========
|
43
|
+
"""
|
44
|
+
|
45
|
+
def __init__(self, corrected_spt_n_value: float,
|
46
|
+
tol_settlement: float,
|
47
|
+
foundation_size: FoundationSize):
|
48
|
+
"""
|
49
|
+
:param corrected_spt_n_value: Average uncorrected SPT N-value (60%
|
50
|
+
energy with dilatancy (water) correction
|
51
|
+
if applicable) within the foundation
|
52
|
+
influence zone i.e :math:`D_f` to
|
53
|
+
:math:`D_f + 2B`.
|
54
|
+
:type corrected_spt_n_value: float
|
55
|
+
|
56
|
+
:param tol_settlement: Tolerable settlement of foundation (mm).
|
57
|
+
:type tol_settlement: float
|
58
|
+
|
59
|
+
:param foundation_size: Size of the foundation.
|
60
|
+
:type foundation_size: FoundationSize
|
61
|
+
"""
|
62
|
+
super().__init__(corrected_spt_n_value=corrected_spt_n_value,
|
63
|
+
tol_settlement=tol_settlement,
|
64
|
+
foundation_size=foundation_size)
|
65
|
+
|
66
|
+
@round_
|
67
|
+
def bearing_capacity(self):
|
68
|
+
"""Calculates the allowable bearing capacity of the pad foundation."""
|
69
|
+
n_corr = self.corrected_spt_n_value
|
70
|
+
width = self.foundation_size.width
|
71
|
+
|
72
|
+
if width <= 1.2:
|
73
|
+
return 12 * n_corr * self._fd() * self._sr()
|
74
|
+
|
75
|
+
return (8 * n_corr * ((3.28 * width + 1) / (3.28 * width)) ** 2
|
76
|
+
* self._fd() * self._sr())
|
77
|
+
|
78
|
+
|
79
|
+
class MeyerhofABC4MatFoundation(MeyerhofABC4PadFoundation):
|
80
|
+
r"""Allowable bearing capacity for mat foundation on cohesionless soils
|
81
|
+
according to ``Meyerhof (1956)``.
|
82
|
+
|
83
|
+
:Equation:
|
84
|
+
|
85
|
+
.. math::
|
86
|
+
|
87
|
+
q_a(kPa) &= 8 N f_d\left(\dfrac{S}{25.4}\right)
|
88
|
+
|
89
|
+
f_d &= 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
90
|
+
|
91
|
+
=================== ====================================== ===========
|
92
|
+
Symbol Description Unit
|
93
|
+
=================== ====================================== ===========
|
94
|
+
:math:`q_a` Allowable bearing capacity :math:`kPa`
|
95
|
+
:math:`N` Corrected SPT N-value —
|
96
|
+
:math:`f_d` Depth factor —
|
97
|
+
:math:`S` Tolerable settlement :math:`mm`
|
98
|
+
:math:`B` Width of foundation footing :math:`m`
|
99
|
+
:math:`D_f` Depth of foundation footing :math:`m`
|
100
|
+
=================== ====================================== ===========
|
101
|
+
"""
|
102
|
+
|
103
|
+
@round_
|
104
|
+
def bearing_capacity(self):
|
105
|
+
"""Calculate the allowable bearing capacity of the mat foundation."""
|
106
|
+
n_corr = self.corrected_spt_n_value
|
107
|
+
return 8 * n_corr * self._fd() * self._sr()
|