geolysis 0.4.3__py3-none-any.whl → 0.4.5__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 +5 -1
- geolysis/bearing_capacity/__init__.py +0 -0
- geolysis/bearing_capacity/abc/__init__.py +0 -0
- geolysis/bearing_capacity/abc/cohl/__init__.py +146 -0
- geolysis/bearing_capacity/abc/cohl/_core.py +55 -0
- geolysis/bearing_capacity/abc/cohl/bowles_abc.py +107 -0
- geolysis/bearing_capacity/abc/cohl/meyerhof_abc.py +107 -0
- geolysis/bearing_capacity/abc/cohl/terzaghi_abc.py +142 -0
- geolysis/bearing_capacity/ubc/__init__.py +160 -0
- geolysis/bearing_capacity/ubc/_core.py +192 -0
- geolysis/bearing_capacity/ubc/hansen_ubc.py +297 -0
- geolysis/bearing_capacity/ubc/terzaghi_ubc.py +259 -0
- geolysis/bearing_capacity/ubc/vesic_ubc.py +303 -0
- geolysis/foundation.py +51 -17
- geolysis/soil_classifier.py +26 -25
- geolysis/spt.py +196 -75
- geolysis/utils/__init__.py +100 -0
- geolysis/utils/validators.py +80 -0
- {geolysis-0.4.3.dist-info → geolysis-0.4.5.dist-info}/METADATA +40 -13
- geolysis-0.4.5.dist-info/RECORD +23 -0
- {geolysis-0.4.3.dist-info → geolysis-0.4.5.dist-info}/WHEEL +1 -1
- geolysis-0.4.3.dist-info/RECORD +0 -9
- {geolysis-0.4.3.dist-info → geolysis-0.4.5.dist-info/licenses}/LICENSE.txt +0 -0
- {geolysis-0.4.3.dist-info → geolysis-0.4.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,259 @@
|
|
1
|
+
""" Terzaghi ultimate bearing capacity module.
|
2
|
+
|
3
|
+
Classes
|
4
|
+
=======
|
5
|
+
|
6
|
+
.. autosummary::
|
7
|
+
:toctree: _autosummary
|
8
|
+
|
9
|
+
TerzaghiUBC4StripFooting
|
10
|
+
TerzaghiUBC4CircularFooting
|
11
|
+
TerzaghiUBC4SquareFooting
|
12
|
+
TerzaghiUBC4RectangularFooting
|
13
|
+
"""
|
14
|
+
from abc import ABC
|
15
|
+
|
16
|
+
from geolysis.utils import cos, cot, deg2rad, exp, isclose, pi, round_, tan
|
17
|
+
|
18
|
+
from ._core import UltimateBearingCapacity
|
19
|
+
|
20
|
+
__all__ = ["TerzaghiUBC4StripFooting",
|
21
|
+
"TerzaghiUBC4CircularFooting",
|
22
|
+
"TerzaghiUBC4SquareFooting",
|
23
|
+
"TerzaghiUBC4RectangularFooting"]
|
24
|
+
|
25
|
+
|
26
|
+
@round_
|
27
|
+
def n_c(friction_angle: float) -> float:
|
28
|
+
if isclose(friction_angle, 0.0):
|
29
|
+
return 5.7
|
30
|
+
return cot(friction_angle) * (n_q(friction_angle) - 1.0)
|
31
|
+
|
32
|
+
|
33
|
+
@round_
|
34
|
+
def n_q(friction_angle: float) -> float:
|
35
|
+
return (exp((3.0 * pi / 2.0 - deg2rad(friction_angle))
|
36
|
+
* tan(friction_angle))
|
37
|
+
/ (2.0 * (cos(45.0 + friction_angle / 2.0)) ** 2.0))
|
38
|
+
|
39
|
+
|
40
|
+
@round_
|
41
|
+
def n_gamma(friction_angle: float) -> float:
|
42
|
+
return (n_q(friction_angle) - 1.0) * tan(1.4 * friction_angle)
|
43
|
+
|
44
|
+
|
45
|
+
class TerzaghiUltimateBearingCapacity(UltimateBearingCapacity, ABC):
|
46
|
+
|
47
|
+
@property
|
48
|
+
def n_c(self) -> float:
|
49
|
+
r"""Bearing capacity factor :math:`N_c`.
|
50
|
+
|
51
|
+
:Equation:
|
52
|
+
|
53
|
+
.. math:: N_c = \cot(\phi) \cdot (N_q - 1)
|
54
|
+
"""
|
55
|
+
return n_c(self.friction_angle)
|
56
|
+
|
57
|
+
@property
|
58
|
+
def n_q(self) -> float:
|
59
|
+
r"""Bearing capacity factor :math:`N_q`.
|
60
|
+
|
61
|
+
:Equation:
|
62
|
+
|
63
|
+
.. math::
|
64
|
+
|
65
|
+
N_q = \dfrac{e^{(\frac{3\pi}{2} - \phi)\tan\phi}}
|
66
|
+
{2\cos^2(45 + \frac{\phi}{2})}
|
67
|
+
"""
|
68
|
+
return n_q(self.friction_angle)
|
69
|
+
|
70
|
+
@property
|
71
|
+
def n_gamma(self) -> float:
|
72
|
+
r"""Bearing capacity factor :math:`N_{\gamma}`.
|
73
|
+
|
74
|
+
:Equation:
|
75
|
+
|
76
|
+
.. math:: N_{\gamma} &= (N_q - 1) \cdot \tan(1.4\phi)
|
77
|
+
"""
|
78
|
+
return n_gamma(self.friction_angle)
|
79
|
+
|
80
|
+
|
81
|
+
class TerzaghiUBC4StripFooting(TerzaghiUltimateBearingCapacity):
|
82
|
+
r"""Ultimate bearing capacity for strip footing according to
|
83
|
+
``Terzaghi 1943``.
|
84
|
+
|
85
|
+
:Equation:
|
86
|
+
|
87
|
+
.. math:: q_u = cN_c + qN_q + 0.5 \gamma BN_{\gamma}
|
88
|
+
|
89
|
+
.. list-table::
|
90
|
+
:widths: auto
|
91
|
+
:header-rows: 1
|
92
|
+
|
93
|
+
* - Symbol
|
94
|
+
- Description
|
95
|
+
- Unit
|
96
|
+
* - :math:`q_u`
|
97
|
+
- Ultimate bearing capacity
|
98
|
+
- :math:`kPa`
|
99
|
+
* - :math:`c`
|
100
|
+
- Cohesion of soil
|
101
|
+
- :math:`kPa`
|
102
|
+
* - :math:`q`
|
103
|
+
- Overburden pressure of soil
|
104
|
+
- :math:`kPa`
|
105
|
+
* - :math:`\gamma`
|
106
|
+
- Unit weight of soil
|
107
|
+
- :math:`kN/m^3`
|
108
|
+
* - :math:`B`
|
109
|
+
- Width of foundation footing
|
110
|
+
- :math:`m`
|
111
|
+
* - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
|
112
|
+
- Bearing capacity factors
|
113
|
+
- —
|
114
|
+
"""
|
115
|
+
|
116
|
+
@round_
|
117
|
+
def bearing_capacity(self) -> float:
|
118
|
+
"""Calculates ultimate bearing capacity for strip footing."""
|
119
|
+
return (self._cohesion_term(1.0)
|
120
|
+
+ self._surcharge_term()
|
121
|
+
+ self._embedment_term(0.5))
|
122
|
+
|
123
|
+
|
124
|
+
class TerzaghiUBC4CircularFooting(TerzaghiUltimateBearingCapacity):
|
125
|
+
r"""Ultimate bearing capacity for circular footing according to
|
126
|
+
``Terzaghi 1943``.
|
127
|
+
|
128
|
+
:Equation:
|
129
|
+
|
130
|
+
.. math:: q_u = 1.3cN_c + qN_q + 0.3 \gamma BN_{\gamma}
|
131
|
+
|
132
|
+
.. list-table::
|
133
|
+
:widths: auto
|
134
|
+
:header-rows: 1
|
135
|
+
|
136
|
+
* - Symbol
|
137
|
+
- Description
|
138
|
+
- Unit
|
139
|
+
* - :math:`q_u`
|
140
|
+
- Ultimate bearing capacity
|
141
|
+
- :math:`kPa`
|
142
|
+
* - :math:`c`
|
143
|
+
- Cohesion of soil
|
144
|
+
- :math:`kPa`
|
145
|
+
* - :math:`q`
|
146
|
+
- Overburden pressure of soil
|
147
|
+
- :math:`kPa`
|
148
|
+
* - :math:`\gamma`
|
149
|
+
- Unit weight of soil
|
150
|
+
- :math:`kN/m^3`
|
151
|
+
* - :math:`B`
|
152
|
+
- Width of foundation footing
|
153
|
+
- :math:`m`
|
154
|
+
* - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
|
155
|
+
- Bearing capacity factors
|
156
|
+
- —
|
157
|
+
"""
|
158
|
+
|
159
|
+
@round_
|
160
|
+
def bearing_capacity(self) -> float:
|
161
|
+
"""Calculates ultimate bearing capacity for circular footing."""
|
162
|
+
return (self._cohesion_term(1.3)
|
163
|
+
+ self._surcharge_term()
|
164
|
+
+ self._embedment_term(0.3))
|
165
|
+
|
166
|
+
|
167
|
+
class TerzaghiUBC4RectangularFooting(TerzaghiUltimateBearingCapacity):
|
168
|
+
r"""Ultimate bearing capacity for rectangular footing according to
|
169
|
+
``Terzaghi 1943``.
|
170
|
+
|
171
|
+
:Equation:
|
172
|
+
|
173
|
+
.. math::
|
174
|
+
|
175
|
+
q_u = \left(1 + 0.3 \dfrac{B}{L} \right) c N_c + qN_q
|
176
|
+
+ \left(1 - 0.2 \dfrac{B}{L} \right) 0.5 B \gamma N_{\gamma}
|
177
|
+
|
178
|
+
.. list-table::
|
179
|
+
:widths: auto
|
180
|
+
:header-rows: 1
|
181
|
+
|
182
|
+
* - Symbol
|
183
|
+
- Description
|
184
|
+
- Unit
|
185
|
+
* - :math:`q_u`
|
186
|
+
- Ultimate bearing capacity
|
187
|
+
- :math:`kPa`
|
188
|
+
* - :math:`c`
|
189
|
+
- Cohesion of soil
|
190
|
+
- :math:`kPa`
|
191
|
+
* - :math:`q`
|
192
|
+
- Overburden pressure of soil
|
193
|
+
- :math:`kPa`
|
194
|
+
* - :math:`\gamma`
|
195
|
+
- Unit weight of soil
|
196
|
+
- :math:`kN/m^3`
|
197
|
+
* - :math:`B`
|
198
|
+
- Width of foundation footing
|
199
|
+
- :math:`m`
|
200
|
+
* - :math:`L`
|
201
|
+
- Length of foundation footing
|
202
|
+
- :math:`m`
|
203
|
+
* - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
|
204
|
+
- Bearing capacity factors
|
205
|
+
- —
|
206
|
+
"""
|
207
|
+
|
208
|
+
@round_
|
209
|
+
def bearing_capacity(self) -> float:
|
210
|
+
"""Calculates ultimate bearing capacity for rectangular footing."""
|
211
|
+
width = self.foundation_size.width
|
212
|
+
length = self.foundation_size.length
|
213
|
+
coh_coef = 1.0 + 0.3 * (width / length)
|
214
|
+
emb_coef = (1.0 - 0.2 * (width / length)) / 2.0
|
215
|
+
|
216
|
+
return (self._cohesion_term(coh_coef)
|
217
|
+
+ self._surcharge_term()
|
218
|
+
+ self._embedment_term(emb_coef))
|
219
|
+
|
220
|
+
|
221
|
+
class TerzaghiUBC4SquareFooting(TerzaghiUBC4RectangularFooting):
|
222
|
+
r"""Ultimate bearing capacity for square footing according to
|
223
|
+
``Terzaghi 1943``.
|
224
|
+
|
225
|
+
:Equation:
|
226
|
+
|
227
|
+
.. math:: q_u = 1.3cN_c + qN_q + 0.4 \gamma BN_{\gamma}
|
228
|
+
|
229
|
+
.. list-table::
|
230
|
+
:widths: auto
|
231
|
+
:header-rows: 1
|
232
|
+
|
233
|
+
* - Symbol
|
234
|
+
- Description
|
235
|
+
- Unit
|
236
|
+
* - :math:`q_u`
|
237
|
+
- Ultimate bearing capacity
|
238
|
+
- :math:`kPa`
|
239
|
+
* - :math:`c`
|
240
|
+
- Cohesion of soil
|
241
|
+
- :math:`kPa`
|
242
|
+
* - :math:`q`
|
243
|
+
- Overburden pressure of soil
|
244
|
+
- :math:`kPa`
|
245
|
+
* - :math:`\gamma`
|
246
|
+
- Unit weight of soil
|
247
|
+
- :math:`kN/m^3`
|
248
|
+
* - :math:`B`
|
249
|
+
- Width of foundation footing
|
250
|
+
- :math:`m`
|
251
|
+
* - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
|
252
|
+
- Bearing capacity factors
|
253
|
+
- —
|
254
|
+
"""
|
255
|
+
|
256
|
+
def bearing_capacity(self):
|
257
|
+
"""Calcalates ultimate bearing capacity for square footing.
|
258
|
+
"""
|
259
|
+
return super().bearing_capacity()
|
@@ -0,0 +1,303 @@
|
|
1
|
+
"""Vesic ultimate bearing capacity module.
|
2
|
+
|
3
|
+
Classes
|
4
|
+
=======
|
5
|
+
|
6
|
+
.. autosummary::
|
7
|
+
:toctree: _autosummary
|
8
|
+
|
9
|
+
VesicUltimateBearingCapacity
|
10
|
+
"""
|
11
|
+
from geolysis.foundation import Shape
|
12
|
+
from geolysis.utils import isclose, round_, sin, tan
|
13
|
+
|
14
|
+
from . import hansen_ubc
|
15
|
+
from ._core import UltimateBearingCapacity
|
16
|
+
|
17
|
+
__all__ = ["VesicUltimateBearingCapacity"]
|
18
|
+
|
19
|
+
|
20
|
+
@round_
|
21
|
+
def n_c(friction_angle: float) -> float:
|
22
|
+
return hansen_ubc.n_c(friction_angle)
|
23
|
+
|
24
|
+
|
25
|
+
@round_
|
26
|
+
def n_q(friction_angle: float) -> float:
|
27
|
+
return hansen_ubc.n_q(friction_angle)
|
28
|
+
|
29
|
+
|
30
|
+
@round_
|
31
|
+
def n_gamma(friction_angle: float) -> float:
|
32
|
+
return 2.0 * (n_q(friction_angle) + 1.0) * tan(friction_angle)
|
33
|
+
|
34
|
+
|
35
|
+
@round_
|
36
|
+
def s_c(friction_angle: float,
|
37
|
+
f_width: float,
|
38
|
+
f_length: float,
|
39
|
+
f_shape: Shape) -> float:
|
40
|
+
_n_q = n_q(friction_angle)
|
41
|
+
_n_c = n_c(friction_angle)
|
42
|
+
|
43
|
+
if f_shape == Shape.STRIP:
|
44
|
+
return 1.0
|
45
|
+
elif f_shape == Shape.RECTANGLE:
|
46
|
+
return 1.0 + (f_width / f_length) * (_n_q / _n_c)
|
47
|
+
else: # SQUARE, CIRCLE
|
48
|
+
return 1.0 + (_n_q / _n_c)
|
49
|
+
|
50
|
+
|
51
|
+
@round_
|
52
|
+
def s_q(friction_angle: float,
|
53
|
+
f_width: float,
|
54
|
+
f_length: float,
|
55
|
+
f_shape: Shape) -> float:
|
56
|
+
if f_shape == Shape.STRIP:
|
57
|
+
return 1.0
|
58
|
+
elif f_shape == Shape.RECTANGLE:
|
59
|
+
return 1.0 + (f_width / f_length) * tan(friction_angle)
|
60
|
+
else: # SQUARE, CIRCLE
|
61
|
+
return 1.0 + tan(friction_angle)
|
62
|
+
|
63
|
+
|
64
|
+
@round_
|
65
|
+
def s_gamma(f_width: float, f_length: float, f_shape: Shape) -> float:
|
66
|
+
if f_shape == Shape.STRIP:
|
67
|
+
return 1.0
|
68
|
+
elif f_shape == Shape.RECTANGLE:
|
69
|
+
return 1.0 - 0.4 * (f_width / f_length)
|
70
|
+
else: # SQUARE, CIRCLE
|
71
|
+
return 0.6
|
72
|
+
|
73
|
+
|
74
|
+
@round_
|
75
|
+
def d_c(f_depth: float, f_width: float) -> float:
|
76
|
+
return 1.0 + 0.4 * f_depth / f_width
|
77
|
+
|
78
|
+
|
79
|
+
@round_
|
80
|
+
def d_q(friction_angle: float, f_depth: float, f_width: float) -> float:
|
81
|
+
return (1.0 + 2.0 * tan(friction_angle)
|
82
|
+
* (1.0 - sin(friction_angle)) ** 2.0
|
83
|
+
* (f_depth / f_width))
|
84
|
+
|
85
|
+
|
86
|
+
@round_
|
87
|
+
def d_gamma() -> float:
|
88
|
+
return 1.0
|
89
|
+
|
90
|
+
|
91
|
+
@round_
|
92
|
+
def i_c(load_angle: float) -> float:
|
93
|
+
return (1.0 - load_angle / 90.0) ** 2.0
|
94
|
+
|
95
|
+
|
96
|
+
@round_
|
97
|
+
def i_q(load_angle: float) -> float:
|
98
|
+
return i_c(load_angle)
|
99
|
+
|
100
|
+
|
101
|
+
@round_
|
102
|
+
def i_gamma(friction_angle: float, load_angle: float) -> float:
|
103
|
+
if isclose(friction_angle, 0.0):
|
104
|
+
return 1.0
|
105
|
+
return (1.0 - load_angle / friction_angle) ** 2.0
|
106
|
+
|
107
|
+
|
108
|
+
class VesicUltimateBearingCapacity(UltimateBearingCapacity):
|
109
|
+
r"""Ultimate bearing capacity for soils according to ``Vesic (1973)``.
|
110
|
+
|
111
|
+
:Equation:
|
112
|
+
|
113
|
+
.. math::
|
114
|
+
|
115
|
+
q_u = cN_c s_c d_c i_c + qN_q s_q d_q i_q
|
116
|
+
+ 0.5 \gamma B N_{\gamma} s_{\gamma} d_{\gamma} i_{\gamma}
|
117
|
+
|
118
|
+
.. list-table::
|
119
|
+
:widths: auto
|
120
|
+
:header-rows: 1
|
121
|
+
|
122
|
+
* - Symbol
|
123
|
+
- Description
|
124
|
+
- Unit
|
125
|
+
* - :math:`q_u`
|
126
|
+
- Ultimate bearing capacity
|
127
|
+
- :math:`kPa`
|
128
|
+
* - :math:`c`
|
129
|
+
- Cohesion of soil
|
130
|
+
- :math:`kPa`
|
131
|
+
* - :math:`q`
|
132
|
+
- Overburden pressure of soil
|
133
|
+
- :math:`kPa`
|
134
|
+
* - :math:`\gamma`
|
135
|
+
- Unit weight of soil
|
136
|
+
- :math:`kN/m^3`
|
137
|
+
* - :math:`B`
|
138
|
+
- Width of foundation footing
|
139
|
+
- :math:`m`
|
140
|
+
* - :math:`N_c`, :math:`N_q`, :math:`N_{\gamma}`
|
141
|
+
- Bearing capacity factors
|
142
|
+
- —
|
143
|
+
* - :math:`s_c`, :math:`s_q`, :math:`s_{\gamma}`
|
144
|
+
- Shape factors
|
145
|
+
- —
|
146
|
+
* - :math:`d_c`, :math:`d_q`, :math:`d_{\gamma}`
|
147
|
+
- Depth factors
|
148
|
+
- —
|
149
|
+
* - :math:`i_c`, :math:`i_q`, :math:`i_{\gamma}`
|
150
|
+
- Inclination factors
|
151
|
+
- —
|
152
|
+
"""
|
153
|
+
|
154
|
+
@property
|
155
|
+
def n_c(self) -> float:
|
156
|
+
r"""Bearing capacity factor :math:`N_c`.
|
157
|
+
|
158
|
+
:Equation:
|
159
|
+
|
160
|
+
.. math:: N_c = \cot(\phi) \left(N_q - 1\right)
|
161
|
+
"""
|
162
|
+
return n_c(self.friction_angle)
|
163
|
+
|
164
|
+
@property
|
165
|
+
def n_q(self) -> float:
|
166
|
+
r"""Bearing capacity factor :math:`N_q`.
|
167
|
+
|
168
|
+
:Equation:
|
169
|
+
|
170
|
+
.. math:: N_q = \tan^2\left(45 + \frac{\phi}{2}\right) \cdot
|
171
|
+
e^{\pi \tan(\phi)}
|
172
|
+
"""
|
173
|
+
return n_q(self.friction_angle)
|
174
|
+
|
175
|
+
@property
|
176
|
+
def n_gamma(self) -> float:
|
177
|
+
r"""Bearing capacity factor :math:`N_{\gamma}`.
|
178
|
+
|
179
|
+
:Equation:
|
180
|
+
|
181
|
+
.. math:: N_{\gamma} = 2(N_q + 1) \tan(\phi)
|
182
|
+
"""
|
183
|
+
return n_gamma(self.friction_angle)
|
184
|
+
|
185
|
+
@property
|
186
|
+
def s_c(self) -> float:
|
187
|
+
r"""Shape factor :math:`S_c`.
|
188
|
+
|
189
|
+
:Equation:
|
190
|
+
|
191
|
+
.. math::
|
192
|
+
|
193
|
+
s_c &= 1.0 \rightarrow \text{Strip footing}
|
194
|
+
|
195
|
+
s_c &= 1 + \dfrac{B}{L} \cdot \dfrac{N_q}{N_c} \rightarrow
|
196
|
+
\text{Rectangular footing}
|
197
|
+
|
198
|
+
s_c &= 1 + \dfrac{N_q}{N_c} \rightarrow
|
199
|
+
\text{Square or circular footing}
|
200
|
+
"""
|
201
|
+
width, length, shape = self.foundation_size.footing_params()
|
202
|
+
return s_c(self.friction_angle, width, length, shape)
|
203
|
+
|
204
|
+
@property
|
205
|
+
def s_q(self) -> float:
|
206
|
+
r"""Shape factor :math:`S_q`.
|
207
|
+
|
208
|
+
:Equation:
|
209
|
+
|
210
|
+
.. math::
|
211
|
+
|
212
|
+
s_q &= 1.0 \rightarrow \text{Strip footing}
|
213
|
+
|
214
|
+
s_q &= 1 + \dfrac{B}{L} \cdot \tan(\phi) \rightarrow
|
215
|
+
\text{Rectangular footing}
|
216
|
+
|
217
|
+
s_q &= 1 + \tan(\phi) \rightarrow \text{Square or circular footing}
|
218
|
+
"""
|
219
|
+
width, length, shape = self.foundation_size.footing_params()
|
220
|
+
return s_q(self.friction_angle, width, length, shape)
|
221
|
+
|
222
|
+
@property
|
223
|
+
def s_gamma(self) -> float:
|
224
|
+
r"""Shape factor :math:`S_{\gamma}`.
|
225
|
+
|
226
|
+
:Equation:
|
227
|
+
|
228
|
+
.. math::
|
229
|
+
|
230
|
+
s_{\gamma} &= 1.0 \rightarrow \text{Strip footing}
|
231
|
+
|
232
|
+
s_{\gamma} &= 1.0 - 0.4 \dfrac{B}{L} \rightarrow
|
233
|
+
\text{Rectangular footing}
|
234
|
+
|
235
|
+
s_{\gamma} &= 0.6 \rightarrow \text{Square or circular footing}
|
236
|
+
"""
|
237
|
+
width, length, shape = self.foundation_size.footing_params()
|
238
|
+
return s_gamma(width, length, shape)
|
239
|
+
|
240
|
+
@property
|
241
|
+
def d_c(self) -> float:
|
242
|
+
r"""Depth factor :math:`D_c`.
|
243
|
+
|
244
|
+
:Equation:
|
245
|
+
|
246
|
+
.. math:: d_c = 1 + 0.4 \dfrac{D_f}{B}
|
247
|
+
"""
|
248
|
+
depth, width = self.foundation_size.depth, self.foundation_size.width
|
249
|
+
return d_c(depth, width)
|
250
|
+
|
251
|
+
@property
|
252
|
+
def d_q(self) -> float:
|
253
|
+
r"""Depth factor :math:`D_q`.
|
254
|
+
|
255
|
+
:Equation:
|
256
|
+
|
257
|
+
.. math::
|
258
|
+
|
259
|
+
d_q = 1 + 2 \tan(\phi) \cdot (1 - \sin(\phi))^2
|
260
|
+
\cdot \dfrac{D_f}{B}
|
261
|
+
"""
|
262
|
+
depth, width = self.foundation_size.depth, self.foundation_size.width
|
263
|
+
return d_q(self.friction_angle, depth, width)
|
264
|
+
|
265
|
+
@property
|
266
|
+
def d_gamma(self) -> float:
|
267
|
+
r"""Depth factor :math:`D_{\gamma}`.
|
268
|
+
|
269
|
+
:Equation:
|
270
|
+
|
271
|
+
.. math:: d_{\gamma} = 1.0
|
272
|
+
"""
|
273
|
+
return d_gamma()
|
274
|
+
|
275
|
+
@property
|
276
|
+
def i_c(self) -> float:
|
277
|
+
r"""Inclination factor :math:`I_c`.
|
278
|
+
|
279
|
+
:Equation:
|
280
|
+
|
281
|
+
.. math:: i_c = (1 - \dfrac{\alpha}{90})^2
|
282
|
+
"""
|
283
|
+
return i_c(self.load_angle)
|
284
|
+
|
285
|
+
@property
|
286
|
+
def i_q(self) -> float:
|
287
|
+
r"""Inclination factor :math:`I_q`.
|
288
|
+
|
289
|
+
:Equation:
|
290
|
+
|
291
|
+
.. math:: i_q = (1 - \dfrac{\alpha}{90})^2
|
292
|
+
"""
|
293
|
+
return i_q(self.load_angle)
|
294
|
+
|
295
|
+
@property
|
296
|
+
def i_gamma(self) -> float:
|
297
|
+
r"""Inclination factor :math:`I_{\gamma}`.
|
298
|
+
|
299
|
+
:Equation:
|
300
|
+
|
301
|
+
.. math:: i_{\gamma} = \left(1 - \dfrac{\alpha}{\phi} \right)^2
|
302
|
+
"""
|
303
|
+
return i_gamma(self.friction_angle, self.load_angle)
|