geolysis 0.4.2__tar.gz → 0.4.4__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.2 → geolysis-0.4.4}/PKG-INFO +68 -76
- {geolysis-0.4.2 → geolysis-0.4.4}/README.md +63 -71
- geolysis-0.4.4/geolysis/__init__.py +5 -0
- geolysis-0.4.4/geolysis/bearing_capacity/__init__.py +0 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/__init__.py +0 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/cohl/__init__.py +206 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/cohl/bowles_abc.py +107 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/cohl/meyerhof_abc.py +107 -0
- geolysis-0.4.4/geolysis/bearing_capacity/abc/cohl/terzaghi_abc.py +142 -0
- geolysis-0.4.4/geolysis/bearing_capacity/ubc/__init__.py +337 -0
- geolysis-0.4.4/geolysis/bearing_capacity/ubc/hansen_ubc.py +296 -0
- geolysis-0.4.4/geolysis/bearing_capacity/ubc/terzaghi_ubc.py +258 -0
- geolysis-0.4.4/geolysis/bearing_capacity/ubc/vesic_ubc.py +302 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/geolysis/foundation.py +165 -98
- {geolysis-0.4.2 → geolysis-0.4.4}/geolysis/soil_classifier.py +160 -99
- {geolysis-0.4.2 → geolysis-0.4.4}/geolysis/spt.py +88 -44
- geolysis-0.4.2/geolysis/utils.py → geolysis-0.4.4/geolysis/utils/__init__.py +24 -2
- geolysis-0.4.4/geolysis/utils/validators.py +80 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/geolysis.egg-info/PKG-INFO +68 -76
- geolysis-0.4.4/geolysis.egg-info/SOURCES.txt +30 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/pyproject.toml +9 -23
- geolysis-0.4.4/tests/test_foundation.py +117 -0
- geolysis-0.4.4/tests/test_soil_classifier.py +172 -0
- geolysis-0.4.4/tests/test_spt.py +108 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/tests/test_utils.py +7 -2
- geolysis-0.4.4/tests/test_validators.py +24 -0
- geolysis-0.4.2/geolysis/__init__.py +0 -3
- geolysis-0.4.2/geolysis/validators.py +0 -54
- geolysis-0.4.2/geolysis.egg-info/SOURCES.txt +0 -19
- geolysis-0.4.2/tests/test_foundation.py +0 -22
- geolysis-0.4.2/tests/test_soil_classifier.py +0 -136
- geolysis-0.4.2/tests/test_spt.py +0 -37
- {geolysis-0.4.2 → geolysis-0.4.4}/LICENSE.txt +0 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/geolysis.egg-info/dependency_links.txt +0 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/geolysis.egg-info/requires.txt +0 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/geolysis.egg-info/top_level.txt +0 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/setup.cfg +0 -0
- {geolysis-0.4.2 → geolysis-0.4.4}/setup.py +0 -0
@@ -1,15 +1,15 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: geolysis
|
3
|
-
Version: 0.4.
|
4
|
-
Summary: geolysis
|
3
|
+
Version: 0.4.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
|
7
|
-
Project-URL: Homepage, https://
|
8
|
-
Project-URL: Documentation, https://geolysis.
|
7
|
+
Project-URL: Homepage, https://docs.geolysis.io
|
8
|
+
Project-URL: Documentation, https://docs.geolysis.io
|
9
9
|
Project-URL: Repository, https://github.com/patrickboateng/geolysis
|
10
10
|
Project-URL: Discussions, https://github.com/patrickboateng/geolysis/discussions
|
11
11
|
Project-URL: Issue Tracker, https://github.com/patrickboateng/geolysis/issues
|
12
|
-
Keywords: geotechnical-engineering,soil-classification,
|
12
|
+
Keywords: geotechnical-engineering,soil-classification,bearing-capacity-analysis,standard-penetration-test-analysis
|
13
13
|
Classifier: Development Status :: 4 - Beta
|
14
14
|
Classifier: Intended Audience :: Developers
|
15
15
|
Classifier: Intended Audience :: Education
|
@@ -29,14 +29,15 @@ Requires-Dist: pytest; extra == "dev"
|
|
29
29
|
Requires-Dist: pytest-cov; extra == "dev"
|
30
30
|
Requires-Dist: coverage; extra == "dev"
|
31
31
|
|
32
|
-
<
|
32
|
+
<div align="center">
|
33
33
|
<img src="https://raw.githubusercontent.com/patrickboateng/geolysis/dev/docs/source/_static/branding/geolysislogo.svg"
|
34
34
|
alt="geolysislogo" width="75%" />
|
35
|
-
</
|
35
|
+
</div><br>
|
36
36
|
|
37
37
|
<div align="center">
|
38
38
|
|
39
39
|
[](https://pypi.org/project/geolysis/)
|
40
|
+
[](https://pepy.tech/projects/geolysis)
|
40
41
|
[](https://pypi.python.org/pypi/geolysis/)
|
41
42
|
[](https://opensource.org/license/mit/)
|
42
43
|
|
@@ -116,106 +117,97 @@ Here are brief descriptions of these projects:
|
|
116
117
|
|
117
118
|
## Installation
|
118
119
|
|
119
|
-
**_Note: Work on the latest update is still in progress, so the usage example
|
120
|
-
below
|
121
|
-
will not function if installed._**
|
122
|
-
|
123
120
|
```shell
|
124
|
-
|
121
|
+
$ pip install geolysis
|
125
122
|
```
|
126
123
|
|
127
124
|
## Usage Example
|
128
125
|
|
129
126
|
```python
|
130
127
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
...
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
...
|
140
|
-
clf_type = "USCS")
|
141
|
-
>> > clf = uscs_clf.classify()
|
142
|
-
>> > clf
|
128
|
+
>>> from geolysis.soil_classifier import create_soil_classifier
|
129
|
+
>>> uscs_clf = create_soil_classifier(liquid_limit=34.1,
|
130
|
+
... plastic_limit=21.1,
|
131
|
+
... fines=47.88,
|
132
|
+
... sand=37.84,
|
133
|
+
... clf_type="USCS")
|
134
|
+
>>> clf = uscs_clf.classify()
|
135
|
+
>>> clf
|
143
136
|
SoilClf(symbol='SC', description='Clayey sands')
|
144
|
-
|
137
|
+
>>> clf.symbol
|
145
138
|
'SC'
|
146
|
-
|
139
|
+
>>> clf.description
|
147
140
|
'Clayey sands'
|
148
141
|
|
149
142
|
```
|
150
143
|
|
151
144
|
```python
|
152
145
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
...
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
...
|
162
|
-
clf_type = "AASHTO")
|
163
|
-
>> > clf = aashto_clf.classify()
|
164
|
-
>> > clf
|
146
|
+
>>> from geolysis.soil_classifier import create_soil_classifier
|
147
|
+
>>> aashto_clf = create_soil_classifier(liquid_limit=34.1,
|
148
|
+
... plastic_limit=21.1,
|
149
|
+
... fines=47.88,
|
150
|
+
... sand=37.84, # Sand is optional for AASHTO classification
|
151
|
+
... clf_type="AASHTO")
|
152
|
+
>>> clf = aashto_clf.classify()
|
153
|
+
>>> clf
|
165
154
|
SoilClf(symbol='A-6(4)', description='Clayey soils')
|
166
|
-
|
155
|
+
>>> clf.symbol
|
167
156
|
'A-6(4)'
|
168
|
-
|
157
|
+
>>> clf.description
|
169
158
|
'Clayey soils'
|
170
159
|
|
171
160
|
```
|
172
161
|
|
162
|
+
Check out more examples
|
163
|
+
[here](https://docs.geolysis.io/en/latest/user_guide/getting_started.html#quick-start)
|
164
|
+
|
173
165
|
## Features
|
174
166
|
|
175
167
|
<table>
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
</
|
180
|
-
<
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
<
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
</
|
204
|
-
<
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
</tr>
|
168
|
+
<tr>
|
169
|
+
<td><strong>Soil Classification</strong></td>
|
170
|
+
<td>AASHTO Classification System</td>
|
171
|
+
</tr>
|
172
|
+
<tr>
|
173
|
+
<td></td>
|
174
|
+
<td>Unified Soil Classification System</td>
|
175
|
+
</tr>
|
176
|
+
<tr>
|
177
|
+
<td><strong>Standard Penetration Test (SPT) Analysis</strong></td>
|
178
|
+
<td>SPT Energy Correction</td>
|
179
|
+
</tr>
|
180
|
+
<tr>
|
181
|
+
<td></td>
|
182
|
+
<td>SPT Overburden Pressure Correction</td>
|
183
|
+
</tr>
|
184
|
+
<tr>
|
185
|
+
<td></td>
|
186
|
+
<td>Dilatancy Correction</td>
|
187
|
+
</tr>
|
188
|
+
<tr>
|
189
|
+
<td></td>
|
190
|
+
<td>SPT N-Design Calculation</td>
|
191
|
+
</tr>
|
192
|
+
<tr>
|
193
|
+
<td><strong>Bearing Capacity Estimation</strong></td>
|
194
|
+
<td>Allowable Bearing Capacity Estimation</td>
|
195
|
+
</tr>
|
196
|
+
<tr>
|
197
|
+
<td></td>
|
198
|
+
<td>Ultimate Bearing Capacity Estimation</td>
|
199
|
+
</tr>
|
209
200
|
</table>
|
210
201
|
|
211
202
|
## Documentation
|
212
203
|
|
213
|
-
Full documentation is available [here](https://
|
214
|
-
|
215
|
-
**_Note: Work on the latest documentation is still ongoing._**
|
204
|
+
Full documentation is available [here](https://docs.geolysis.io/en/latest/)
|
216
205
|
|
217
206
|
## Contributing
|
218
207
|
|
208
|
+
Contribution guidelines can be
|
209
|
+
found [here](https://docs.geolysis.io/en/latest/dev_guide/index.html)
|
210
|
+
|
219
211
|
## License
|
220
212
|
|
221
213
|
This project is licensed under the MIT License - see the
|
@@ -1,11 +1,12 @@
|
|
1
|
-
<
|
1
|
+
<div align="center">
|
2
2
|
<img src="https://raw.githubusercontent.com/patrickboateng/geolysis/dev/docs/source/_static/branding/geolysislogo.svg"
|
3
3
|
alt="geolysislogo" width="75%" />
|
4
|
-
</
|
4
|
+
</div><br>
|
5
5
|
|
6
6
|
<div align="center">
|
7
7
|
|
8
8
|
[](https://pypi.org/project/geolysis/)
|
9
|
+
[](https://pepy.tech/projects/geolysis)
|
9
10
|
[](https://pypi.python.org/pypi/geolysis/)
|
10
11
|
[](https://opensource.org/license/mit/)
|
11
12
|
|
@@ -85,106 +86,97 @@ Here are brief descriptions of these projects:
|
|
85
86
|
|
86
87
|
## Installation
|
87
88
|
|
88
|
-
**_Note: Work on the latest update is still in progress, so the usage example
|
89
|
-
below
|
90
|
-
will not function if installed._**
|
91
|
-
|
92
89
|
```shell
|
93
|
-
|
90
|
+
$ pip install geolysis
|
94
91
|
```
|
95
92
|
|
96
93
|
## Usage Example
|
97
94
|
|
98
95
|
```python
|
99
96
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
...
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
...
|
109
|
-
clf_type = "USCS")
|
110
|
-
>> > clf = uscs_clf.classify()
|
111
|
-
>> > clf
|
97
|
+
>>> from geolysis.soil_classifier import create_soil_classifier
|
98
|
+
>>> uscs_clf = create_soil_classifier(liquid_limit=34.1,
|
99
|
+
... plastic_limit=21.1,
|
100
|
+
... fines=47.88,
|
101
|
+
... sand=37.84,
|
102
|
+
... clf_type="USCS")
|
103
|
+
>>> clf = uscs_clf.classify()
|
104
|
+
>>> clf
|
112
105
|
SoilClf(symbol='SC', description='Clayey sands')
|
113
|
-
|
106
|
+
>>> clf.symbol
|
114
107
|
'SC'
|
115
|
-
|
108
|
+
>>> clf.description
|
116
109
|
'Clayey sands'
|
117
110
|
|
118
111
|
```
|
119
112
|
|
120
113
|
```python
|
121
114
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
...
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
...
|
131
|
-
clf_type = "AASHTO")
|
132
|
-
>> > clf = aashto_clf.classify()
|
133
|
-
>> > clf
|
115
|
+
>>> from geolysis.soil_classifier import create_soil_classifier
|
116
|
+
>>> aashto_clf = create_soil_classifier(liquid_limit=34.1,
|
117
|
+
... plastic_limit=21.1,
|
118
|
+
... fines=47.88,
|
119
|
+
... sand=37.84, # Sand is optional for AASHTO classification
|
120
|
+
... clf_type="AASHTO")
|
121
|
+
>>> clf = aashto_clf.classify()
|
122
|
+
>>> clf
|
134
123
|
SoilClf(symbol='A-6(4)', description='Clayey soils')
|
135
|
-
|
124
|
+
>>> clf.symbol
|
136
125
|
'A-6(4)'
|
137
|
-
|
126
|
+
>>> clf.description
|
138
127
|
'Clayey soils'
|
139
128
|
|
140
129
|
```
|
141
130
|
|
131
|
+
Check out more examples
|
132
|
+
[here](https://docs.geolysis.io/en/latest/user_guide/getting_started.html#quick-start)
|
133
|
+
|
142
134
|
## Features
|
143
135
|
|
144
136
|
<table>
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
</
|
149
|
-
<
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
<
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
</
|
173
|
-
<
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
</tr>
|
137
|
+
<tr>
|
138
|
+
<td><strong>Soil Classification</strong></td>
|
139
|
+
<td>AASHTO Classification System</td>
|
140
|
+
</tr>
|
141
|
+
<tr>
|
142
|
+
<td></td>
|
143
|
+
<td>Unified Soil Classification System</td>
|
144
|
+
</tr>
|
145
|
+
<tr>
|
146
|
+
<td><strong>Standard Penetration Test (SPT) Analysis</strong></td>
|
147
|
+
<td>SPT Energy Correction</td>
|
148
|
+
</tr>
|
149
|
+
<tr>
|
150
|
+
<td></td>
|
151
|
+
<td>SPT Overburden Pressure Correction</td>
|
152
|
+
</tr>
|
153
|
+
<tr>
|
154
|
+
<td></td>
|
155
|
+
<td>Dilatancy Correction</td>
|
156
|
+
</tr>
|
157
|
+
<tr>
|
158
|
+
<td></td>
|
159
|
+
<td>SPT N-Design Calculation</td>
|
160
|
+
</tr>
|
161
|
+
<tr>
|
162
|
+
<td><strong>Bearing Capacity Estimation</strong></td>
|
163
|
+
<td>Allowable Bearing Capacity Estimation</td>
|
164
|
+
</tr>
|
165
|
+
<tr>
|
166
|
+
<td></td>
|
167
|
+
<td>Ultimate Bearing Capacity Estimation</td>
|
168
|
+
</tr>
|
178
169
|
</table>
|
179
170
|
|
180
171
|
## Documentation
|
181
172
|
|
182
|
-
Full documentation is available [here](https://
|
183
|
-
|
184
|
-
**_Note: Work on the latest documentation is still ongoing._**
|
173
|
+
Full documentation is available [here](https://docs.geolysis.io/en/latest/)
|
185
174
|
|
186
175
|
## Contributing
|
187
176
|
|
177
|
+
Contribution guidelines can be
|
178
|
+
found [here](https://docs.geolysis.io/en/latest/dev_guide/index.html)
|
179
|
+
|
188
180
|
## License
|
189
181
|
|
190
182
|
This project is licensed under the MIT License - see the
|
File without changes
|
File without changes
|
@@ -0,0 +1,206 @@
|
|
1
|
+
""" Allowable bearing capacity package for cohesionless soils.
|
2
|
+
|
3
|
+
Exceptions
|
4
|
+
==========
|
5
|
+
|
6
|
+
.. autosummary::
|
7
|
+
:toctree: _autosummary
|
8
|
+
|
9
|
+
SettlementError
|
10
|
+
|
11
|
+
Enums
|
12
|
+
=====
|
13
|
+
|
14
|
+
.. autosummary::
|
15
|
+
:toctree: _autosummary
|
16
|
+
:nosignatures:
|
17
|
+
|
18
|
+
ABC_TYPE
|
19
|
+
|
20
|
+
Functions
|
21
|
+
=========
|
22
|
+
|
23
|
+
.. autosummary::
|
24
|
+
:toctree: _autosummary
|
25
|
+
|
26
|
+
create_allowable_bearing_capacity
|
27
|
+
"""
|
28
|
+
import enum
|
29
|
+
from abc import ABC, abstractmethod
|
30
|
+
from typing import Optional
|
31
|
+
|
32
|
+
from geolysis.foundation import (FoundationSize,
|
33
|
+
Shape,
|
34
|
+
FoundationType,
|
35
|
+
create_foundation)
|
36
|
+
from geolysis.utils import inf, enum_repr, validators
|
37
|
+
|
38
|
+
|
39
|
+
class SettlementError(ValueError):
|
40
|
+
"""Raised when tolerable settlement is greater than the maximum
|
41
|
+
allowable settlement.
|
42
|
+
"""
|
43
|
+
|
44
|
+
|
45
|
+
class AllowableBearingCapacity(ABC):
|
46
|
+
#: Maximum tolerable foundation settlement (mm).
|
47
|
+
MAX_TOL_SETTLEMENT = 25.4
|
48
|
+
|
49
|
+
def __init__(self, corrected_spt_n_value: float,
|
50
|
+
tol_settlement: float,
|
51
|
+
foundation_size: FoundationSize) -> None:
|
52
|
+
self.corrected_spt_n_value = corrected_spt_n_value
|
53
|
+
self.tol_settlement = tol_settlement
|
54
|
+
self.foundation_size = foundation_size
|
55
|
+
|
56
|
+
@property
|
57
|
+
def corrected_spt_n_value(self) -> float:
|
58
|
+
return self._corrected_spt_n_value
|
59
|
+
|
60
|
+
@corrected_spt_n_value.setter
|
61
|
+
@validators.ge(0.0)
|
62
|
+
def corrected_spt_n_value(self, val: float) -> None:
|
63
|
+
self._corrected_spt_n_value = val
|
64
|
+
|
65
|
+
@property
|
66
|
+
def tol_settlement(self) -> float:
|
67
|
+
return self._tol_settlement
|
68
|
+
|
69
|
+
@tol_settlement.setter
|
70
|
+
@validators.le(25.4, exc_type=SettlementError)
|
71
|
+
def tol_settlement(self, tol_settlement: float) -> None:
|
72
|
+
self._tol_settlement = tol_settlement
|
73
|
+
|
74
|
+
def _sr(self) -> float:
|
75
|
+
"""Calculate the settlement ratio."""
|
76
|
+
return self.tol_settlement / self.MAX_TOL_SETTLEMENT
|
77
|
+
|
78
|
+
def _fd(self) -> float:
|
79
|
+
"""Calculate the depth factor."""
|
80
|
+
depth = self.foundation_size.depth
|
81
|
+
width = self.foundation_size.width
|
82
|
+
|
83
|
+
return min(1.0 + 0.33 * depth / width, 1.33)
|
84
|
+
|
85
|
+
@abstractmethod
|
86
|
+
def bearing_capacity(self): ...
|
87
|
+
|
88
|
+
|
89
|
+
from . import bowles_abc, terzaghi_abc, meyerhof_abc
|
90
|
+
|
91
|
+
from .bowles_abc import BowlesABC4MatFoundation, BowlesABC4PadFoundation
|
92
|
+
from .meyerhof_abc import MeyerhofABC4MatFoundation, MeyerhofABC4PadFoundation
|
93
|
+
from .terzaghi_abc import TerzaghiABC4MatFoundation, TerzaghiABC4PadFoundation
|
94
|
+
|
95
|
+
|
96
|
+
@enum_repr
|
97
|
+
class ABC_TYPE(enum.StrEnum):
|
98
|
+
"""Enumeration of available allowable bearing capacity types."""
|
99
|
+
BOWLES = enum.auto()
|
100
|
+
MEYERHOF = enum.auto()
|
101
|
+
TERZAGHI = enum.auto()
|
102
|
+
|
103
|
+
|
104
|
+
def create_allowable_bearing_capacity(corrected_spt_n_value: float,
|
105
|
+
tol_settlement: float,
|
106
|
+
depth: float,
|
107
|
+
width: float,
|
108
|
+
length: Optional[float] = None,
|
109
|
+
eccentricity: float = 0.0,
|
110
|
+
ground_water_level: float = inf,
|
111
|
+
shape: Shape | str = Shape.SQUARE,
|
112
|
+
foundation_type: FoundationType | str = \
|
113
|
+
FoundationType.PAD,
|
114
|
+
abc_type: Optional[
|
115
|
+
ABC_TYPE | str] = None,
|
116
|
+
) -> AllowableBearingCapacity:
|
117
|
+
""" A factory function that encapsulate the creation of allowable bearing
|
118
|
+
capacities.
|
119
|
+
|
120
|
+
:param corrected_spt_n_value: The corrected SPT N-value.
|
121
|
+
:type corrected_spt_n_value: float
|
122
|
+
|
123
|
+
:param tol_settlement: Tolerable settlement of foundation (mm).
|
124
|
+
:type tol_settlement: float
|
125
|
+
|
126
|
+
:param depth: Depth of foundation (m).
|
127
|
+
:type depth: float
|
128
|
+
|
129
|
+
:param width: Width of foundation footing (m).
|
130
|
+
:type width: float
|
131
|
+
|
132
|
+
:param length: Length of foundation footing (m).
|
133
|
+
:type length: float, optional
|
134
|
+
|
135
|
+
:param eccentricity: The deviation of the foundation load from the center
|
136
|
+
of gravity of the foundation footing, defaults to 0.0.
|
137
|
+
This means that the foundation load aligns with the
|
138
|
+
center of gravity of the foundation footing (m).
|
139
|
+
:type eccentricity: float, optional
|
140
|
+
|
141
|
+
:param ground_water_level: Depth of water below ground level (m).
|
142
|
+
:type ground_water_level: float
|
143
|
+
|
144
|
+
:param shape: Shape of foundation footing, defaults to "SQUARE".
|
145
|
+
:type shape: str, optional
|
146
|
+
|
147
|
+
:param foundation_type: Type of foundation, defaults to "pad".
|
148
|
+
:type foundation_type: FoundationType | str, optional
|
149
|
+
|
150
|
+
:param abc_type: Type of allowable bearing capacity calculation to apply.
|
151
|
+
Available values can be found in :class:`ABC_TYPE`,
|
152
|
+
defaults to None.
|
153
|
+
:type abc_type: ABC_TYPE | str
|
154
|
+
|
155
|
+
:raises ValueError: Raised if abc_type or foundation_type is not supported.
|
156
|
+
:raises ValueError: Raised when length is not provided for a rectangular
|
157
|
+
footing.
|
158
|
+
:raises ValueError: Raised if an invalid footing shape is provided.
|
159
|
+
"""
|
160
|
+
msg = (f"{abc_type = } is not supported, Supported "
|
161
|
+
f"types are: {list(ABC_TYPE)}")
|
162
|
+
|
163
|
+
if abc_type is None:
|
164
|
+
raise ValueError(msg)
|
165
|
+
|
166
|
+
try:
|
167
|
+
abc_type = ABC_TYPE(str(abc_type).casefold())
|
168
|
+
except ValueError as e:
|
169
|
+
raise ValueError(msg) from e
|
170
|
+
|
171
|
+
msg = (f"{foundation_type = } is not supported, Supported "
|
172
|
+
f"types are: {list(FoundationType)}")
|
173
|
+
|
174
|
+
try:
|
175
|
+
foundation_type = FoundationType(str(foundation_type).casefold())
|
176
|
+
except ValueError as e:
|
177
|
+
raise ValueError(msg) from e
|
178
|
+
|
179
|
+
# exception from create_foundation will automaatically propagate
|
180
|
+
# no need to catch and handle it.
|
181
|
+
fnd_size = create_foundation(depth=depth,
|
182
|
+
width=width,
|
183
|
+
length=length,
|
184
|
+
eccentricity=eccentricity,
|
185
|
+
ground_water_level=ground_water_level,
|
186
|
+
shape=shape)
|
187
|
+
abc_classes = {
|
188
|
+
ABC_TYPE.BOWLES: {
|
189
|
+
FoundationType.PAD: BowlesABC4PadFoundation,
|
190
|
+
FoundationType.MAT: BowlesABC4MatFoundation,
|
191
|
+
},
|
192
|
+
ABC_TYPE.MEYERHOF: {
|
193
|
+
FoundationType.PAD: MeyerhofABC4PadFoundation,
|
194
|
+
FoundationType.MAT: MeyerhofABC4MatFoundation,
|
195
|
+
},
|
196
|
+
ABC_TYPE.TERZAGHI: {
|
197
|
+
FoundationType.PAD: TerzaghiABC4PadFoundation,
|
198
|
+
FoundationType.MAT: TerzaghiABC4MatFoundation,
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
abc_class = abc_classes[abc_type][foundation_type]
|
203
|
+
abc = abc_class(corrected_spt_n_value=corrected_spt_n_value,
|
204
|
+
tol_settlement=tol_settlement,
|
205
|
+
foundation_size=fnd_size)
|
206
|
+
return abc
|