geolysis 0.10.3__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 (35) hide show
  1. {geolysis-0.10.3 → geolysis-0.12.0}/PKG-INFO +46 -38
  2. {geolysis-0.10.3 → geolysis-0.12.0}/README.md +45 -37
  3. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/__init__.py +1 -1
  4. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/_core.py +35 -11
  5. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/bowles_abc.py +15 -46
  6. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/meyerhof_abc.py +17 -47
  7. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/terzaghi_abc.py +18 -67
  8. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/ubc/__init__.py +5 -2
  9. geolysis-0.12.0/geolysis/bearing_capacity/ubc/_core.py +276 -0
  10. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/ubc/_hansen_ubc.py +37 -108
  11. geolysis-0.12.0/geolysis/bearing_capacity/ubc/_terzaghi_ubc.py +136 -0
  12. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/ubc/_vesic_ubc.py +78 -114
  13. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/foundation.py +42 -9
  14. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/soil_classifier.py +24 -26
  15. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/spt.py +43 -115
  16. geolysis-0.10.3/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.10.3 → geolysis-0.12.0}/geolysis.egg-info/PKG-INFO +46 -38
  19. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis.egg-info/SOURCES.txt +2 -1
  20. {geolysis-0.10.3 → geolysis-0.12.0}/tests/test_docs.py +1 -1
  21. geolysis-0.10.3/geolysis/bearing_capacity/ubc/_core.py +0 -228
  22. geolysis-0.10.3/geolysis/bearing_capacity/ubc/_terzaghi_ubc.py +0 -178
  23. {geolysis-0.10.3 → geolysis-0.12.0}/LICENSE.txt +0 -0
  24. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/__init__.py +0 -0
  25. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/__init__.py +2 -2
  26. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis/bearing_capacity/abc/_cohl/__init__.py +0 -0
  27. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis.egg-info/dependency_links.txt +0 -0
  28. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis.egg-info/requires.txt +0 -0
  29. {geolysis-0.10.3 → geolysis-0.12.0}/geolysis.egg-info/top_level.txt +0 -0
  30. {geolysis-0.10.3 → geolysis-0.12.0}/pyproject.toml +0 -0
  31. {geolysis-0.10.3 → geolysis-0.12.0}/setup.cfg +0 -0
  32. {geolysis-0.10.3 → geolysis-0.12.0}/setup.py +0 -0
  33. {geolysis-0.10.3 → geolysis-0.12.0}/tests/test_foundation.py +0 -0
  34. {geolysis-0.10.3 → geolysis-0.12.0}/tests/test_soil_classifier.py +0 -0
  35. {geolysis-0.10.3 → 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.10.3
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.10.3"
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,7 +52,8 @@ class AllowableBearingCapacity(ABC):
42
52
  @tol_settlement.setter
43
53
  @validate_func_args
44
54
  def tol_settlement(
45
- self, tol_settlement: Annotated[float, MustBeLessThanOrEqual(25.4)]
55
+ self,
56
+ tol_settlement: Annotated[float, MustBeLessThanOrEqual(25.4)],
46
57
  ):
47
58
  self._tol_settlement = tol_settlement
48
59
 
@@ -56,11 +67,24 @@ class AllowableBearingCapacity(ABC):
56
67
  width = self.foundation_size.width
57
68
  return min(1.0 + 0.33 * depth / width, 1.33)
58
69
 
59
- def bearing_capacity_results(self) -> dict:
60
- return {
61
- "bearing_capacity": self.bearing_capacity(),
62
- "depth_factor": self._fd(),
63
- }
70
+ def bearing_capacity_results(self) -> AllowableBearingCapacityResult:
71
+ """Return a dictionary of bearing capacity results with
72
+ intermediate calculations.
73
+
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.
84
+
85
+ !!! info "Added in v0.12.0"
86
+ """
87
+ return self._bearing_capacity()
64
88
 
65
89
  @abstractmethod
66
- def bearing_capacity(self): ...
90
+ def _bearing_capacity(self): ...
@@ -8,35 +8,16 @@ 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
- q_a(kPa) = 19.16(N_1)_{55} f_d\left(\dfrac{S}{25.4}\right),
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
 
35
16
  def __init__(
36
- self,
37
- corrected_spt_n_value: float,
38
- tol_settlement: float,
39
- foundation_size: Foundation,
17
+ self,
18
+ corrected_spt_n_value: float,
19
+ tol_settlement: float,
20
+ foundation_size: Foundation,
40
21
  ) -> None:
41
22
  """
42
23
  :param corrected_spt_n_value: Statistical average of corrected
@@ -54,7 +35,7 @@ class BowlesABC4PadFoundation(AllowableBearingCapacity):
54
35
  )
55
36
 
56
37
  @round_(ndigits=2)
57
- def bearing_capacity(self) -> float:
38
+ def _bearing_capacity(self) -> float:
58
39
  """
59
40
  Calculate the allowable bearing capacity of the pad foundation.
60
41
  """
@@ -65,11 +46,11 @@ class BowlesABC4PadFoundation(AllowableBearingCapacity):
65
46
  return 19.16 * n_corr * self._fd() * self._sr()
66
47
 
67
48
  return (
68
- 11.98
69
- * n_corr
70
- * ((3.28 * width + 1) / (3.28 * width)) ** 2
71
- * self._fd()
72
- * self._sr()
49
+ 11.98
50
+ * n_corr
51
+ * ((3.28 * width + 1) / (3.28 * width)) ** 2
52
+ * self._fd()
53
+ * self._sr()
73
54
  )
74
55
 
75
56
 
@@ -77,25 +58,13 @@ 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
- q_a(kPa) = 11.98(N_1)_{55}f_d\left(\dfrac{S}{25.4}\right)
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)
98
- def bearing_capacity(self) -> float:
67
+ def _bearing_capacity(self) -> float:
99
68
  """
100
69
  Calculate the allowable bearing capacity of the mat foundation.
101
70
  """
@@ -5,37 +5,19 @@ from ._core import AllowableBearingCapacity
5
5
 
6
6
 
7
7
  class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
8
- r"""Allowable bearing capacity for pad foundation on cohesionless
8
+ """Allowable bearing capacity for pad foundation on cohesionless
9
9
  soils according to `Meyerhof (1956)`.
10
10
 
11
- $$
12
- q_a(kPa) = 12N f_d\left(\dfrac{S}{25.4}\right), \ B \ \le 1.2m
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
 
34
16
  def __init__(
35
- self,
36
- corrected_spt_n_value: float,
37
- tol_settlement: float,
38
- foundation_size: Foundation,
17
+ self,
18
+ corrected_spt_n_value: float,
19
+ tol_settlement: float,
20
+ foundation_size: Foundation,
39
21
  ):
40
22
  """
41
23
  :param corrected_spt_n_value: Average uncorrected SPT N-value
@@ -53,7 +35,7 @@ class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
53
35
  )
