geolysis 0.5.0__tar.gz → 0.6.1__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.
Files changed (34) hide show
  1. {geolysis-0.5.0 → geolysis-0.6.1}/PKG-INFO +1 -1
  2. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/__init__.py +1 -1
  3. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/abc/cohl/__init__.py +13 -27
  4. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/abc/cohl/_core.py +1 -1
  5. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/abc/cohl/bowles_abc.py +2 -13
  6. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/abc/cohl/meyerhof_abc.py +2 -13
  7. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/abc/cohl/terzaghi_abc.py +2 -13
  8. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/ubc/__init__.py +9 -21
  9. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/ubc/_core.py +22 -5
  10. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/ubc/hansen_ubc.py +12 -22
  11. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/ubc/terzaghi_ubc.py +6 -19
  12. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/ubc/vesic_ubc.py +12 -22
  13. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/foundation.py +16 -48
  14. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/soil_classifier.py +17 -57
  15. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/spt.py +34 -102
  16. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/utils/__init__.py +26 -14
  17. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/utils/validators.py +19 -19
  18. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis.egg-info/PKG-INFO +1 -1
  19. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis.egg-info/SOURCES.txt +1 -3
  20. {geolysis-0.5.0 → geolysis-0.6.1}/tests/test_foundation.py +3 -5
  21. {geolysis-0.5.0 → geolysis-0.6.1}/tests/test_spt.py +16 -32
  22. geolysis-0.5.0/tests/test_utils.py +0 -41
  23. geolysis-0.5.0/tests/test_validators.py +0 -24
  24. {geolysis-0.5.0 → geolysis-0.6.1}/LICENSE.txt +0 -0
  25. {geolysis-0.5.0 → geolysis-0.6.1}/README.md +0 -0
  26. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/__init__.py +0 -0
  27. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis/bearing_capacity/abc/__init__.py +0 -0
  28. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis.egg-info/dependency_links.txt +0 -0
  29. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis.egg-info/requires.txt +0 -0
  30. {geolysis-0.5.0 → geolysis-0.6.1}/geolysis.egg-info/top_level.txt +0 -0
  31. {geolysis-0.5.0 → geolysis-0.6.1}/pyproject.toml +0 -0
  32. {geolysis-0.5.0 → geolysis-0.6.1}/setup.cfg +0 -0
  33. {geolysis-0.5.0 → geolysis-0.6.1}/setup.py +0 -0
  34. {geolysis-0.5.0 → geolysis-0.6.1}/tests/test_soil_classifier.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geolysis
3
- Version: 0.5.0
3
+ Version: 0.6.1
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
@@ -1,5 +1,5 @@
1
1
  from . import foundation, soil_classifier, spt
2
2
 
3
- __version__ = "0.5.0"
3
+ __version__ = "0.6.1"
4
4
 
5
5
  __all__ = ["foundation", "soil_classifier", "spt"]
@@ -1,28 +1,12 @@
1
- """ Allowable bearing capacity package for cohesionless soils.
2
-
3
- Enums
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 ErrorMsg, enum_repr, inf
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
- :attr:`~geolysis.foundation.Shape.SQUARE`.
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 :class:`ABCType`,
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
- msg = (f"{abc_type=} is not supported, Supported "
100
- f"types are: {list(ABCType)}")
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
@@ -33,7 +33,7 @@ class AllowableBearingCapacity(ABC):
33
33
 
34
34
  @property
35
35
  def tol_settlement(self) -> float:
36
- """Tolerable settlement foundation (mm)."""
36
+ """Tolerable settlement of foundation (mm)."""
37
37
  return self._tol_settlement
38
38
 
39
39
  @tol_settlement.setter
@@ -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,27 +1,13 @@
1
- """ Ultimate bearing capacity estimation package
2
-
3
- Enum
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 ErrorMsg, enum_repr
25
11
 
26
12
  from ._core import UltimateBearingCapacity
27
13
  from .hansen_ubc import HansenUltimateBearingCapacity
@@ -118,8 +104,10 @@ def create_ultimate_bearing_capacity(friction_angle: float,
118
104
  footing.
119
105
  :raises ValueError: Raised if an invalid footing shape is provided.
120
106
  """
121
- msg = (f"{ubc_type=} is not supported, Supported "
122
- f"types are: {list(UBCType)}")
107
+
108
+ msg = ErrorMsg(param_name="ubc_type",
109
+ param_value=ubc_type,
110
+ param_type=UBCType)
123
111
 
124
112
  if ubc_type is None:
125
113
  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