geolysis 0.11.0__tar.gz → 0.12.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.
Files changed (34) hide show
  1. {geolysis-0.11.0 → geolysis-0.12.0}/PKG-INFO +46 -38
  2. {geolysis-0.11.0 → geolysis-0.12.0}/README.md +45 -37
  3. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/__init__.py +1 -1
  4. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/_core.py +29 -12
  5. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/bowles_abc.py +11 -11
  6. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/meyerhof_abc.py +11 -11
  7. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/terzaghi_abc.py +11 -11
  8. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/ubc/__init__.py +17 -13
  9. geolysis-0.12.0/geolysis/bearing_capacity/ubc/_core.py +276 -0
  10. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/ubc/_hansen_ubc.py +26 -14
  11. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/ubc/_terzaghi_ubc.py +33 -54
  12. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/ubc/_vesic_ubc.py +72 -43
  13. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/foundation.py +42 -9
  14. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/soil_classifier.py +23 -24
  15. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/spt.py +33 -41
  16. geolysis-0.11.0/geolysis/utils.py → geolysis-0.12.0/geolysis/utils/__init__.py +14 -51
  17. geolysis-0.12.0/geolysis/utils/math.py +57 -0
  18. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis.egg-info/PKG-INFO +46 -38
  19. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis.egg-info/SOURCES.txt +2 -1
  20. {geolysis-0.11.0 → geolysis-0.12.0}/tests/test_docs.py +1 -1
  21. geolysis-0.11.0/geolysis/bearing_capacity/ubc/_core.py +0 -218
  22. {geolysis-0.11.0 → geolysis-0.12.0}/LICENSE.txt +0 -0
  23. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/__init__.py +0 -0
  24. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/__init__.py +0 -0
  25. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/__init__.py +0 -0
  26. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis.egg-info/dependency_links.txt +0 -0
  27. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis.egg-info/requires.txt +0 -0
  28. {geolysis-0.11.0 → geolysis-0.12.0}/geolysis.egg-info/top_level.txt +0 -0
  29. {geolysis-0.11.0 → geolysis-0.12.0}/pyproject.toml +0 -0
  30. {geolysis-0.11.0 → geolysis-0.12.0}/setup.cfg +0 -0
  31. {geolysis-0.11.0 → geolysis-0.12.0}/setup.py +0 -0
  32. {geolysis-0.11.0 → geolysis-0.12.0}/tests/test_foundation.py +0 -0
  33. {geolysis-0.11.0 → geolysis-0.12.0}/tests/test_soil_classifier.py +0 -0
  34. {geolysis-0.11.0 → geolysis-0.12.0}/tests/test_spt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geolysis
3
- Version: 0.11.0
3
+ Version: 0.12.0
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
@@ -57,7 +57,8 @@ The `geolysis` python package is among three other projects, `geolysis.excel`,
57
57
  `geolysis.gui`, and `geolysis.ai`. More details about these projects are
