geolysis 0.10.3__py3-none-any.whl → 0.11.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 +1 -1
- geolysis/bearing_capacity/abc/__init__.py +2 -2
- geolysis/bearing_capacity/abc/_cohl/_core.py +8 -1
- geolysis/bearing_capacity/abc/_cohl/bowles_abc.py +4 -35
- geolysis/bearing_capacity/abc/_cohl/meyerhof_abc.py +6 -36
- geolysis/bearing_capacity/abc/_cohl/terzaghi_abc.py +7 -56
- geolysis/bearing_capacity/ubc/__init__.py +14 -15
- geolysis/bearing_capacity/ubc/_core.py +6 -16
- geolysis/bearing_capacity/ubc/_hansen_ubc.py +28 -111
- geolysis/bearing_capacity/ubc/_terzaghi_ubc.py +14 -35
- geolysis/bearing_capacity/ubc/_vesic_ubc.py +33 -98
- geolysis/soil_classifier.py +1 -2
- geolysis/spt.py +10 -74
- {geolysis-0.10.3.dist-info → geolysis-0.11.0.dist-info}/METADATA +1 -1
- geolysis-0.11.0.dist-info/RECORD +22 -0
- geolysis-0.10.3.dist-info/RECORD +0 -22
- {geolysis-0.10.3.dist-info → geolysis-0.11.0.dist-info}/WHEEL +0 -0
- {geolysis-0.10.3.dist-info → geolysis-0.11.0.dist-info}/licenses/LICENSE.txt +0 -0
- {geolysis-0.10.3.dist-info → geolysis-0.11.0.dist-info}/top_level.txt +0 -0
geolysis/__init__.py
CHANGED
@@ -10,12 +10,12 @@ from ._cohl import (
|
|
10
10
|
)
|
11
11
|
|
12
12
|
__all__ = [
|
13
|
-
"create_abc_4_cohesionless_soils",
|
14
|
-
"ABCType",
|
15
13
|
"BowlesABC4PadFoundation",
|
16
14
|
"BowlesABC4MatFoundation",
|
17
15
|
"MeyerhofABC4PadFoundation",
|
18
16
|
"MeyerhofABC4MatFoundation",
|
19
17
|
"TerzaghiABC4PadFoundation",
|
20
18
|
"TerzaghiABC4MatFoundation",
|
19
|
+
"ABCType",
|
20
|
+
"create_abc_4_cohesionless_soils",
|
21
21
|
]
|
@@ -42,7 +42,8 @@ class AllowableBearingCapacity(ABC):
|
|
42
42
|
@tol_settlement.setter
|
43
43
|
@validate_func_args
|
44
44
|
def tol_settlement(
|
45
|
-
self,
|
45
|
+
self,
|
46
|
+
tol_settlement: Annotated[float, MustBeLessThanOrEqual(25.4)],
|
46
47
|
):
|
47
48
|
self._tol_settlement = tol_settlement
|
48
49
|
|
@@ -57,6 +58,12 @@ class AllowableBearingCapacity(ABC):
|
|
57
58
|
return min(1.0 + 0.33 * depth / width, 1.33)
|
58
59
|
|
59
60
|
def bearing_capacity_results(self) -> dict:
|
61
|
+
"""Return a dictionary of bearing capacity results with
|
62
|
+
intermediate calculations.
|
63
|
+
|
64
|
+
!!! info "Added in v0.11.0"
|
65
|
+
|
66
|
+
"""
|
60
67
|
return {
|
61
68
|
"bearing_capacity": self.bearing_capacity(),
|
62
69
|
"depth_factor": self._fd(),
|
@@ -8,27 +8,8 @@ class BowlesABC4PadFoundation(AllowableBearingCapacity):
|
|
8
8
|
r"""Allowable bearing capacity for pad foundation on cohesionless
|
9
9
|
soils according to `Bowles (1997)`.
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
\ B \ \le \ 1.2m
|
14
|
-
$$
|
15
|
-
|
16
|
-
$$
|
17
|
-
q_a(kPa) = 11.98(N_1)_{55}\left(\dfrac{3.28B + 1}{3.28B} \right)^2
|
18
|
-
f_d \left(\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
|
19
|
-
$$
|
20
|
-
|
21
|
-
$$
|
22
|
-
f_d = 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
23
|
-
$$
|
24
|
-
|
25
|
-
- $q_a$ (kPa): Allowable bearing capacity
|
26
|
-
- $N$: Corrected SPT N-value
|
27
|
-
- $f_d$: Depth factor
|
28
|
-
- $S$ (mm): Tolerable settlement
|
29
|
-
- $B$ (m): Width of foundation footing
|
30
|
-
- $D_f$ (m): Depth of foundation footing
|
31
|
-
- $D_w$ (m): Depth of water below ground level
|
11
|
+
See [implementation](../formulas/allowable-bearing-capacity.md/#bowles-bearing-capacity-for-pad-foundation)
|
12
|
+
for more details on bearing capacity equation used.
|
32
13
|
|
33
14
|
"""
|
34
15
|
|
@@ -77,21 +58,9 @@ class BowlesABC4MatFoundation(BowlesABC4PadFoundation):
|
|
77
58
|
r"""Allowable bearing capacity for mat foundation on cohesionless
|
78
59
|
soils according to `Bowles (1997)`.
|
79
60
|
|
80
|
-
|
81
|
-
|
82
|
-
$$
|
83
|
-
|
84
|
-
$$
|
85
|
-
f_d = 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
86
|
-
$$
|
61
|
+
See [implementation](../formulas/allowable-bearing-capacity.md/#bowles-bearing-capacity-for-mat-foundation)
|
62
|
+
for more details on bearing capacity equation used.
|
87
63
|
|
88
|
-
- $q_a$ (kPa): Allowable bearing capacity
|
89
|
-
- $N$: Corrected SPT N-value
|
90
|
-
- $f_d$: Depth factor
|
91
|
-
- $S$ (mm): Tolerable settlement
|
92
|
-
- $B$ (m): Width of foundation footing
|
93
|
-
- $D_f$ (m): Depth of foundation footing
|
94
|
-
- $D_w$ (m): Depth of water below ground level
|
95
64
|
"""
|
96
65
|
|
97
66
|
@round_(ndigits=2)
|
@@ -5,29 +5,11 @@ from ._core import AllowableBearingCapacity
|
|
5
5
|
|
6
6
|
|
7
7
|
class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
|
8
|
-
|
8
|
+
"""Allowable bearing capacity for pad foundation on cohesionless
|
9
9
|
soils according to `Meyerhof (1956)`.
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
$$
|
14
|
-
|
15
|
-
$$
|
16
|
-
q_a(kPa) = 8N\left(\dfrac{3.28B + 1}{3.28B} \right)^2 f_d\left(
|
17
|
-
\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
|
18
|
-
$$
|
19
|
-
|
20
|
-
$$
|
21
|
-
f_d = 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
22
|
-
$$
|
23
|
-
|
24
|
-
- $q_a$ (kPa): Allowable bearing capacity
|
25
|
-
- $N$: Corrected SPT N-value
|
26
|
-
- $f_d$: Depth factor
|
27
|
-
- $S$ (mm): Tolerable settlement
|
28
|
-
- $B$ (m): Width of foundation footing
|
29
|
-
- $D_f$ (m): Depth of foundation footing
|
30
|
-
- $D_w$ (m): Depth of water below ground level
|
11
|
+
See [implementation](../formulas/allowable-bearing-capacity.md/#meyerhof-bearing-capacity-for-pad-foundation)
|
12
|
+
for more details on bearing capacity equation used.
|
31
13
|
|
32
14
|
"""
|
33
15
|
|
@@ -73,24 +55,12 @@ class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
|
|
73
55
|
|
74
56
|
|
75
57
|
class MeyerhofABC4MatFoundation(MeyerhofABC4PadFoundation):
|
76
|
-
|
58
|
+
"""Allowable bearing capacity for mat foundation on cohesionless
|
77
59
|
soils according to `Meyerhof (1956)`.
|
78
60
|
|
79
|
-
|
80
|
-
|
81
|
-
$$
|
82
|
-
|
83
|
-
$$
|
84
|
-
f_d = 1 + 0.33 \cdot \frac{D_f}{B} \le 1.33
|
85
|
-
$$
|
61
|
+
See [implementation](../formulas/allowable-bearing-capacity.md/#meyerhof-bearing-capacity-for-mat-foundation)
|
62
|
+
for more details on bearing capacity equation used.
|
86
63
|
|
87
|
-
- $q_a$ (kPa): Allowable bearing capacity
|
88
|
-
- $N$: Corrected SPT N-value
|
89
|
-
- $f_d$: Depth factor
|
90
|
-
- $S$ (mm): Tolerable settlement
|
91
|
-
- $B$ (m): Width of foundation footing
|
92
|
-
- $D_f$ (m): Depth of foundation footing
|
93
|
-
- $D_w$ (m): Depth of water below ground level
|
94
64
|
"""
|
95
65
|
|
96
66
|
@round_(ndigits=2)
|
@@ -5,39 +5,11 @@ from ._core import AllowableBearingCapacity
|
|
5
5
|
|
6
6
|
|
7
7
|
class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
|
8
|
-
|
8
|
+
"""Allowable bearing capacity for pad foundation on cohesionless
|
9
9
|
soils according to `Terzaghi & Peck (1948)`.
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
\ B \ \le 1.2m
|
14
|
-
$$
|
15
|
-
|
16
|
-
$$
|
17
|
-
q_a(kPa) = 8N\left(\dfrac{3.28B + 1}{3.28B} \right)^2\dfrac{1}
|
18
|
-
{c_w f_d}\left(\dfrac{S}{25.4}\right), \ B \ \gt 1.2m
|
19
|
-
$$
|
20
|
-
|
21
|
-
$$
|
22
|
-
f_d = 1 + 0.25 \cdot \frac{D_f}{B} \le 1.25
|
23
|
-
$$
|
24
|
-
|
25
|
-
$$
|
26
|
-
c_w = 2 - \frac{D_w}{2B} \le 2, D_w \gt D_f
|
27
|
-
$$
|
28
|
-
|
29
|
-
$$
|
30
|
-
c_w = 2 - \frac{D_f}{2B} \le 2, D_w \le D_f
|
31
|
-
$$
|
32
|
-
|
33
|
-
- $q_a$ (kPa): Allowable bearing capacity
|
34
|
-
- $N$: Corrected SPT N-value
|
35
|
-
- $f_d$: Depth factor
|
36
|
-
- $c_w$: Water correction factor
|
37
|
-
- $S$ (mm): Tolerable settlement
|
38
|
-
- $B$ (m): Width of foundation footing
|
39
|
-
- $D_f$ (m): Depth of foundation footing
|
40
|
-
- $D_w$ (m): Depth of water below ground level
|
11
|
+
See [implementation](../formulas/allowable-bearing-capacity.md/#terzaghi-bearing-capacity-for-pad-foundation)
|
12
|
+
for more details on bearing capacity equation used.
|
41
13
|
|
42
14
|
"""
|
43
15
|
|
@@ -110,33 +82,12 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
|
|
110
82
|
|
111
83
|
|
112
84
|
class TerzaghiABC4MatFoundation(TerzaghiABC4PadFoundation):
|
113
|
-
|
85
|
+
"""Allowable bearing capacity for mat foundation on cohesionless
|
114
86
|
soils according to `Terzaghi & Peck (1948)`.
|
115
87
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
$$
|
121
|
-
f_d = 1 + 0.25 \cdot \frac{D_f}{B} \le 1.25
|
122
|
-
$$
|
123
|
-
|
124
|
-
$$
|
125
|
-
c_w = 2 - \frac{D_w}{2B} \le 2, D_w \gt D_f
|
126
|
-
$$
|
127
|
-
|
128
|
-
$$
|
129
|
-
c_w = 2 - \frac{D_f}{2B} \le 2, D_w \le D_f
|
130
|
-
$$
|
131
|
-
|
132
|
-
- $q_a$ (kPa): Allowable bearing capacity
|
133
|
-
- $N$: Corrected SPT N-value
|
134
|
-
- $f_d$: Depth factor
|
135
|
-
- $c_w$: Water correction factor
|
136
|
-
- $S$ (mm): Tolerable settlement
|
137
|
-
- $B$ (m): Width of foundation footing
|
138
|
-
- $D_f$ (m): Depth of foundation footing
|
139
|
-
- $D_w$ (m): Depth of water below ground level
|
88
|
+
See [implementation](../formulas/allowable-bearing-capacity.md/#terzaghi-bearing-capacity-for-mat-foundation)
|
89
|
+
for more details on bearing capacity equation used.
|
90
|
+
|
140
91
|
"""
|
141
92
|
|
142
93
|
@round_(ndigits=2)
|
@@ -16,13 +16,13 @@ from ._terzaghi_ubc import (
|
|
16
16
|
from ._vesic_ubc import VesicUltimateBearingCapacity
|
17
17
|
|
18
18
|
__all__ = [
|
19
|
-
"UBCType",
|
20
19
|
"TerzaghiUBC4StripFooting",
|
21
20
|
"TerzaghiUBC4CircularFooting",
|
22
21
|
"TerzaghiUBC4RectangularFooting",
|
23
22
|
"TerzaghiUBC4SquareFooting",
|
24
23
|
"HansenUltimateBearingCapacity",
|
25
24
|
"VesicUltimateBearingCapacity",
|
25
|
+
"UBCType",
|
26
26
|
"create_ubc_4_all_soil_types",
|
27
27
|
]
|
28
28
|
|
@@ -46,18 +46,18 @@ class UBCType(AbstractStrEnum):
|
|
46
46
|
|
47
47
|
@validate_func_args
|
48
48
|
def create_ubc_4_all_soil_types(
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
49
|
+
friction_angle: float,
|
50
|
+
cohesion: float,
|
51
|
+
moist_unit_wgt: float,
|
52
|
+
depth: float,
|
53
|
+
width: float,
|
54
|
+
length: Optional[float] = None,
|
55
|
+
eccentricity: float = 0.0,
|
56
|
+
ground_water_level: Optional[float] = None,
|
57
|
+
load_angle: float = 0.0,
|
58
|
+
apply_local_shear: bool = False,
|
59
|
+
shape: Shape | str = "square",
|
60
|
+
ubc_type: Annotated[UBCType | str, MustBeMemberOf(UBCType)] = "hansen",
|
61
61
|
) -> UltimateBearingCapacity:
|
62
62
|
r"""A factory function that encapsulate the creation of ultimate
|
63
63
|
bearing capacity.
|
@@ -101,8 +101,7 @@ def create_ubc_4_all_soil_types(
|
|
101
101
|
shape=shape,
|
102
102
|
)
|
103
103
|
|
104
|
-
ubc_class = _get_ultimate_bearing_capacity(ubc_type,
|
105
|
-
fnd_size.footing_shape)
|
104
|
+
ubc_class = _get_ultimate_bearing_capacity(ubc_type, fnd_size.footing_shape)
|
106
105
|
|
107
106
|
return ubc_class(
|
108
107
|
friction_angle=friction_angle,
|
@@ -21,22 +21,6 @@ class UltimateBearingCapacity(ABC):
|
|
21
21
|
apply_local_shear: bool = False,
|
22
22
|
) -> None:
|
23
23
|
r"""
|
24
|
-
|
25
|
-
$$
|
26
|
-
q_u = cN_c s_c d_c i_c + qN_q s_q d_q i_q
|
27
|
-
+ 0.5 \gamma B N_{\gamma} s_{\gamma} d_{\gamma} i_{\gamma}
|
28
|
-
$$
|
29
|
-
|
30
|
-
- $q_u$ (kPa): Ultimate bearing capacity
|
31
|
-
- $c$ (kPa): Cohesion of soil
|
32
|
-
- $q$ (kPa): Overburden pressure of soil
|
33
|
-
- $\gamma$ (kN/m³): Unit weight of soil
|
34
|
-
- $B$ (m): Width of foundation footing
|
35
|
-
- $N_c$, $N_q$, $N_{\gamma}$: Bearing capacity factors
|
36
|
-
- $s_c$, $s_q$, $s_{\gamma}$: Shape factors
|
37
|
-
- $d_c$, $d_q$, $d_{\gamma}$: Depth factors
|
38
|
-
- $i_c$, $i_q$, $i_{\gamma}$: Inclination factors
|
39
|
-
|
40
24
|
:param friction_angle: Internal angle of friction for general
|
41
25
|
shear failure (degrees).
|
42
26
|
:param cohesion: Cohesion of soil ($kPa$).
|
@@ -196,6 +180,12 @@ class UltimateBearingCapacity(ABC):
|
|
196
180
|
)
|
197
181
|
|
198
182
|
def bearing_capacity_results(self) -> dict:
|
183
|
+
"""Return a dictionary of bearing capacity results with
|
184
|
+
intermediate calculations.
|
185
|
+
|
186
|
+
!!! info "Added in v0.11.0"
|
187
|
+
|
188
|
+
"""
|
199
189
|
return {
|
200
190
|
"bearing_capacity": self.bearing_capacity(),
|
201
191
|
"n_c": self.n_c,
|
@@ -14,21 +14,22 @@ class HansenBearingCapacityFactors:
|
|
14
14
|
if isclose(friction_angle, 0.0):
|
15
15
|
return 5.14
|
16
16
|
return cot(friction_angle) * (
|
17
|
-
|
17
|
+
HansenBearingCapacityFactors.n_q(friction_angle) - 1.0
|
18
18
|
)
|
19
19
|
|
20
20
|
@staticmethod
|
21
21
|
@round_(ndigits=2)
|
22
22
|
def n_q(friction_angle: float) -> float:
|
23
|
-
return tan(45.0 + friction_angle / 2.0) ** 2.0 * exp(
|
23
|
+
return tan(45.0 + friction_angle / 2.0) ** 2.0 * exp(
|
24
|
+
pi * tan(friction_angle))
|
24
25
|
|
25
26
|
@staticmethod
|
26
27
|
@round_(ndigits=2)
|
27
28
|
def n_gamma(friction_angle: float) -> float:
|
28
29
|
return (
|
29
|
-
|
30
|
-
|
31
|
-
|
30
|
+
1.8
|
31
|
+
* (HansenBearingCapacityFactors.n_q(friction_angle) - 1.0)
|
32
|
+
* tan(friction_angle)
|
32
33
|
)
|
33
34
|
|
34
35
|
|
@@ -90,10 +91,10 @@ class HansenInclinationFactors:
|
|
90
91
|
@staticmethod
|
91
92
|
@round_(ndigits=2)
|
92
93
|
def i_c(
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
94
|
+
cohesion: float,
|
95
|
+
load_angle: float,
|
96
|
+
f_width: float,
|
97
|
+
f_length: float,
|
97
98
|
) -> float:
|
98
99
|
return 1.0 - sin(load_angle) / (2.0 * cohesion * f_width * f_length)
|
99
100
|
|
@@ -109,142 +110,68 @@ class HansenInclinationFactors:
|
|
109
110
|
|
110
111
|
|
111
112
|
class HansenUltimateBearingCapacity(UltimateBearingCapacity):
|
112
|
-
r"""Ultimate bearing capacity for soils according to `Hansen (1961)`.
|
113
|
+
r"""Ultimate bearing capacity for soils according to `Hansen (1961)`.
|
114
|
+
|
115
|
+
See [implementation](../formulas/ultimate-bearing-capacity.md/#hansen-bearing-capacity)
|
116
|
+
for more details on bearing capacity equation used.
|
117
|
+
|
118
|
+
"""
|
113
119
|
|
114
120
|
@property
|
115
121
|
def n_c(self) -> float:
|
116
|
-
r"""Bearing capacity factor $N_c$.
|
117
|
-
|
118
|
-
$$
|
119
|
-
N_c = \cot(\phi) \left(N_q - 1\right)
|
120
|
-
$$
|
121
|
-
"""
|
122
|
+
r"""Bearing capacity factor $N_c$."""
|
122
123
|
return HansenBearingCapacityFactors.n_c(self.friction_angle)
|
123
124
|
|
124
125
|
@property
|
125
126
|
def n_q(self) -> float:
|
126
|
-
r"""Bearing capacity factor $N_q$.
|
127
|
-
|
128
|
-
$$
|
129
|
-
N_q = \tan^2\left(45 + \frac{\phi}{2}\right) \cdot e^{\pi \tan(\phi)}
|
130
|
-
$$
|
131
|
-
"""
|
127
|
+
r"""Bearing capacity factor $N_q$."""
|
132
128
|
return HansenBearingCapacityFactors.n_q(self.friction_angle)
|
133
129
|
|
134
130
|
@property
|
135
131
|
def n_gamma(self) -> float:
|
136
|
-
r"""Bearing capacity factor $N_{\gamma}$.
|
137
|
-
|
138
|
-
$$
|
139
|
-
N_{\gamma} = 1.8 \left(N_q - 1\right) \tan(\phi)
|
140
|
-
$$
|
141
|
-
"""
|
132
|
+
r"""Bearing capacity factor $N_{\gamma}$."""
|
142
133
|
return HansenBearingCapacityFactors.n_gamma(self.friction_angle)
|
143
134
|
|
144
135
|
@property
|
145
136
|
def s_c(self) -> float:
|
146
|
-
r"""Shape factor $S_c$.
|
147
|
-
|
148
|
-
$$
|
149
|
-
s_c = 1.0 \rightarrow \text{Strip footing}
|
150
|
-
$$
|
151
|
-
|
152
|
-
$$
|
153
|
-
s_c = 1.0 + 0.2 \frac{B}{L} \rightarrow \text{Rectangular footing}
|
154
|
-
$$
|
155
|
-
|
156
|
-
$$
|
157
|
-
s_c = 1.3 \rightarrow \text{Square or circular footing}
|
158
|
-
$$
|
159
|
-
"""
|
137
|
+
r"""Shape factor $S_c$."""
|
160
138
|
width, length, shape = self.foundation_size.footing_params()
|
161
139
|
return HansenShapeFactors.s_c(width, length, shape)
|
162
140
|
|
163
141
|
@property
|
164
142
|
def s_q(self) -> float:
|
165
|
-
r"""Shape factor $S_q$.
|
166
|
-
|
167
|
-
$$
|
168
|
-
s_q = 1.0 \rightarrow \text{Strip footing}
|
169
|
-
$$
|
170
|
-
|
171
|
-
$$
|
172
|
-
s_q = 1.0 + 0.2 \cdot \frac{B}{L} \rightarrow \text{Rectangular footing}
|
173
|
-
$$
|
174
|
-
|
175
|
-
$$
|
176
|
-
s_q = 1.2 \rightarrow \text{Square or circular footing}
|
177
|
-
$$
|
178
|
-
"""
|
143
|
+
r"""Shape factor $S_q$."""
|
179
144
|
width, length, shape = self.foundation_size.footing_params()
|
180
145
|
return HansenShapeFactors.s_q(width, length, shape)
|
181
146
|
|
182
147
|
@property
|
183
148
|
def s_gamma(self) -> float:
|
184
|
-
r"""Shape factor $S_{\gamma}$.
|
185
|
-
|
186
|
-
$$
|
187
|
-
s_{\gamma} = 1.0 \rightarrow \text{Strip footing}
|
188
|
-
$$
|
189
|
-
|
190
|
-
$$
|
191
|
-
s_{\gamma} = 1.0 - 0.4 \frac{B}{L} \rightarrow
|
192
|
-
\text{Rectangular footing}
|
193
|
-
$$
|
194
|
-
|
195
|
-
$$
|
196
|
-
s_{\gamma} = 0.8 \rightarrow \text{Square footing}
|
197
|
-
$$
|
198
|
-
|
199
|
-
$$
|
200
|
-
s_{\gamma} = 0.6 \rightarrow \text{Circular footing}
|
201
|
-
$$
|
202
|
-
"""
|
149
|
+
r"""Shape factor $S_{\gamma}$."""
|
203
150
|
width, length, shape = self.foundation_size.footing_params()
|
204
151
|
return HansenShapeFactors.s_gamma(width, length, shape)
|
205
152
|
|
206
153
|
@property
|
207
154
|
def d_c(self) -> float:
|
208
|
-
r"""Depth factor $D_c$.
|
209
|
-
|
210
|
-
$$
|
211
|
-
d_c = 1.0 + 0.35 \cdot \frac{D_f}{B}
|
212
|
-
$$
|
213
|
-
"""
|
155
|
+
r"""Depth factor $D_c$."""
|
214
156
|
depth = self.foundation_size.depth
|
215
157
|
width = self.foundation_size.width
|
216
158
|
return HansenDepthFactors.d_c(depth, width)
|
217
159
|
|
218
160
|
@property
|
219
161
|
def d_q(self) -> float:
|
220
|
-
r"""Depth factor $D_q$.
|
221
|
-
|
222
|
-
$$
|
223
|
-
d_q = 1.0 + 0.35 \cdot \frac{D_f}{B}
|
224
|
-
$$
|
225
|
-
"""
|
162
|
+
r"""Depth factor $D_q$."""
|
226
163
|
depth = self.foundation_size.depth
|
227
164
|
width = self.foundation_size.width
|
228
165
|
return HansenDepthFactors.d_q(depth, width)
|
229
166
|
|
230
167
|
@property
|
231
168
|
def d_gamma(self) -> float:
|
232
|
-
r"""Depth factor $D_{\gamma}$.
|
233
|
-
|
234
|
-
$$
|
235
|
-
d_{\gamma} = 1.0
|
236
|
-
$$
|
237
|
-
"""
|
169
|
+
r"""Depth factor $D_{\gamma}$."""
|
238
170
|
return HansenDepthFactors.d_gamma()
|
239
171
|
|
240
172
|
@property
|
241
173
|
def i_c(self) -> float:
|
242
|
-
r"""Inclination factor $I_c$.
|
243
|
-
|
244
|
-
$$
|
245
|
-
I_c = 1 - \frac{\sin(\alpha)}{2cBL}
|
246
|
-
$$
|
247
|
-
"""
|
174
|
+
r"""Inclination factor $I_c$."""
|
248
175
|
width, length = self.foundation_size.width, self.foundation_size.length
|
249
176
|
return HansenInclinationFactors.i_c(
|
250
177
|
self.cohesion, self.load_angle, width, length
|
@@ -252,20 +179,10 @@ class HansenUltimateBearingCapacity(UltimateBearingCapacity):
|
|
252
179
|
|
253
180
|
@property
|
254
181
|
def i_q(self) -> float:
|
255
|
-
r"""Inclination factor $I_q$.
|
256
|
-
|
257
|
-
$$
|
258
|
-
I_q = 1 - \frac{1.5 \sin(\alpha)}{\cos(\alpha)}
|
259
|
-
$$
|
260
|
-
"""
|
182
|
+
r"""Inclination factor $I_q$."""
|
261
183
|
return HansenInclinationFactors.i_q(self.load_angle)
|
262
184
|
|
263
185
|
@property
|
264
186
|
def i_gamma(self) -> float:
|
265
|
-
r"""Inclination factor $I_{\gamma}$.
|
266
|
-
|
267
|
-
$$
|
268
|
-
I_{\gamma} = I_q^2
|
269
|
-
$$
|
270
|
-
"""
|
187
|
+
r"""Inclination factor $I_{\gamma}$."""
|
271
188
|
return HansenInclinationFactors.i_gamma(self.load_angle)
|
@@ -52,16 +52,6 @@ class TerzaghiUltimateBearingCapacity(UltimateBearingCapacity, ABC):
|
|
52
52
|
apply_local_shear: bool = False,
|
53
53
|
) -> None:
|
54
54
|
r"""
|
55
|
-
|
56
|
-
- $q_u$ (kPa): Ultimate bearing capacity
|
57
|
-
- $c$ (kPa): Cohesion of soil
|
58
|
-
- $q$ (kPa): Overburden pressure of soil
|
59
|
-
- $\gamma$ (kN/m³): Unit weight of soil
|
60
|
-
- $B$ (m): Width of foundation footing
|
61
|
-
- $L$ (m): Length of foundation footing
|
62
|
-
- $N_c$, $N_q$, $N_{\gamma}$: Bearing capacity factors
|
63
|
-
|
64
|
-
|
65
55
|
:param friction_angle: Internal angle of friction for general
|
66
56
|
shear failure (degrees).
|
67
57
|
:param cohesion: Cohesion of soil ($kPa$).
|
@@ -81,37 +71,26 @@ class TerzaghiUltimateBearingCapacity(UltimateBearingCapacity, ABC):
|
|
81
71
|
|
82
72
|
@property
|
83
73
|
def n_c(self) -> float:
|
84
|
-
r"""Bearing capacity factor $N_c$.
|
85
|
-
|
86
|
-
$$N_c = \cot(\phi) \cdot (N_q - 1)$$
|
87
|
-
"""
|
74
|
+
r"""Bearing capacity factor $N_c$."""
|
88
75
|
return TerzaghiBearingCapacityFactors.n_c(self.friction_angle)
|
89
76
|
|
90
77
|
@property
|
91
78
|
def n_q(self) -> float:
|
92
|
-
r"""Bearing capacity factor $N_q$.
|
93
|
-
|
94
|
-
$$
|
95
|
-
N_q = \dfrac{e^{(\frac{3\pi}{2} - \phi)\tan\phi}}
|
96
|
-
{2\cos^2(45 + \frac{\phi}{2})}
|
97
|
-
$$
|
98
|
-
"""
|
79
|
+
r"""Bearing capacity factor $N_q$."""
|
99
80
|
return TerzaghiBearingCapacityFactors.n_q(self.friction_angle)
|
100
81
|
|
101
82
|
@property
|
102
83
|
def n_gamma(self) -> float:
|
103
|
-
r"""Bearing capacity factor $N_{\gamma}$.
|
104
|
-
|
105
|
-
$$N_{\gamma} = (N_q - 1) \cdot \tan(1.4\phi)$$
|
106
|
-
"""
|
84
|
+
r"""Bearing capacity factor $N_{\gamma}$."""
|
107
85
|
return TerzaghiBearingCapacityFactors.n_gamma(self.friction_angle)
|
108
86
|
|
109
87
|
|
110
88
|
class TerzaghiUBC4StripFooting(TerzaghiUltimateBearingCapacity):
|
111
|
-
|
89
|
+
"""Ultimate bearing capacity for strip footing according to
|
112
90
|
`Terzaghi 1943`.
|
113
91
|
|
114
|
-
|
92
|
+
See [implementation](../formulas/ultimate-bearing-capacity.md/#terzaghi-bearing-capacity-for-strip-footing)
|
93
|
+
for more details on bearing capacity equation used.
|
115
94
|
"""
|
116
95
|
|
117
96
|
@round_(ndigits=2)
|
@@ -125,10 +104,11 @@ class TerzaghiUBC4StripFooting(TerzaghiUltimateBearingCapacity):
|
|
125
104
|
|
126
105
|
|
127
106
|
class TerzaghiUBC4CircularFooting(TerzaghiUltimateBearingCapacity):
|
128
|
-
|
107
|
+
"""Ultimate bearing capacity for circular footing according to
|
129
108
|
`Terzaghi 1943`.
|
130
109
|
|
131
|
-
|
110
|
+
See [implementation](../formulas/ultimate-bearing-capacity.md/#terzaghi-bearing-capacity-for-circular-footing)
|
111
|
+
for more details on bearing capacity equation used.
|
132
112
|
"""
|
133
113
|
|
134
114
|
@round_(ndigits=2)
|
@@ -145,10 +125,8 @@ class TerzaghiUBC4RectangularFooting(TerzaghiUltimateBearingCapacity):
|
|
145
125
|
r"""Ultimate bearing capacity for rectangular footing according to
|
146
126
|
`Terzaghi 1943`.
|
147
127
|
|
148
|
-
|
149
|
-
|
150
|
-
+ \left(1 - 0.2 \dfrac{B}{L} \right) 0.5 B \gamma N_{\gamma}
|
151
|
-
$$
|
128
|
+
See [implementation](../formulas/ultimate-bearing-capacity.md/#terzaghi-bearing-capacity-for-rectangular-footing)
|
129
|
+
for more details on bearing capacity equation used.
|
152
130
|
"""
|
153
131
|
|
154
132
|
@round_(ndigits=2)
|
@@ -167,10 +145,11 @@ class TerzaghiUBC4RectangularFooting(TerzaghiUltimateBearingCapacity):
|
|
167
145
|
|
168
146
|
|
169
147
|
class TerzaghiUBC4SquareFooting(TerzaghiUBC4RectangularFooting):
|
170
|
-
|
148
|
+
"""Ultimate bearing capacity for square footing according to
|
171
149
|
`Terzaghi 1943``.
|
172
150
|
|
173
|
-
|
151
|
+
See [implementation](../formulas/ultimate-bearing-capacity.md/#terzaghi-bearing-capacity-for-square-footing)
|
152
|
+
for more details on bearing capacity equation used.
|
174
153
|
"""
|
175
154
|
|
176
155
|
def bearing_capacity(self):
|
@@ -22,9 +22,9 @@ class VesicBearingCapacityFactors:
|
|
22
22
|
@round_(ndigits=2)
|
23
23
|
def n_gamma(friction_angle: float) -> float:
|
24
24
|
return (
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
2.0
|
26
|
+
* (VesicBearingCapacityFactors.n_q(friction_angle) + 1.0)
|
27
|
+
* tan(friction_angle)
|
28
28
|
)
|
29
29
|
|
30
30
|
|
@@ -32,10 +32,10 @@ class VesicShapeFactors:
|
|
32
32
|
@staticmethod
|
33
33
|
@round_(ndigits=2)
|
34
34
|
def s_c(
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
friction_angle: float,
|
36
|
+
f_width: float,
|
37
|
+
f_length: float,
|
38
|
+
f_shape: Shape,
|
39
39
|
) -> float:
|
40
40
|
_n_q = VesicBearingCapacityFactors.n_q(friction_angle)
|
41
41
|
_n_c = VesicBearingCapacityFactors.n_c(friction_angle)
|
@@ -50,10 +50,10 @@ class VesicShapeFactors:
|
|
50
50
|
@staticmethod
|
51
51
|
@round_(ndigits=2)
|
52
52
|
def s_q(
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
friction_angle: float,
|
54
|
+
f_width: float,
|
55
|
+
f_length: float,
|
56
|
+
f_shape: Shape,
|
57
57
|
) -> float:
|
58
58
|
if f_shape == Shape.STRIP:
|
59
59
|
return 1.0
|
@@ -83,8 +83,9 @@ class VesicDepthFactors:
|
|
83
83
|
@staticmethod
|
84
84
|
@round_(ndigits=2)
|
85
85
|
def d_q(friction_angle: float, f_depth: float, f_width: float) -> float:
|
86
|
-
return 1.0 + 2.0 * tan(friction_angle) * (
|
87
|
-
|
86
|
+
return 1.0 + 2.0 * tan(friction_angle) * (
|
87
|
+
1.0 - sin(friction_angle)) ** 2.0 * (
|
88
|
+
f_depth / f_width
|
88
89
|
)
|
89
90
|
|
90
91
|
@staticmethod
|
@@ -114,140 +115,74 @@ class VesicInclinationFactors:
|
|
114
115
|
|
115
116
|
|
116
117
|
class VesicUltimateBearingCapacity(UltimateBearingCapacity):
|
117
|
-
"""Ultimate bearing capacity for soils according to `Vesic (1973)`.
|
118
|
+
"""Ultimate bearing capacity for soils according to `Vesic (1973)`.
|
119
|
+
|
120
|
+
See [implementation](../formulas/ultimate-bearing-capacity.md/#vesic-bearing-capacity)
|
121
|
+
for more details on bearing capacity equation used.
|
122
|
+
"""
|
118
123
|
|
119
124
|
@property
|
120
125
|
def n_c(self) -> float:
|
121
|
-
r"""Bearing capacity factor $N_c$.
|
122
|
-
|
123
|
-
$$N_c = \cot(\phi) \left(N_q - 1\right)$$
|
124
|
-
"""
|
126
|
+
r"""Bearing capacity factor $N_c$."""
|
125
127
|
return VesicBearingCapacityFactors.n_c(self.friction_angle)
|
126
128
|
|
127
129
|
@property
|
128
130
|
def n_q(self) -> float:
|
129
|
-
r"""Bearing capacity factor $N_q$.
|
130
|
-
|
131
|
-
$$
|
132
|
-
N_q = \tan^2\left(45 + \frac{\phi}{2}\right) \cdot
|
133
|
-
e^{\pi \tan(\phi)}
|
134
|
-
$$
|
135
|
-
"""
|
131
|
+
r"""Bearing capacity factor $N_q$."""
|
136
132
|
return VesicBearingCapacityFactors.n_q(self.friction_angle)
|
137
133
|
|
138
134
|
@property
|
139
135
|
def n_gamma(self) -> float:
|
140
|
-
r"""Bearing capacity factor $N_{\gamma}$.
|
141
|
-
|
142
|
-
$$N_{\gamma} = 2(N_q + 1) \tan(\phi)$$
|
143
|
-
"""
|
136
|
+
r"""Bearing capacity factor $N_{\gamma}$."""
|
144
137
|
return VesicBearingCapacityFactors.n_gamma(self.friction_angle)
|
145
138
|
|
146
139
|
@property
|
147
140
|
def s_c(self) -> float:
|
148
|
-
r"""Shape factor $S_c$.
|
149
|
-
|
150
|
-
$$s_c = 1.0 \rightarrow \text{Strip footing}$$
|
151
|
-
|
152
|
-
$$
|
153
|
-
s_c = 1 + \dfrac{B}{L} \cdot \dfrac{N_q}{N_c} \rightarrow
|
154
|
-
\text{Rectangular footing}
|
155
|
-
$$
|
156
|
-
|
157
|
-
$$
|
158
|
-
s_c &= 1 + \dfrac{N_q}{N_c} \rightarrow
|
159
|
-
\text{Square or circular footing}
|
160
|
-
$$
|
161
|
-
"""
|
141
|
+
r"""Shape factor $S_c$."""
|
162
142
|
width, length, shape = self.foundation_size.footing_params()
|
163
143
|
return VesicShapeFactors.s_c(self.friction_angle, width, length, shape)
|
164
144
|
|
165
145
|
@property
|
166
146
|
def s_q(self) -> float:
|
167
|
-
r"""Shape factor $S_q$.
|
168
|
-
|
169
|
-
|
170
|
-
$$s_q = 1.0 \rightarrow \text{Strip footing}$$
|
171
|
-
|
172
|
-
$$
|
173
|
-
s_q = 1 + \dfrac{B}{L} \cdot \tan(\phi) \rightarrow
|
174
|
-
\text{Rectangular footing}
|
175
|
-
$$
|
176
|
-
|
177
|
-
$$
|
178
|
-
s_q = 1 + \tan(\phi) \rightarrow \text{Square or circular footing}
|
179
|
-
$$
|
180
|
-
"""
|
147
|
+
r"""Shape factor $S_q$."""
|
181
148
|
width, length, shape = self.foundation_size.footing_params()
|
182
149
|
return VesicShapeFactors.s_q(self.friction_angle, width, length, shape)
|
183
150
|
|
184
151
|
@property
|
185
152
|
def s_gamma(self) -> float:
|
186
|
-
r"""Shape factor $S_{\gamma}$.
|
187
|
-
|
188
|
-
$$s_{\gamma} = 1.0 \rightarrow \text{Strip footing}$$
|
189
|
-
|
190
|
-
$$
|
191
|
-
s_{\gamma} = 1.0 - 0.4 \dfrac{B}{L} \rightarrow
|
192
|
-
\text{Rectangular footing}
|
193
|
-
$$
|
194
|
-
|
195
|
-
$$
|
196
|
-
s_{\gamma} = 0.6 \rightarrow \text{Square or circular footing}
|
197
|
-
$$
|
198
|
-
"""
|
153
|
+
r"""Shape factor $S_{\gamma}$."""
|
199
154
|
width, length, shape = self.foundation_size.footing_params()
|
200
155
|
return VesicShapeFactors.s_gamma(width, length, shape)
|
201
156
|
|
202
157
|
@property
|
203
158
|
def d_c(self) -> float:
|
204
|
-
r"""Depth factor $D_c$.
|
205
|
-
|
206
|
-
$$d_c = 1 + 0.4 \dfrac{D_f}{B}$$
|
207
|
-
"""
|
159
|
+
r"""Depth factor $D_c$."""
|
208
160
|
depth, width = self.foundation_size.depth, self.foundation_size.width
|
209
161
|
return VesicDepthFactors.d_c(depth, width)
|
210
162
|
|
211
163
|
@property
|
212
164
|
def d_q(self) -> float:
|
213
|
-
r"""Depth factor $D_q$.
|
214
|
-
|
215
|
-
$$
|
216
|
-
d_q = 1 + 2 \tan(\phi) \cdot (1 - \sin(\phi))^2
|
217
|
-
\cdot \dfrac{D_f}{B}
|
218
|
-
$$
|
219
|
-
"""
|
165
|
+
r"""Depth factor $D_q$."""
|
220
166
|
depth, width = self.foundation_size.depth, self.foundation_size.width
|
221
167
|
return VesicDepthFactors.d_q(self.friction_angle, depth, width)
|
222
168
|
|
223
169
|
@property
|
224
170
|
def d_gamma(self) -> float:
|
225
|
-
r"""Depth factor $D_{\gamma}$.
|
226
|
-
|
227
|
-
$$d_{\gamma} = 1.0$$
|
228
|
-
"""
|
171
|
+
r"""Depth factor $D_{\gamma}$."""
|
229
172
|
return VesicDepthFactors.d_gamma()
|
230
173
|
|
231
174
|
@property
|
232
175
|
def i_c(self) -> float:
|
233
|
-
r"""Inclination factor $I_c$.
|
234
|
-
|
235
|
-
$$i_c = (1 - \dfrac{\alpha}{90})^2$$
|
236
|
-
"""
|
176
|
+
r"""Inclination factor $I_c$."""
|
237
177
|
return VesicInclinationFactors.i_c(self.load_angle)
|
238
178
|
|
239
179
|
@property
|
240
180
|
def i_q(self) -> float:
|
241
|
-
r"""Inclination factor $I_q$.
|
242
|
-
|
243
|
-
$$i_q = (1 - \dfrac{\alpha}{90})^2$$
|
244
|
-
"""
|
181
|
+
r"""Inclination factor $I_q$."""
|
245
182
|
return VesicInclinationFactors.i_q(self.load_angle)
|
246
183
|
|
247
184
|
@property
|
248
185
|
def i_gamma(self) -> float:
|
249
|
-
r"""Inclination factor $I_{\gamma}$.
|
250
|
-
|
251
|
-
|
252
|
-
"""
|
253
|
-
return VesicInclinationFactors.i_gamma(self.friction_angle, self.load_angle)
|
186
|
+
r"""Inclination factor $I_{\gamma}$."""
|
187
|
+
return VesicInclinationFactors.i_gamma(self.friction_angle,
|
188
|
+
self.load_angle)
|
geolysis/soil_classifier.py
CHANGED
@@ -35,8 +35,7 @@ class _Clf(tuple, enum.Enum):
|
|
35
35
|
|
36
36
|
|
37
37
|
class USCSSymbol(_Clf):
|
38
|
-
"""
|
39
|
-
Unified Soil Classification System (USCS) symbols and descriptions.
|
38
|
+
"""Unified Soil Classification System (USCS) symbols and descriptions.
|
40
39
|
|
41
40
|
Each member represents a USCS soil type, grading, or plasticity symbol.
|
42
41
|
Aliases are provided where applicable.
|
geolysis/spt.py
CHANGED
@@ -413,22 +413,11 @@ class OPC:
|
|
413
413
|
|
414
414
|
@round_(ndigits=1)
|
415
415
|
def corrected_spt_n_value(self) -> float:
|
416
|
-
r"""Corrected SPT N-value.
|
417
|
-
|
418
|
-
$$
|
419
|
-
(N_1)_{60} = C_N \cdot N_{60}
|
420
|
-
$$
|
421
|
-
|
422
|
-
!!! note
|
423
|
-
|
424
|
-
`60` is used in this case to represent `60%` hammer
|
425
|
-
efficiency and can be any percentage of hammer efficiency
|
426
|
-
e.g. $N_{55}$ for `55%` hammer efficiency.
|
427
|
-
"""
|
428
|
-
corrected_spt = self.correction() * self.std_spt_n_value
|
416
|
+
r"""Corrected SPT N-value."""
|
429
417
|
# Corrected SPT should not be more
|
430
418
|
# than 2 times the Standardized SPT
|
431
|
-
|
419
|
+
correction = min(self.correction(), 2.0)
|
420
|
+
return correction * self.std_spt_n_value
|
432
421
|
|
433
422
|
@abstractmethod
|
434
423
|
def correction(self) -> float:
|
@@ -452,17 +441,7 @@ class GibbsHoltzOPC(OPC):
|
|
452
441
|
self._eop = val
|
453
442
|
|
454
443
|
def correction(self) -> float:
|
455
|
-
r"""SPT Correction.
|
456
|
-
|
457
|
-
$$
|
458
|
-
C_N = \dfrac{350}{\sigma_o + 70} \, \sigma_o \le 280kN/m^2
|
459
|
-
$$
|
460
|
-
|
461
|
-
$\frac{N_c}{N_{60}}$ should lie between 0.45 and 2.0, if
|
462
|
-
$\frac{N_c}{N_{60}}$ is greater than 2.0, :math:`N_c` should be
|
463
|
-
divided by 2.0 to obtain the design value used in finding the
|
464
|
-
bearing capacity of the soil.
|
465
|
-
"""
|
444
|
+
r"""SPT Correction."""
|
466
445
|
corr = 350.0 / (self.eop + 70.0)
|
467
446
|
return corr / 2.0 if corr > 2.0 else corr
|
468
447
|
|
@@ -476,22 +455,7 @@ class BazaraaPeckOPC(OPC):
|
|
476
455
|
STD_PRESSURE: Final = 71.8
|
477
456
|
|
478
457
|
def correction(self) -> float:
|
479
|
-
r"""SPT Correction.
|
480
|
-
|
481
|
-
$$
|
482
|
-
C_N = \dfrac{4}{1 + 0.0418 \cdot \sigma_o}, \,
|
483
|
-
\sigma_o \lt 71.8kN/m^2
|
484
|
-
$$
|
485
|
-
|
486
|
-
$$
|
487
|
-
C_N = \dfrac{4}{3.25 + 0.0104 \cdot \sigma_o},
|
488
|
-
\, \sigma_o \gt 71.8kN/m^2
|
489
|
-
$$
|
490
|
-
|
491
|
-
$$
|
492
|
-
C_N = 1 \, , \, \sigma_o = 71.8kN/m^2
|
493
|
-
$$
|
494
|
-
"""
|
458
|
+
r"""SPT Correction."""
|
495
459
|
if isclose(self.eop, self.STD_PRESSURE, rel_tol=0.01):
|
496
460
|
corr = 1.0
|
497
461
|
elif self.eop < self.STD_PRESSURE:
|
@@ -517,12 +481,7 @@ class PeckOPC(OPC):
|
|
517
481
|
self._eop = val
|
518
482
|
|
519
483
|
def correction(self) -> float:
|
520
|
-
r"""SPT Correction.
|
521
|
-
|
522
|
-
$$
|
523
|
-
C_N = 0.77 \log \left(\dfrac{2000}{\sigma_o} \right)
|
524
|
-
$$
|
525
|
-
"""
|
484
|
+
r"""SPT Correction."""
|
526
485
|
return 0.77 * log10(2000.0 / self.eop)
|
527
486
|
|
528
487
|
|
@@ -532,12 +491,7 @@ class LiaoWhitmanOPC(OPC):
|
|
532
491
|
"""
|
533
492
|
|
534
493
|
def correction(self) -> float:
|
535
|
-
r"""SPT Correction.
|
536
|
-
|
537
|
-
$$
|
538
|
-
C_N = \sqrt{\dfrac{100}{\sigma_o}}
|
539
|
-
$$
|
540
|
-
"""
|
494
|
+
r"""SPT Correction."""
|
541
495
|
return sqrt(100.0 / self.eop)
|
542
496
|
|
543
497
|
|
@@ -545,12 +499,7 @@ class SkemptonOPC(OPC):
|
|
545
499
|
"""Overburden Pressure Correction according to `Skempton (1986)`."""
|
546
500
|
|
547
501
|
def correction(self) -> float:
|
548
|
-
r"""SPT Correction.
|
549
|
-
|
550
|
-
$$
|
551
|
-
C_N = \dfrac{2}{1 + 0.01044 \cdot \sigma_o}
|
552
|
-
$$
|
553
|
-
"""
|
502
|
+
r"""SPT Correction."""
|
554
503
|
return 2.0 / (1.0 + 0.01044 * self.eop)
|
555
504
|
|
556
505
|
|
@@ -587,25 +536,14 @@ class DilatancyCorrection:
|
|
587
536
|
|
588
537
|
@round_(ndigits=1)
|
589
538
|
def corrected_spt_n_value(self) -> float:
|
590
|
-
r"""Corrected SPT N-value.
|
591
|
-
|
592
|
-
$$
|
593
|
-
(N_1)_{60} = 15 + \dfrac{1}{2}((N_1)_{60} - 15) \, , \,
|
594
|
-
(N_1)_{60} \gt 15
|
595
|
-
$$
|
596
|
-
|
597
|
-
$$
|
598
|
-
(N_1)_{60} = (N_1)_{60} \, , \, (N_1)_{60} \le 15
|
599
|
-
$$
|
600
|
-
"""
|
539
|
+
r"""Corrected SPT N-value."""
|
601
540
|
if self.corr_spt_n_value <= 15.0:
|
602
541
|
return self.corr_spt_n_value
|
603
542
|
return 15.0 + 0.5 * (self.corr_spt_n_value - 15.0)
|
604
543
|
|
605
544
|
|
606
545
|
class OPCType(AbstractStrEnum):
|
607
|
-
"""
|
608
|
-
Enumeration of overburden pressure correction (OPC) methods.
|
546
|
+
"""Enumeration of overburden pressure correction (OPC) methods.
|
609
547
|
|
610
548
|
Each member represents a method used to correct SPT results
|
611
549
|
for the effects of overburden pressure in geotechnical design.
|
@@ -647,9 +585,7 @@ def create_overburden_pressure_correction(
|
|
647
585
|
|
648
586
|
:param std_spt_n_value: SPT N-value standardized for field
|
649
587
|
procedures.
|
650
|
-
|
651
588
|
:param eop: Effective overburden pressure ($kPa$).
|
652
|
-
|
653
589
|
:param opc_type: Overburden Pressure Correction type to apply.
|
654
590
|
"""
|
655
591
|
opc_type = OPCType(opc_type)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
geolysis/__init__.py,sha256=ZeA59xkCLwiAA8wj2WyZEBkQlW1_JDu8nNCjTzJq96I,161
|
2
|
+
geolysis/foundation.py,sha256=khmZCa8V-UEqp7A4WlIwt8Oy5tVQdT0UsaLMuxEbDQU,12819
|
3
|
+
geolysis/soil_classifier.py,sha256=Rv1LiJID4DalpZPT0s0ulOkwR_1aZh2px8k8xpG6w-4,27437
|
4
|
+
geolysis/spt.py,sha256=GfFf4j2AilqQCrAOeJJBmk0vXcOCJ8XorUilsC1X13Y,17179
|
5
|
+
geolysis/utils.py,sha256=UnfRaz0MXxBxipcyezYMsxl5LuUTPl_kTztNQ94B8gA,2461
|
6
|
+
geolysis/bearing_capacity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
geolysis/bearing_capacity/abc/__init__.py,sha256=nycD68gdA116n2VX5fT_hq7ZZz3CF4OVuU3DIgnlnZw,518
|
8
|
+
geolysis/bearing_capacity/abc/_cohl/__init__.py,sha256=M1EBn2WMgtG-Dg-LT7N-OVke6upwL6plqyPCn3ebR0M,4110
|
9
|
+
geolysis/bearing_capacity/abc/_cohl/_core.py,sha256=1YeOe2YYUr6UHdaOjNQoy_PcZo8VTdouz-j2kpdEVqU,2094
|
10
|
+
geolysis/bearing_capacity/abc/_cohl/bowles_abc.py,sha256=70SCvyxKVtjE-gPO5YxnQ_098mkBBUjjQ3F_BQZYGVY,2448
|
11
|
+
geolysis/bearing_capacity/abc/_cohl/meyerhof_abc.py,sha256=mIvqXoMLJ9z7JDEUQYPV1n2Ssn0z6CYL8qFNU2PcKqk,2411
|
12
|
+
geolysis/bearing_capacity/abc/_cohl/terzaghi_abc.py,sha256=P6pCmDK-a2ZFL06dTkVUJ2jlE4CGEvgVAk5nToCZqy0,3270
|
13
|
+
geolysis/bearing_capacity/ubc/__init__.py,sha256=yaFFsmOb4q88-nfzilOcgYmb1_x2D2Tg2Po3XTKc52g,4483
|
14
|
+
geolysis/bearing_capacity/ubc/_core.py,sha256=oXt11GeMRbsRVMC0zNpIQDspb0W4RYKRxOm5K35Po_E,6114
|
15
|
+
geolysis/bearing_capacity/ubc/_hansen_ubc.py,sha256=_VmTUD3hlAylNnLWQW0wwhEEz17EM1WPGtfb9LtnrBk,5559
|
16
|
+
geolysis/bearing_capacity/ubc/_terzaghi_ubc.py,sha256=Vo1GXBTJWxfE3QZ1u6hMfw1P3VkHGKxlEdvLBr8h-7A,5272
|
17
|
+
geolysis/bearing_capacity/ubc/_vesic_ubc.py,sha256=ThyPHXRGbLHyhThMkUUp5ABknYj0K_xkwNiML_Ua0sM,5752
|
18
|
+
geolysis-0.11.0.dist-info/licenses/LICENSE.txt,sha256=ap6sMs3lT7ICbEXBhgihwH1BTCVcjmCQkIkwVnil1Ak,1065
|
19
|
+
geolysis-0.11.0.dist-info/METADATA,sha256=_03ifJZXSKZAdjP3HoazS_yqhYfueYBmlNRFKLkp7DI,6814
|
20
|
+
geolysis-0.11.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
21
|
+
geolysis-0.11.0.dist-info/top_level.txt,sha256=9mnQgOaCRr11dtXff8X-q3FfXjRONd6kHseSy5q2y8g,9
|
22
|
+
geolysis-0.11.0.dist-info/RECORD,,
|
geolysis-0.10.3.dist-info/RECORD
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
geolysis/__init__.py,sha256=5bIKjaVsOXYGZBsGc7vW_34hN_VEYPOV6XU_AD3cR2w,161
|
2
|
-
geolysis/foundation.py,sha256=khmZCa8V-UEqp7A4WlIwt8Oy5tVQdT0UsaLMuxEbDQU,12819
|
3
|
-
geolysis/soil_classifier.py,sha256=gPOl9Fr18r4aDtVBFK5KdWdsLIvpTLLMTt7YU49noSA,27442
|
4
|
-
geolysis/spt.py,sha256=_AWfs5Ho5ScCwPlVDNh6cuhcLOR4-u7Dr7UoagRlDoM,18620
|
5
|
-
geolysis/utils.py,sha256=UnfRaz0MXxBxipcyezYMsxl5LuUTPl_kTztNQ94B8gA,2461
|
6
|
-
geolysis/bearing_capacity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
geolysis/bearing_capacity/abc/__init__.py,sha256=QCSni6_QI059y3JF5UU9Gd_wAyVLmVEMR7ajq_EZQRg,518
|
8
|
-
geolysis/bearing_capacity/abc/_cohl/__init__.py,sha256=M1EBn2WMgtG-Dg-LT7N-OVke6upwL6plqyPCn3ebR0M,4110
|
9
|
-
geolysis/bearing_capacity/abc/_cohl/_core.py,sha256=YhU6wDVaMOxMUGQ0QHKCeD0eHHTj3la_R3iBBF1-hl0,1932
|
10
|
-
geolysis/bearing_capacity/abc/_cohl/bowles_abc.py,sha256=AC0OslIUZBxC5ClB0HNvLoVDwnt982l8OGPuxyE2uZ0,3153
|
11
|
-
geolysis/bearing_capacity/abc/_cohl/meyerhof_abc.py,sha256=Zf4X6YVrPMH5Sgm0bORbWe4RgfO-jVJBdeRWl8jBRH8,3056
|
12
|
-
geolysis/bearing_capacity/abc/_cohl/terzaghi_abc.py,sha256=za5Altz8uzIqY0RJML8FTCIIyRSyHN04j7y80zop6JA,4300
|
13
|
-
geolysis/bearing_capacity/ubc/__init__.py,sha256=5EtGLFW0vwCfUGxQDKPQJ687C9AKRlbYEPYb2aY2AgA,4578
|
14
|
-
geolysis/bearing_capacity/ubc/_core.py,sha256=GfE0ZzPqC5VJ8PakR5ZiFvsfSwuEYrEzuPOuVdLnz_Q,6570
|
15
|
-
geolysis/bearing_capacity/ubc/_hansen_ubc.py,sha256=aVu40WFCtvstWNq3x65Klb9am4UfJq00MtfaJYIwifI,6995
|
16
|
-
geolysis/bearing_capacity/ubc/_terzaghi_ubc.py,sha256=U9mt92glUuooXnd_NPOFDpEdG15bTdb_KPPXLu5zjPw,5503
|
17
|
-
geolysis/bearing_capacity/ubc/_vesic_ubc.py,sha256=a8TvlJCZ4AMU_YEVE0DEXb_Eo75uVOtOLDg-mC3zYlc,7034
|
18
|
-
geolysis-0.10.3.dist-info/licenses/LICENSE.txt,sha256=ap6sMs3lT7ICbEXBhgihwH1BTCVcjmCQkIkwVnil1Ak,1065
|
19
|
-
geolysis-0.10.3.dist-info/METADATA,sha256=YwAjtFsVSnX73jsroehg9CdhG9foeHNvMZjZMC2uUtk,6814
|
20
|
-
geolysis-0.10.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
21
|
-
geolysis-0.10.3.dist-info/top_level.txt,sha256=9mnQgOaCRr11dtXff8X-q3FfXjRONd6kHseSy5q2y8g,9
|
22
|
-
geolysis-0.10.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|