54
36
 
55
37
  @round_(ndigits=2)
56
- def bearing_capacity(self):
38
+ def _bearing_capacity(self):
57
39
  """
58
40
  Calculates the allowable bearing capacity of the pad foundation.
59
41
  """
@@ -64,37 +46,25 @@ class MeyerhofABC4PadFoundation(AllowableBearingCapacity):
64
46
  return 12 * n_corr * self._fd() * self._sr()
65
47
 
66
48
  return (
67
- 8
68
- * n_corr
69
- * ((3.28 * width + 1) / (3.28 * width)) ** 2
70
- * self._fd()
71
- * self._sr()
49
+ 8
50
+ * n_corr
51
+ * ((3.28 * width + 1) / (3.28 * width)) ** 2
52
+ * self._fd()
53
+ * self._sr()
72
54
  )
73
55
 
74
56
 
75
57
  class MeyerhofABC4MatFoundation(MeyerhofABC4PadFoundation):
76
- r"""Allowable bearing capacity for mat foundation on cohesionless
58
+ """Allowable bearing capacity for mat foundation on cohesionless
77
59
  soils according to `Meyerhof (1956)`.
78
60
 
79
- $$
80
- q_a(kPa) = 8 N f_d\left(\dfrac{S}{25.4}\right)
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)
97
- def bearing_capacity(self):
67
+ def _bearing_capacity(self):
98
68
  """Calculate the allowable bearing capacity of the mat foundation."""
99
69
  n_corr = self.corrected_spt_n_value
100
70
  return 8 * n_corr * self._fd() * self._sr()
@@ -5,47 +5,19 @@ from ._core import AllowableBearingCapacity
5
5
 
6
6
 
7
7
  class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
8
- r"""Allowable bearing capacity for pad foundation on cohesionless
8
+ """Allowable bearing capacity for pad foundation on cohesionless
9
9
  soils according to `Terzaghi & Peck (1948)`.
10
10
 
11
- $$
12
- q_a(kPa) = 12N \dfrac{1}{c_w f_d}\left(\dfrac{S}{25.4}\right),
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
 
44
16
  def __init__(
45
- self,
46
- corrected_spt_n_value: float,
47
- tol_settlement: float,
48
- foundation_size: Foundation,
17
+ self,
18
+ corrected_spt_n_value: float,
19
+ tol_settlement: float,
20
+ foundation_size: Foundation,
49
21
  ) -> None:
50
22
  """
51
23
  :param corrected_spt_n_value: Lowest (or average) uncorrected
@@ -85,7 +57,7 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
85
57
  return min(cw, 2.0)
86
58
 
87
59
  @round_(ndigits=2)
88
- def bearing_capacity(self):
60
+ def _bearing_capacity(self):
89
61
  """
90
62
  Calculates the allowable bearing capacity of the pad foundation.
91
63
  """
@@ -96,11 +68,11 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
96
68
  return 12 * n_corr * (1 / (self._cw() * self._fd())) * self._sr()
97
69
 
98
70
  return (
99
- 8
100
- * n_corr
101
- * ((3.28 * width + 1) / (3.28 * width)) ** 2
102
- * (1 / (self._cw() * self._fd()))
103
- * 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()
104
76
  )
105
77
 
106
78
  def bearing_capacity_results(self) -> dict:
@@ -110,37 +82,16 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
110
82
 
111
83
 
112
84
  class TerzaghiABC4MatFoundation(TerzaghiABC4PadFoundation):
113
- r"""Allowable bearing capacity for mat foundation on cohesionless
85
+ """Allowable bearing capacity for mat foundation on cohesionless
114
86
  soils according to `Terzaghi & Peck (1948)`.
115
87
 
116
- $$
117
- q_a(kPa) = 8N\dfrac{1}{c_w f_d}\left(\dfrac{S}{25.4}\right)
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)
143
- def bearing_capacity(self):
94
+ def _bearing_capacity(self):
144
95
  """
145
96
  Calculates the allowable bearing capacity of the mat foundation.
146
97
  """