58
58
  provided [here](https://github.com/geolysis-dev).
59
59
 
60
- `geolysis` has only one project dependency which is [func-validator](https://github.com/patrickboateng/func-validator/)
60
+ `geolysis` has only one project dependency which
61
+ is [func-validator](https://github.com/patrickboateng/func-validator/)
61
62
  for validating `function` (and `method`) arguments.
62
63
 
63
64
  The rest of this **README** provides an overview of the `geolysis` python
@@ -83,58 +84,64 @@ $ pip install geolysis
83
84
 
84
85
  ## API Reference
85
86
 
86
- - [Python API](https://docs.geolysis.io/en/latest/reference/)
87
- - [geolysis.bearing_capacity.abc](https://docs.geolysis.io/en/latest/reference/allowable_bearing_capacity/) - _Allowable bearing capacity
87
+ - [Python API](https://docs.geolysis.io/en/latest/reference/)
88
+ - [geolysis.bearing_capacity.abc](https://docs.geolysis.io/en/latest/reference/allowable_bearing_capacity/) -
89
+ _Allowable bearing capacity
88
90
  estimation_
89
- - [geolysis.bearing_capacity.ubc](https://docs.geolysis.io/en/latest/reference/ultimate_bearing_capacity/) - _Ultimate bearing capacity
91
+ - [geolysis.bearing_capacity.ubc](https://docs.geolysis.io/en/latest/reference/ultimate_bearing_capacity/) -
92
+ _Ultimate bearing capacity
90
93
  estimation_
91
- - [geolysis.foundation](https://docs.geolysis.io/en/latest/reference/foundation/) - _Foundation Representation_
92
- - [geolysis.soil_classifier](https://docs.geolysis.io/en/latest/reference/soil_classifier/) - _Soil classification_
93
- - [geolysis.spt](https://docs.geolysis.io/en/latest/reference/spt/) - _Standard Penetration Test (SPT) Analysis_
94
- - [geolysis.utils](https://docs.geolysis.io/en/latest/reference/utils/) - _Utilities_
95
-
94
+ - [geolysis.foundation](https://docs.geolysis.io/en/latest/reference/foundation/) -
95
+ _Foundation Representation_
96
+ - [geolysis.soil_classifier](https://docs.geolysis.io/en/latest/reference/soil_classifier/) -
97
+ _Soil classification_
98
+ - [geolysis.spt](https://docs.geolysis.io/en/latest/reference/spt/) -
99
+ _Standard Penetration Test (SPT) Analysis_
100
+ - [geolysis.utils](https://docs.geolysis.io/en/latest/reference/utils/) -
101
+ _Utilities_
96
102
 
97
103
  ## Imports
98
104
 
99
- - **Bearing Capacity**
100
-
101
- - **Allowable Bearing Capacity (ABC)**
102
-
103
- ```python
104
- from geolysis.bearing_capacity.abc import create_abc_4_cohesionless_soils
105
- ```
106
-
107
- - **Ultimate Bearing Capacity (UBC)**
108
-
109
- ```python
110
- from geolysis.bearing_capacity.ubc import create_ubc_4_all_soil_types
111
- ```
112
-
113
- - **Foundation**
114
-
115
- ```python
116
- from geolysis.foundation import create_foundation
117
- ```
105
+ ### Bearing Capacity
106
+
107
+ - **Allowable Bearing Capacity (ABC)**
108
+
109
+ ```python
110
+ from geolysis.bearing_capacity.abc import create_abc_4_cohesionless_soils
111
+ ```
118
112
 
113
+ - **Ultimate Bearing Capacity (UBC)**
119
114
 
120
- - **Soil Classification**
121
-
122
115
  ```python
123
- from geolysis.soil_classifier import create_uscs_classifier
124
- from geolysis.soil_classifier import create_aashto_classifier
116
+ from geolysis.bearing_capacity.ubc import create_ubc_4_all_soil_types
125
117
  ```
126
-
127
- - **Standard Penetration Test (SPT) Analysis**
128
-
118
+
119
+ ### Foundation
120
+
121
+ ```python
122
+ from geolysis.foundation import create_foundation
123
+ ```
124
+
125
+ ### Soil Classification
126
+
127
+ ```python
128
+ from geolysis.soil_classifier import create_uscs_classifier
129
+ from geolysis.soil_classifier import create_aashto_classifier
130
+ ```
131
+
132
+ ### Standard Penetration Test (SPT) Analysis
133
+
129
134
  ```python
130
135
  from geolysis.spt import DilatancyCorrection
131
136
  from geolysis.spt import EnergyCorrection
132
137
  from geolysis.spt import SPT
133
138
  from geolysis.spt import create_overburden_pressure_correction
134
139
  ```
135
-
140
+
136
141
  ## Project Structure
137
142
 
143
+ These are the main components of the project structure
144
+
138
145
  .
139
146
  ├── .github # GitHub Actions
140
147
  ├── docs # Documentation files
@@ -171,7 +178,8 @@ Check out the full [documentation](https://docs.geolysis.io/en/latest/).
171
178
 
172
179
  ## Contributing
173
180
 
174
- Check out the [contribution guidelines](https://docs.geolysis.io/en/latest/dev_guide/)
181
+ Check out
182
+ the [contribution guidelines](https://docs.geolysis.io/en/latest/dev_guide/)
175
183
 
176
184
  ## License
177
185
 
@@ -24,7 +24,8 @@ The `geolysis` python package is among three other projects, `geolysis.excel`,
24
24
  `geolysis.gui`, and `geolysis.ai`. More details about these projects are
25
25
  provided [here](https://github.com/geolysis-dev).
26
26
 
27
- `geolysis` has only one project dependency which is [func-validator](https://github.com/patrickboateng/func-validator/)
27
+ `geolysis` has only one project dependency which
28
+ is [func-validator](https://github.com/patrickboateng/func-validator/)
28
29
  for validating `function` (and `method`) arguments.
29
30
 
30
31
  The rest of this **README** provides an overview of the `geolysis` python
@@ -50,58 +51,64 @@ $ pip install geolysis
50
51
 
51
52
  ## API Reference
52
53
 
53
- - [Python API](https://docs.geolysis.io/en/latest/reference/)
54
- - [geolysis.bearing_capacity.abc](https://docs.geolysis.io/en/latest/reference/allowable_bearing_capacity/) - _Allowable bearing capacity
54
+ - [Python API](https://docs.geolysis.io/en/latest/reference/)
55
+ - [geolysis.bearing_capacity.abc](https://docs.geolysis.io/en/latest/reference/allowable_bearing_capacity/) -
56
+ _Allowable bearing capacity
55
57
  estimation_
56
- - [geolysis.bearing_capacity.ubc](https://docs.geolysis.io/en/latest/reference/ultimate_bearing_capacity/) - _Ultimate bearing capacity
58
+ - [geolysis.bearing_capacity.ubc](https://docs.geolysis.io/en/latest/reference/ultimate_bearing_capacity/) -
59
+ _Ultimate bearing capacity
57
60
  estimation_
58
- - [geolysis.foundation](https://docs.geolysis.io/en/latest/reference/foundation/) - _Foundation Representation_
59
- - [geolysis.soil_classifier](https://docs.geolysis.io/en/latest/reference/soil_classifier/) - _Soil classification_
60
- - [geolysis.spt](https://docs.geolysis.io/en/latest/reference/spt/) - _Standard Penetration Test (SPT) Analysis_
61
- - [geolysis.utils](https://docs.geolysis.io/en/latest/reference/utils/) - _Utilities_
62
-
61
+ - [geolysis.foundation](https://docs.geolysis.io/en/latest/reference/foundation/) -
62
+ _Foundation Representation_
63
+ - [geolysis.soil_classifier](https://docs.geolysis.io/en/latest/reference/soil_classifier/) -
64
+ _Soil classification_
65
+ - [geolysis.spt](https://docs.geolysis.io/en/latest/reference/spt/) -
66
+ _Standard Penetration Test (SPT) Analysis_
67
+ - [geolysis.utils](https://docs.geolysis.io/en/latest/reference/utils/) -
68
+ _Utilities_
63
69
 
64
70
  ## Imports
65
71
 
66
- - **Bearing Capacity**
67
-
68
- - **Allowable Bearing Capacity (ABC)**
69
-
70
- ```python
71
- from geolysis.bearing_capacity.abc import create_abc_4_cohesionless_soils
72
- ```
73
-
74
- - **Ultimate Bearing Capacity (UBC)**
75
-
76
- ```python
77
- from geolysis.bearing_capacity.ubc import create_ubc_4_all_soil_types
78
- ```
79
-
80
- - **Foundation**
81
-
82
- ```python
83
- from geolysis.foundation import create_foundation
84
- ```
72
+ ### Bearing Capacity
73
+
74
+ - **Allowable Bearing Capacity (ABC)**
75
+
76
+ ```python
77
+ from geolysis.bearing_capacity.abc import create_abc_4_cohesionless_soils
78
+ ```
85
79
 
80
+ - **Ultimate Bearing Capacity (UBC)**
86
81
 
87
- - **Soil Classification**
88
-
89
82
  ```python
90
- from geolysis.soil_classifier import create_uscs_classifier
91
- from geolysis.soil_classifier import create_aashto_classifier
83
+ from geolysis.bearing_capacity.ubc import create_ubc_4_all_soil_types
92
84
  ```
93
-
94
- - **Standard Penetration Test (SPT) Analysis**
95
-
85
+
86
+ ### Foundation
87
+
88
+ ```python
89
+ from geolysis.foundation import create_foundation
90
+ ```
91
+
92
+ ### Soil Classification
93
+
94
+ ```python
95
+ from geolysis.soil_classifier import create_uscs_classifier
96
+ from geolysis.soil_classifier import create_aashto_classifier
97
+ ```
98
+
99
+ ### Standard Penetration Test (SPT) Analysis
100
+
96
101
  ```python
97
102
  from geolysis.spt import DilatancyCorrection
98
103
  from geolysis.spt import EnergyCorrection
99
104
  from geolysis.spt import SPT
100
105
  from geolysis.spt import create_overburden_pressure_correction
101
106
  ```
102
-
107
+
103
108
  ## Project Structure
104
109
 
110
+ These are the main components of the project structure
111
+
105
112
  .
106
113
  ├── .github # GitHub Actions
107
114
  ├── docs # Documentation files
@@ -138,7 +145,8 @@ Check out the full [documentation](https://docs.geolysis.io/en/latest/).
138
145
 
139
146
  ## Contributing
140
147
 
141
- Check out the [contribution guidelines](https://docs.geolysis.io/en/latest/dev_guide/)
148
+ Check out
149
+ the [contribution guidelines](https://docs.geolysis.io/en/latest/dev_guide/)
142
150
 
143
151
  ## License
144
152
 
@@ -1,5 +1,5 @@
1
1
  from . import bearing_capacity, foundation, soil_classifier, spt
2
2
 
3
- __version__ = "0.11.0"
3
+ __version__ = "0.12.0"
4
4
 
5
5
  __all__ = ["foundation", "soil_classifier", "spt", "bearing_capacity"]
@@ -1,4 +1,5 @@
1
1
  from abc import ABC, abstractmethod
2
+ from dataclasses import dataclass
2
3
  from typing import Annotated
3
4
 
4
5
  from func_validator import (
@@ -8,17 +9,26 @@ from func_validator import (
8
9
  )
9
10
 
10
11
  from geolysis.foundation import Foundation
12
+ from geolysis.utils import round_, add_repr
11
13
 
12
14
 
15
+ @dataclass
16
+ class AllowableBearingCapacityResult:
17
+ allowable_bearing_capacity: float
18
+ depth_factor: float
19
+ water_correction_factor: float = 1.0
20
+
21
+
22
+ @add_repr
13
23
  class AllowableBearingCapacity(ABC):
14
24
  #: Maximum tolerable foundation settlement (mm).
15
25
  MAX_TOL_SETTLEMENT = 25.4
16
26
 
17
27
  def __init__(
18
- self,
19
- corrected_spt_n_value: float,
20
- tol_settlement: float,
21
- foundation_size: Foundation,
28
+ self,
29
+ corrected_spt_n_value: float,
30
+ tol_settlement: float,
31
+ foundation_size: Foundation,
22
32
  ) -> None:
23
33
  self.corrected_spt_n_value = corrected_spt_n_value
24
34
  self.tol_settlement = tol_settlement
@@ -42,8 +52,8 @@ class AllowableBearingCapacity(ABC):
42
52
  @tol_settlement.setter
43
53
  @validate_func_args
44
54
  def tol_settlement(
45
- self,
46
- tol_settlement: Annotated[float, MustBeLessThanOrEqual(25.4)],
55
+ self,
56
+ tol_settlement: Annotated[float, MustBeLessThanOrEqual(25.4)],
47
57
  ):
48
58
  self._tol_settlement = tol_settlement
49
59
 
@@ -57,17 +67,24 @@ class AllowableBearingCapacity(ABC):
57
67
  width = self.foundation_size.width
58
68
  return min(1.0 + 0.33 * depth / width, 1.33)
59
69
 
60
- def bearing_capacity_results(self) -> dict:
70
+ def bearing_capacity_results(self) -> AllowableBearingCapacityResult:
61
71
  """Return a dictionary of bearing capacity results with
62
72
  intermediate calculations.
63
73
 
64
74
  !!! info "Added in v0.11.0"
75
+ """
76
+ return AllowableBearingCapacityResult(
77
+ allowable_bearing_capacity=self.allowable_bearing_capacity(),
78
+ depth_factor=self._fd(),
79
+ )
80
+
81
+ @round_(ndigits=1)
82
+ def allowable_bearing_capacity(self):
83
+ """Calculates the allowable bearing capacity.
65
84
 
85
+ !!! info "Added in v0.12.0"
66
86
  """
67
- return {
68
- "bearing_capacity": self.bearing_capacity(),
69
- "depth_factor": self._fd(),
70
- }
87
+ return self._bearing_capacity()
71
88
 
72
89
  @abstractmethod
73
- def bearing_capacity(self): ...
90
+ def _bearing_capacity(self): ...
@@ -14,10 +14,10 @@ class BowlesABC4PadFoundation(AllowableBearingCapacity):
14
14
  """
15
15
 
16
16
  def __init__(
17
- self,
18
- corrected_spt_n_value: float,
19
- tol_settlement: float,
20
- foundation_size: Foundation,
17
+ self,
18
+ corrected_spt_n_value: float,
19
+ tol_settlement: float,
20
+ foundation_size: Foundation,
21
21
  ) -> None:
22
22
  """
23
23
  :param corrected_spt_n_value: Statistical average of corrected
@@ -35,7 +35,7 @@ class BowlesABC4PadFoundation(AllowableBearingCapacity):
35
35
  )
36
36
 
37
37
  @round_(ndigits=2)
38
- def bearing_capacity(self) -> float:
38
+ def _bearing_capacity(self) -> float:
39
39
  """
40
40
  Calculate the allowable bearing capacity of the pad foundation.
41
41
  """
@@ -46,11 +46,11 @@ class BowlesABC4PadFoundation(AllowableBearingCapacity):
46
46
  return 19.16 * n_corr * self._fd() * self._sr()
47
47
 
48
48
  return (
49
- 11.98
50
- * n_corr
51
- * ((3.28 * width + 1) / (3.28 * width)) ** 2
52
- * self._fd()
53
- * self._sr()
49
+ 11.98
50
+ * n_corr
51
+ * ((3.28 * width + 1) / (3.28 * width)) ** 2
52
+ * self._fd()
53
+ * self._sr()
54
54
  )
55
55
 
56
56
 
@@ -64,7 +64,7 @@ class BowlesABC4MatFoundation(BowlesABC4PadFoundation):
64
64
  """
65
65
 
66
66
  @round_(ndigits=2)
67
- def bearing_capacity(self) -> float:
67
+ def _bearing_capacity(self) -> float:
68
68
  """
69
69
  Calculate the allowable bearing capacity of the mat foundation.
70
70
  """
@@ -14,10 +14,10 @@ class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
14
14
  """
15
15
 
16
16
  def __init__(
17
- self,
18
- corrected_spt_n_value: float,
19
- tol_settlement: float,
20
- foundation_size: Foundation,
17
+ self,
18
+ corrected_spt_n_value: float,
19
+ tol_settlement: float,
20
+ foundation_size: Foundation,
21
21
  ):
22
22
  """
23
23
  :param corrected_spt_n_value: Average uncorrected SPT N-value
@@ -35,7 +35,7 @@ class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
35
35
  )
36
36
 
37
37
  @round_(ndigits=2)
38
- def bearing_capacity(self):
38
+ def _bearing_capacity(self):
39
39
  """
40
40
  Calculates the allowable bearing capacity of the pad foundation.
41
41
  """
@@ -46,11 +46,11 @@ class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
46
46
  return 12 * n_corr * self._fd() * self._sr()
47
47
 
48
48
  return (
49
- 8
50
- * n_corr
51
- * ((3.28 * width + 1) / (3.28 * width)) ** 2
52
- * self._fd()
53
- * self._sr()
49
+ 8
50
+ * n_corr
51
+ * ((3.28 * width + 1) / (3.28 * width)) ** 2
52
+ * self._fd()
53
+ * self._sr()
54
54
  )
55
55
 
56
56
 
@@ -64,7 +64,7 @@ class MeyerhofABC4MatFoundation(MeyerhofABC4PadFoundation):
64
64
  """
65
65
 
66
66
  @round_(ndigits=2)
67
- def bearing_capacity(self):
67
+ def _bearing_capacity(self):
68
68
  """Calculate the allowable bearing capacity of the mat foundation."""
69
69
  n_corr = self.corrected_spt_n_value
70
70
  return 8 * n_corr * self._fd() * self._sr()
@@ -14,10 +14,10 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
14
14
  """
15
15
 
16
16
  def __init__(
17
- self,
18
- corrected_spt_n_value: float,
19
- tol_settlement: float,
20
- foundation_size: Foundation,
17
+ self,
18
+ corrected_spt_n_value: float,
19
+ tol_settlement: float,
20
+ foundation_size: Foundation,
21
21
  ) -> None:
22
22
  """
23
23
  :param corrected_spt_n_value: Lowest (or average) uncorrected
@@ -57,7 +57,7 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
57
57
  return min(cw, 2.0)
58
58
 
59
59
  @round_(ndigits=2)
60
- def bearing_capacity(self):
60
+ def _bearing_capacity(self):
61
61
  """
62
62
  Calculates the allowable bearing capacity of the pad foundation.
63
63
  """
@@ -68,11 +68,11 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
68
68
  return 12 * n_corr * (1 / (self._cw() * self._fd())) * self._sr()
69
69
 
70
70
  return (
71
- 8
72
- * n_corr
73
- * ((3.28 * width + 1) / (3.28 * width)) ** 2
74
- * (1 / (self._cw() * self._fd()))
75
- * self._sr()
71
+ 8
72
+ * n_corr
73
+ * ((3.28 * width + 1) / (3.28 * width)) ** 2
74
+ * (1 / (self._cw() * self._fd()))
75
+ * self._sr()
76
76
  )
77
77
 
78
78
  def bearing_capacity_results(self) -> dict:
@@ -91,7 +91,7 @@ class TerzaghiABC4MatFoundation(TerzaghiABC4PadFoundation):
91
91
  """
92
92
 
93
93
  @round_(ndigits=2)
94
- def bearing_capacity(self):
94
+ def _bearing_capacity(self):
95
95
  """
96
96
  Calculates the allowable bearing capacity of the mat foundation.
97
97
  """
@@ -46,18 +46,19 @@ class UBCType(AbstractStrEnum):
46
46
 
47
47
  @validate_func_args
48
48
  def create_ubc_4_all_soil_types(
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",
49
+ friction_angle: float,
50
+ cohesion: float,
51
+ moist_unit_wgt: float,
52
+ depth: float,
53
+ width: float,
54
+ length: Optional[float] = None,
55
+ saturated_unit_wgt: float = 20.5,
56
+ eccentricity: float = 0.0,
57
+ ground_water_level: Optional[float] = None,
58
+ load_angle: float = 0.0,
59
+ apply_local_shear: bool = False,
60
+ shape: Shape | str = "square",
61
+ ubc_type: Annotated[UBCType | str, MustBeMemberOf(UBCType)] = "vesic",
61
62
  ) -> UltimateBearingCapacity:
62
63
  r"""A factory function that encapsulate the creation of ultimate
63
64
  bearing capacity.
@@ -70,6 +71,7 @@ def create_ubc_4_all_soil_types(
70
71
  :param depth: Depth of foundation (m).
71
72
  :param width: Width of foundation footing (m).
72
73
  :param length: Length of foundation footing (m).
74
+ :param saturated_unit_wgt: Saturated unit weight of soil ($kN/m^3$).
73
75
  :param eccentricity: The deviation of the foundation load from the
74
76
  center of gravity of the foundation footing.
75
77
  :param ground_water_level: Depth of water below ground level (m).
@@ -101,12 +103,14 @@ def create_ubc_4_all_soil_types(
101
103
  shape=shape,
102
104
  )
103
105
 
104
- ubc_class = _get_ultimate_bearing_capacity(ubc_type, fnd_size.footing_shape)
106
+ ubc_class = _get_ultimate_bearing_capacity(ubc_type,
107
+ fnd_size.footing_shape)
105
108
 
106
109
  return ubc_class(
107
110
  friction_angle=friction_angle,
108
111
  cohesion=cohesion,
109
112
  moist_unit_wgt=moist_unit_wgt,
113
+ saturated_unit_wgt=saturated_unit_wgt,
110
114
  foundation_size=fnd_size,
111
115
  apply_local_shear=apply_local_shear,
112
116
  )