geolysis 0.4.5__tar.gz → 0.6.0__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.5 → geolysis-0.6.0}/PKG-INFO +1 -1
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/__init__.py +1 -1
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/abc/cohl/__init__.py +13 -27
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/abc/cohl/_core.py +1 -1
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/abc/cohl/bowles_abc.py +2 -13
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/abc/cohl/meyerhof_abc.py +2 -13
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/abc/cohl/terzaghi_abc.py +2 -13
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/ubc/__init__.py +11 -22
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/ubc/_core.py +22 -5
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/ubc/hansen_ubc.py +12 -22
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/ubc/terzaghi_ubc.py +6 -19
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/ubc/vesic_ubc.py +12 -22
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/foundation.py +16 -48
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/soil_classifier.py +17 -57
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/spt.py +34 -102
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/utils/__init__.py +26 -14
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/utils/validators.py +19 -19
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis.egg-info/PKG-INFO +1 -1
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis.egg-info/SOURCES.txt +1 -3
- {geolysis-0.4.5 → geolysis-0.6.0}/tests/test_spt.py +13 -22
- geolysis-0.4.5/tests/test_utils.py +0 -41
- geolysis-0.4.5/tests/test_validators.py +0 -24
- {geolysis-0.4.5 → geolysis-0.6.0}/LICENSE.txt +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/README.md +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/__init__.py +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis/bearing_capacity/abc/__init__.py +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis.egg-info/dependency_links.txt +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis.egg-info/requires.txt +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/geolysis.egg-info/top_level.txt +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/pyproject.toml +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/setup.cfg +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/setup.py +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/tests/test_foundation.py +0 -0
- {geolysis-0.4.5 → geolysis-0.6.0}/tests/test_soil_classifier.py +0 -0
@@ -1,28 +1,12 @@
|
|
1
|
-
"""
|
2
|
-
|
3
|
-
|
4
|
-
=====
|
5
|
-
|
6
|
-
.. autosummary::
|
7
|
-
:toctree: _autosummary
|
8
|
-
:nosignatures:
|
9
|
-
|
10
|
-
ABCType
|
11
|
-
|
12
|
-
Functions
|
13
|
-
=========
|
14
|
-
|
15
|
-
.. autosummary::
|
16
|
-
:toctree: _autosummary
|
17
|
-
|
18
|
-
create_allowable_bearing_capacity
|
1
|
+
"""This package provides a factory function and utilities for creating
|
2
|
+
allowable bearing capacity calculations using methods like Bowles, Meyerhof,
|
3
|
+
and Terzaghi for various foundation types and shapes.
|
19
4
|
"""
|
20
|
-
|
21
5
|
import enum
|
22
6
|
from typing import Optional
|
23
7
|
|
24
8
|
from geolysis.foundation import FoundationType, Shape, create_foundation
|
25
|
-
from geolysis.utils import enum_repr, inf
|
9
|
+
from geolysis.utils import enum_repr, inf, ErrorMsg
|
26
10
|
|
27
11
|
from ._core import AllowableBearingCapacity
|
28
12
|
from .bowles_abc import BowlesABC4MatFoundation, BowlesABC4PadFoundation
|
@@ -79,14 +63,14 @@ def create_allowable_bearing_capacity(corrected_spt_n_value: float,
|
|
79
63
|
:type ground_water_level: float, optional
|
80
64
|
|
81
65
|
:param shape: Shape of foundation footing, defaults to
|
82
|
-
:
|
66
|
+
:py:enum:mem:`~geolysis.foundation.Shape.SQUARE`.
|
83
67
|
:type shape: str, optional
|
84
68
|
|
85
69
|
:param foundation_type: Type of foundation, defaults to "pad".
|
86
70
|
:type foundation_type: FoundationType | str, optional
|
87
71
|
|
88
72
|
:param abc_type: Type of allowable bearing capacity calculation to apply.
|
89
|
-
Available values can be found in :
|
73
|
+
Available values can be found in :py:enum:`ABCType`,
|
90
74
|
defaults to None.
|
91
75
|
:type abc_type: ABCType | str, optional
|
92
76
|
|
@@ -96,8 +80,10 @@ def create_allowable_bearing_capacity(corrected_spt_n_value: float,
|
|
96
80
|
footing.
|
97
81
|
:raises ValueError: Raised if an invalid footing ``shape`` is provided.
|
98
82
|
"""
|
99
|
-
|
100
|
-
|
83
|
+
|
84
|
+
msg = ErrorMsg(param_name="abc_type",
|
85
|
+
param_value=abc_type,
|
86
|
+
param_type=ABCType)
|
101
87
|
|
102
88
|
if abc_type is None:
|
103
89
|
raise ValueError(msg)
|
@@ -107,12 +93,12 @@ def create_allowable_bearing_capacity(corrected_spt_n_value: float,
|
|
107
93
|
except ValueError as e:
|
108
94
|
raise ValueError(msg) from e
|
109
95
|
|
110
|
-
msg = (f"{foundation_type=} is not supported, Supported "
|
111
|
-
f"types are: {list(FoundationType)}")
|
112
|
-
|
113
96
|
try:
|
114
97
|
foundation_type = FoundationType(str(foundation_type).casefold())
|
115
98
|
except ValueError as e:
|
99
|
+
msg = ErrorMsg(param_name="foundation_type",
|
100
|
+
param_value=foundation_type,
|
101
|
+
param_type=FoundationType)
|
116
102
|
raise ValueError(msg) from e
|
117
103
|
|
118
104
|
# exception from create_foundation will automaatically propagate
|
@@ -1,14 +1,3 @@
|
|
1
|
-
""" Bowles allowable bearing capacity.
|
2
|
-
|
3
|
-
Classes
|
4
|
-
=======
|
5
|
-
|
6
|
-
.. autosummary::
|
7
|
-
:toctree: _autosummary
|
8
|
-
|
9
|
-
BowlesABC4PadFoundation
|
10
|
-
BowlesABC4MatFoundation
|
11
|
-
"""
|
12
1
|
from geolysis.foundation import FoundationSize
|
13
2
|
from geolysis.utils import round_
|
14
3
|
|
@@ -63,7 +52,7 @@ class BowlesABC4PadFoundation(AllowableBearingCapacity):
|
|
63
52
|
tol_settlement=tol_settlement,
|
64
53
|
foundation_size=foundation_size)
|
65
54
|
|
66
|
-
@round_
|
55
|
+
@round_(ndigits=2)
|
67
56
|
def bearing_capacity(self) -> float:
|
68
57
|
"""Calculate the allowable bearing capacity of the pad foundation."""
|
69
58
|
n_corr = self.corrected_spt_n_value
|
@@ -100,7 +89,7 @@ class BowlesABC4MatFoundation(BowlesABC4PadFoundation):
|
|
100
89
|
=================== ====================================== ===========
|
101
90
|
"""
|
102
91
|
|
103
|
-
@round_
|
92
|
+
@round_(ndigits=2)
|
104
93
|
def bearing_capacity(self) -> float:
|
105
94
|
"""Calculate the allowable bearing capacity of the mat foundation."""
|
106
95
|
n_corr = self.corrected_spt_n_value
|
@@ -1,14 +1,3 @@
|
|
1
|
-
""" Meyerhof allowable bearing capacity.
|
2
|
-
|
3
|
-
Classes
|
4
|
-
=======
|
5
|
-
|
6
|
-
.. autosummary::
|
7
|
-
:toctree: _autosummary
|
8
|
-
|
9
|
-
MeyerhofABC4PadFoundation
|
10
|
-
MeyerhofABC4MatFoundation
|
11
|
-
"""
|
12
1
|
from geolysis.foundation import FoundationSize
|
13
2
|
from geolysis.utils import round_
|
14
3
|
|
@@ -63,7 +52,7 @@ class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
|
|
63
52
|
tol_settlement=tol_settlement,
|
64
53
|
foundation_size=foundation_size)
|
65
54
|
|
66
|
-
@round_
|
55
|
+
@round_(ndigits=2)
|
67
56
|
def bearing_capacity(self):
|
68
57
|
"""Calculates the allowable bearing capacity of the pad foundation."""
|
69
58
|
n_corr = self.corrected_spt_n_value
|
@@ -100,7 +89,7 @@ class MeyerhofABC4MatFoundation(MeyerhofABC4PadFoundation):
|
|
100
89
|
=================== ====================================== ===========
|
101
90
|
"""
|
102
91
|
|
103
|
-
@round_
|
92
|
+
@round_(ndigits=2)
|
104
93
|
def bearing_capacity(self):
|
105
94
|
"""Calculate the allowable bearing capacity of the mat foundation."""
|
106
95
|
n_corr = self.corrected_spt_n_value
|
@@ -1,14 +1,3 @@
|
|
1
|
-
"""Terzaghi allowable bearing capacity.
|
2
|
-
|
3
|
-
Classes
|
4
|
-
=======
|
5
|
-
|
6
|
-
.. autosummary::
|
7
|
-
:toctree: _autosummary
|
8
|
-
|
9
|
-
TerzaghiABC4PadFoundation
|
10
|
-
TerzaghiABC4MatFoundation
|
11
|
-
"""
|
12
1
|
from geolysis.foundation import FoundationSize
|
13
2
|
from geolysis.utils import round_
|
14
3
|
|
@@ -92,7 +81,7 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
|
|
92
81
|
|
93
82
|
return min(cw, 2.0)
|
94
83
|
|
95
|
-
@round_
|
84
|
+
@round_(ndigits=2)
|
96
85
|
def bearing_capacity(self):
|
97
86
|
"""Calculates the allowable bearing capacity of the pad foundation."""
|
98
87
|
n_corr = self.corrected_spt_n_value
|
@@ -135,7 +124,7 @@ class TerzaghiABC4MatFoundation(TerzaghiABC4PadFoundation):
|
|
135
124
|
=================== ====================================== ===========
|
136
125
|
"""
|
137
126
|
|
138
|
-
@round_
|
127
|
+
@round_(ndigits=2)
|
139
128
|
def bearing_capacity(self):
|
140
129
|
"""Calculates the allowable bearing capacity of the mat foundation."""
|
141
130
|
n_corr = self.corrected_spt_n_value
|
@@ -1,33 +1,20 @@
|
|
1
|
-
"""
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
.. autosummary::
|
7
|
-
:toctree: _autosummary
|
8
|
-
:nosignatures:
|
9
|
-
|
10
|
-
UBCType
|
11
|
-
|
12
|
-
Functions
|
13
|
-
=========
|
14
|
-
|
15
|
-
.. autosummary::
|
16
|
-
:toctree: _autosummary
|
17
|
-
|
18
|
-
create_ultimate_bearing_capacity
|
1
|
+
"""
|
2
|
+
This package provides a factory function and utilities for creating ultimate
|
3
|
+
bearing capacity calculations using methods like Hansen, Terzaghi, and Vesic
|
4
|
+
for various foundation shapes.
|
19
5
|
"""
|
20
6
|
import enum
|
21
7
|
from typing import Optional
|
22
8
|
|
23
9
|
from geolysis.foundation import Shape, create_foundation
|
24
|
-
from geolysis.utils import enum_repr
|
10
|
+
from geolysis.utils import enum_repr, ErrorMsg
|
25
11
|
|
26
12
|
from ._core import UltimateBearingCapacity
|
27
13
|
from .hansen_ubc import HansenUltimateBearingCapacity
|
28
14
|
from .terzaghi_ubc import (TerzaghiUBC4CircularFooting,
|
29
15
|
TerzaghiUBC4RectangularFooting,
|
30
|
-
TerzaghiUBC4SquareFooting,
|
16
|
+
TerzaghiUBC4SquareFooting,
|
17
|
+
TerzaghiUBC4StripFooting)
|
31
18
|
from .vesic_ubc import VesicUltimateBearingCapacity
|
32
19
|
|
33
20
|
__all__ = ["UBCType",
|
@@ -118,8 +105,10 @@ def create_ultimate_bearing_capacity(friction_angle: float,
|
|
118
105
|
footing.
|
119
106
|
:raises ValueError: Raised if an invalid footing shape is provided.
|
120
107
|
"""
|
121
|
-
|
122
|
-
|
108
|
+
|
109
|
+
msg = ErrorMsg(param_name="ubc_type",
|
110
|
+
param_value=ubc_type,
|
111
|
+
param_type=UBCType)
|
123
112
|
|
124
113
|
if ubc_type is None:
|
125
114
|
raise ValueError(msg)
|
@@ -43,11 +43,20 @@ class UltimateBearingCapacity(ABC):
|
|
43
43
|
|
44
44
|
@property
|
45
45
|
def friction_angle(self) -> float:
|
46
|
-
"""Return friction angle for local shear in the case of local shear
|
46
|
+
r"""Return friction angle for local shear in the case of local shear
|
47
47
|
failure or general shear in the case of general shear failure.
|
48
|
+
|
49
|
+
:Equation:
|
50
|
+
|
51
|
+
In the case of local shear failure:
|
52
|
+
|
53
|
+
.. math::
|
54
|
+
|
55
|
+
\phi' = \tan^{-1} \left(\frac{2}{3} \tan \phi\right)
|
56
|
+
|
48
57
|
"""
|
49
58
|
if self.apply_local_shear:
|
50
|
-
return arctan((2 / 3) * tan(self._friction_angle))
|
59
|
+
return arctan((2.0 / 3.0) * tan(self._friction_angle))
|
51
60
|
return self._friction_angle
|
52
61
|
|
53
62
|
@friction_angle.setter
|
@@ -57,8 +66,16 @@ class UltimateBearingCapacity(ABC):
|
|
57
66
|
|
58
67
|
@property
|
59
68
|
def cohesion(self) -> float:
|
60
|
-
"""Return cohesion for local shear in the case of local shear failure
|
69
|
+
r"""Return cohesion for local shear in the case of local shear failure
|
61
70
|
or general shear in the case of general shear failure.
|
71
|
+
|
72
|
+
:Equation:
|
73
|
+
|
74
|
+
In the case of local shear failure:
|
75
|
+
|
76
|
+
.. math::
|
77
|
+
|
78
|
+
C^{'} = \dfrac{2}{3} \cdot C
|
62
79
|
"""
|
63
80
|
if self.apply_local_shear:
|
64
81
|
return (2.0 / 3.0) * self._cohesion
|
@@ -169,8 +186,8 @@ class UltimateBearingCapacity(ABC):
|
|
169
186
|
return (coef * self.moist_unit_wgt * width * self.n_gamma
|
170
187
|
* self.s_gamma * self.d_gamma * self.i_gamma * water_corr)
|
171
188
|
|
172
|
-
@round_
|
173
|
-
def bearing_capacity(self):
|
189
|
+
@round_(ndigits=2)
|
190
|
+
def bearing_capacity(self) -> float:
|
174
191
|
"""Calculates the ultimate bearing capacity."""
|
175
192
|
return (self._cohesion_term(1.0)
|
176
193
|
+ self._surcharge_term()
|
@@ -1,13 +1,3 @@
|
|
1
|
-
""" Hansen ultimate bearing capacity module.
|
2
|
-
|
3
|
-
Classes
|
4
|
-
=======
|
5
|
-
|
6
|
-
.. autosummary::
|
7
|
-
:toctree: _autosummary
|
8
|
-
|
9
|
-
HansenUltimateBearingCapacity
|
10
|
-
"""
|
11
1
|
from geolysis.foundation import Shape
|
12
2
|
from geolysis.utils import cos, cot, exp, isclose, pi, round_, sin, tan
|
13
3
|
|
@@ -16,25 +6,25 @@ from ._core import UltimateBearingCapacity
|
|
16
6
|
__all__ = ["HansenUltimateBearingCapacity"]
|
17
7
|
|
18
8
|
|
19
|
-
@round_
|
9
|
+
@round_(ndigits=2)
|
20
10
|
def n_c(friction_angle: float) -> float:
|
21
11
|
if isclose(friction_angle, 0.0):
|
22
12
|
return 5.14
|
23
13
|
return cot(friction_angle) * (n_q(friction_angle) - 1.0)
|
24
14
|
|
25
15
|
|
26
|
-
@round_
|
16
|
+
@round_(ndigits=2)
|
27
17
|
def n_q(friction_angle: float) -> float:
|
28
18
|
return (tan(45.0 + friction_angle / 2.0) ** 2.0
|
29
19
|
* exp(pi * tan(friction_angle)))
|
30
20
|
|
31
21
|
|
32
|
-
@round_
|
22
|
+
@round_(ndigits=2)
|
33
23
|
def n_gamma(friction_angle: float) -> float:
|
34
24
|
return 1.8 * (n_q(friction_angle) - 1.0) * tan(friction_angle)
|
35
25
|
|
36
26
|
|
37
|
-
@round_
|
27
|
+
@round_(ndigits=2)
|
38
28
|
def s_c(f_width: float, f_length: float, f_shape: Shape) -> float:
|
39
29
|
if f_shape == Shape.STRIP:
|
40
30
|
return 1.0
|
@@ -44,7 +34,7 @@ def s_c(f_width: float, f_length: float, f_shape: Shape) -> float:
|
|
44
34
|
return 1.3
|
45
35
|
|
46
36
|
|
47
|
-
@round_
|
37
|
+
@round_(ndigits=2)
|
48
38
|
def s_q(f_width: float, f_length: float, f_shape: Shape) -> float:
|
49
39
|
if f_shape == Shape.STRIP:
|
50
40
|
return 1.0
|
@@ -54,7 +44,7 @@ def s_q(f_width: float, f_length: float, f_shape: Shape) -> float:
|
|
54
44
|
return 1.2
|
55
45
|
|
56
46
|
|
57
|
-
@round_
|
47
|
+
@round_(ndigits=2)
|
58
48
|
def s_gamma(f_width: float, f_length: float, f_shape: Shape) -> float:
|
59
49
|
if f_shape == Shape.STRIP:
|
60
50
|
return 1.0
|
@@ -66,22 +56,22 @@ def s_gamma(f_width: float, f_length: float, f_shape: Shape) -> float:
|
|
66
56
|
return 0.6
|
67
57
|
|
68
58
|
|
69
|
-
@round_
|
59
|
+
@round_(ndigits=2)
|
70
60
|
def d_c(f_depth: float, f_width: float) -> float:
|
71
61
|
return 1.0 + 0.35 * f_depth / f_width
|
72
62
|
|
73
63
|
|
74
|
-
@round_
|
64
|
+
@round_(ndigits=2)
|
75
65
|
def d_q(f_depth: float, f_width: float) -> float:
|
76
66
|
return d_c(f_depth, f_width)
|
77
67
|
|
78
68
|
|
79
|
-
@round_
|
69
|
+
@round_(ndigits=2)
|
80
70
|
def d_gamma() -> float:
|
81
71
|
return 1.0
|
82
72
|
|
83
73
|
|
84
|
-
@round_
|
74
|
+
@round_(ndigits=2)
|
85
75
|
def i_c(cohesion: float,
|
86
76
|
load_angle: float,
|
87
77
|
f_width: float,
|
@@ -89,12 +79,12 @@ def i_c(cohesion: float,
|
|
89
79
|
return 1.0 - sin(load_angle) / (2.0 * cohesion * f_width * f_length)
|
90
80
|
|
91
81
|
|
92
|
-
@round_
|
82
|
+
@round_(ndigits=2)
|
93
83
|
def i_q(load_angle: float) -> float:
|
94
84
|
return 1.0 - (1.5 * sin(load_angle)) / cos(load_angle)
|
95
85
|
|
96
86
|
|
97
|
-
@round_
|
87
|
+
@round_(ndigits=2)
|
98
88
|
def i_gamma(load_angle: float) -> float:
|
99
89
|
return i_q(load_angle) ** 2.0
|
100
90
|
|
@@ -1,16 +1,3 @@
|
|
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
1
|
from abc import ABC
|
15
2
|
|
16
3
|
from geolysis.utils import cos, cot, deg2rad, exp, isclose, pi, round_, tan
|
@@ -23,21 +10,21 @@ __all__ = ["TerzaghiUBC4StripFooting",
|
|
23
10
|
"TerzaghiUBC4RectangularFooting"]
|
24
11
|
|
25
12
|
|
26
|
-
@round_
|
13
|
+
@round_(ndigits=2)
|
27
14
|
def n_c(friction_angle: float) -> float:
|
28
15
|
if isclose(friction_angle, 0.0):
|
29
16
|
return 5.7
|
30
17
|
return cot(friction_angle) * (n_q(friction_angle) - 1.0)
|
31
18
|
|
32
19
|
|
33
|
-
@round_
|
20
|
+
@round_(ndigits=2)
|
34
21
|
def n_q(friction_angle: float) -> float:
|
35
22
|
return (exp((3.0 * pi / 2.0 - deg2rad(friction_angle))
|
36
23
|
* tan(friction_angle))
|
37
24
|
/ (2.0 * (cos(45.0 + friction_angle / 2.0)) ** 2.0))
|
38
25
|
|
39
26
|
|
40
|
-
@round_
|
27
|
+
@round_(ndigits=2)
|
41
28
|
def n_gamma(friction_angle: float) -> float:
|
42
29
|
return (n_q(friction_angle) - 1.0) * tan(1.4 * friction_angle)
|
43
30
|
|
@@ -113,7 +100,7 @@ class TerzaghiUBC4StripFooting(TerzaghiUltimateBearingCapacity):
|
|
113
100
|
- —
|
114
101
|
"""
|
115
102
|
|
116
|
-
@round_
|
103
|
+
@round_(ndigits=2)
|
117
104
|
def bearing_capacity(self) -> float:
|
118
105
|
"""Calculates ultimate bearing capacity for strip footing."""
|
119
106
|
return (self._cohesion_term(1.0)
|
@@ -156,7 +143,7 @@ class TerzaghiUBC4CircularFooting(TerzaghiUltimateBearingCapacity):
|
|
156
143
|
- —
|
157
144
|
"""
|
158
145
|
|
159
|
-
@round_
|
146
|
+
@round_(ndigits=2)
|
160
147
|
def bearing_capacity(self) -> float:
|
161
148
|
"""Calculates ultimate bearing capacity for circular footing."""
|
162
149
|
return (self._cohesion_term(1.3)
|
@@ -205,7 +192,7 @@ class TerzaghiUBC4RectangularFooting(TerzaghiUltimateBearingCapacity):
|
|
205
192
|
- —
|
206
193
|
"""
|
207
194
|
|
208
|
-
@round_
|
195
|
+
@round_(ndigits=2)
|
209
196
|
def bearing_capacity(self) -> float:
|
210
197
|
"""Calculates ultimate bearing capacity for rectangular footing."""
|
211
198
|
width = self.foundation_size.width
|
@@ -1,13 +1,3 @@
|
|
1
|
-
"""Vesic ultimate bearing capacity module.
|
2
|
-
|
3
|
-
Classes
|
4
|
-
=======
|
5
|
-
|
6
|
-
.. autosummary::
|
7
|
-
:toctree: _autosummary
|
8
|
-
|
9
|
-
VesicUltimateBearingCapacity
|
10
|
-
"""
|
11
1
|
from geolysis.foundation import Shape
|
12
2
|
from geolysis.utils import isclose, round_, sin, tan
|
13
3
|
|
@@ -17,22 +7,22 @@ from ._core import UltimateBearingCapacity
|
|
17
7
|
__all__ = ["VesicUltimateBearingCapacity"]
|
18
8
|
|
19
9
|
|
20
|
-
@round_
|
10
|
+
@round_(ndigits=2)
|
21
11
|
def n_c(friction_angle: float) -> float:
|
22
12
|
return hansen_ubc.n_c(friction_angle)
|
23
13
|
|
24
14
|
|
25
|
-
@round_
|
15
|
+
@round_(ndigits=2)
|
26
16
|
def n_q(friction_angle: float) -> float:
|
27
17
|
return hansen_ubc.n_q(friction_angle)
|
28
18
|
|
29
19
|
|
30
|
-
@round_
|
20
|
+
@round_(ndigits=2)
|
31
21
|
def n_gamma(friction_angle: float) -> float:
|
32
22
|
return 2.0 * (n_q(friction_angle) + 1.0) * tan(friction_angle)
|
33
23
|
|
34
24
|
|
35
|
-
@round_
|
25
|
+
@round_(ndigits=2)
|
36
26
|
def s_c(friction_angle: float,
|
37
27
|
f_width: float,
|
38
28
|
f_length: float,
|
@@ -48,7 +38,7 @@ def s_c(friction_angle: float,
|
|
48
38
|
return 1.0 + (_n_q / _n_c)
|
49
39
|
|
50
40
|
|
51
|
-
@round_
|
41
|
+
@round_(ndigits=2)
|
52
42
|
def s_q(friction_angle: float,
|
53
43
|
f_width: float,
|
54
44
|
f_length: float,
|
@@ -61,7 +51,7 @@ def s_q(friction_angle: float,
|
|
61
51
|
return 1.0 + tan(friction_angle)
|
62
52
|
|
63
53
|
|
64
|
-
@round_
|
54
|
+
@round_(ndigits=2)
|
65
55
|
def s_gamma(f_width: float, f_length: float, f_shape: Shape) -> float:
|
66
56
|
if f_shape == Shape.STRIP:
|
67
57
|
return 1.0
|
@@ -71,34 +61,34 @@ def s_gamma(f_width: float, f_length: float, f_shape: Shape) -> float:
|
|
71
61
|
return 0.6
|
72
62
|
|
73
63
|
|
74
|
-
@round_
|
64
|
+
@round_(ndigits=2)
|
75
65
|
def d_c(f_depth: float, f_width: float) -> float:
|
76
66
|
return 1.0 + 0.4 * f_depth / f_width
|
77
67
|
|
78
68
|
|
79
|
-
@round_
|
69
|
+
@round_(ndigits=2)
|
80
70
|
def d_q(friction_angle: float, f_depth: float, f_width: float) -> float:
|
81
71
|
return (1.0 + 2.0 * tan(friction_angle)
|
82
72
|
* (1.0 - sin(friction_angle)) ** 2.0
|
83
73
|
* (f_depth / f_width))
|
84
74
|
|
85
75
|
|
86
|
-
@round_
|
76
|
+
@round_(ndigits=2)
|
87
77
|
def d_gamma() -> float:
|
88
78
|
return 1.0
|
89
79
|
|
90
80
|
|
91
|
-
@round_
|
81
|
+
@round_(ndigits=2)
|
92
82
|
def i_c(load_angle: float) -> float:
|
93
83
|
return (1.0 - load_angle / 90.0) ** 2.0
|
94
84
|
|
95
85
|
|
96
|
-
@round_
|
86
|
+
@round_(ndigits=2)
|
97
87
|
def i_q(load_angle: float) -> float:
|
98
88
|
return i_c(load_angle)
|
99
89
|
|
100
90
|
|
101
|
-
@round_
|
91
|
+
@round_(ndigits=2)
|
102
92
|
def i_gamma(friction_angle: float, load_angle: float) -> float:
|
103
93
|
if isclose(friction_angle, 0.0):
|
104
94
|
return 1.0
|