geolysis 0.11.0__tar.gz → 0.13.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.11.0 → geolysis-0.13.0}/PKG-INFO +47 -39
- {geolysis-0.11.0 → geolysis-0.13.0}/README.md +46 -38
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/__init__.py +1 -1
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/abc/_cohl/__init__.py +31 -43
- geolysis-0.13.0/geolysis/bearing_capacity/abc/_cohl/_core.py +96 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/abc/_cohl/bowles_abc.py +11 -11
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/abc/_cohl/meyerhof_abc.py +11 -11
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/abc/_cohl/terzaghi_abc.py +16 -16
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/ubc/__init__.py +25 -28
- geolysis-0.13.0/geolysis/bearing_capacity/ubc/_core.py +281 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/ubc/_terzaghi_ubc.py +48 -65
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/ubc/_vesic_ubc.py +90 -46
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/foundation.py +104 -75
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/soil_classifier.py +47 -50
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/spt.py +87 -76
- geolysis-0.11.0/geolysis/utils.py → geolysis-0.13.0/geolysis/utils/__init__.py +15 -53
- geolysis-0.13.0/geolysis/utils/math.py +59 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis.egg-info/PKG-INFO +47 -39
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis.egg-info/SOURCES.txt +2 -2
- {geolysis-0.11.0 → geolysis-0.13.0}/tests/test_docs.py +1 -1
- {geolysis-0.11.0 → geolysis-0.13.0}/tests/test_foundation.py +4 -7
- geolysis-0.11.0/geolysis/bearing_capacity/abc/_cohl/_core.py +0 -73
- geolysis-0.11.0/geolysis/bearing_capacity/ubc/_core.py +0 -218
- geolysis-0.11.0/geolysis/bearing_capacity/ubc/_hansen_ubc.py +0 -188
- {geolysis-0.11.0 → geolysis-0.13.0}/LICENSE.txt +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/__init__.py +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis/bearing_capacity/abc/__init__.py +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis.egg-info/dependency_links.txt +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis.egg-info/requires.txt +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/geolysis.egg-info/top_level.txt +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/pyproject.toml +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/setup.cfg +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/setup.py +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/tests/test_soil_classifier.py +0 -0
- {geolysis-0.11.0 → geolysis-0.13.0}/tests/test_spt.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: geolysis
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.13.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
|
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/) -
|
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/) -
|
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/) -
|
92
|
-
|
93
|
-
- [geolysis.
|
94
|
-
|
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
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
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.
|
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
|
-
|
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
|
@@ -154,7 +161,7 @@ $ pip install geolysis
|
|
154
161
|
>>> clf = aashto_clf.classify()
|
155
162
|
>>> clf.symbol
|
156
163
|
'A-6(4)'
|
157
|
-
>>> clf.
|
164
|
+
>>> clf.symbol_no_group_idx
|
158
165
|
'A-6'
|
159
166
|
>>> clf.group_index
|
160
167
|
'4'
|
@@ -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
|
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
|
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/) -
|
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/) -
|
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/) -
|
59
|
-
|
60
|
-
- [geolysis.
|
61
|
-
|
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
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
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.
|
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
|
-
|
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
|
@@ -121,7 +128,7 @@ $ pip install geolysis
|
|
121
128
|
>>> clf = aashto_clf.classify()
|
122
129
|
>>> clf.symbol
|
123
130
|
'A-6(4)'
|
124
|
-
>>> clf.
|
131
|
+
>>> clf.symbol_no_group_idx
|
125
132
|
'A-6'
|
126
133
|
>>> clf.group_index
|
127
134
|
'4'
|
@@ -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
|
148
|
+
Check out
|
149
|
+
the [contribution guidelines](https://docs.geolysis.io/en/latest/dev_guide/)
|
142
150
|
|
143
151
|
## License
|
144
152
|
|
@@ -1,10 +1,11 @@
|
|
1
1
|
import enum
|
2
2
|
from typing import Optional, Annotated
|
3
3
|
|
4
|
-
from func_validator import MustBeMemberOf,
|
4
|
+
from func_validator import MustBeMemberOf, validate_params
|
5
5
|
|
6
6
|
from geolysis.foundation import FoundationType, Shape, create_foundation
|
7
7
|
from geolysis.utils import AbstractStrEnum, inf
|
8
|
+
|
8
9
|
from ._core import AllowableBearingCapacity
|
9
10
|
from .bowles_abc import BowlesABC4MatFoundation, BowlesABC4PadFoundation
|
10
11
|
from .meyerhof_abc import MeyerhofABC4MatFoundation, MeyerhofABC4PadFoundation
|
@@ -16,7 +17,7 @@ class ABCType(AbstractStrEnum):
|
|
16
17
|
|
17
18
|
Each member represents a different method for determining
|
18
19
|
the allowable bearing capacity of soil.
|
19
|
-
|
20
|
+
"""
|
20
21
|
|
21
22
|
BOWLES = enum.auto()
|
22
23
|
"""Bowles's method for calculating allowable bearing capacity"""
|
@@ -28,20 +29,34 @@ class ABCType(AbstractStrEnum):
|
|
28
29
|
"""Terzaghi's method for calculating allowable bearing capacity"""
|
29
30
|
|
30
31
|
|
31
|
-
|
32
|
+
abc_classes = {
|
33
|
+
ABCType.BOWLES: {
|
34
|
+
FoundationType.PAD: BowlesABC4PadFoundation,
|
35
|
+
FoundationType.MAT: BowlesABC4MatFoundation,
|
36
|
+
},
|
37
|
+
ABCType.MEYERHOF: {
|
38
|
+
FoundationType.PAD: MeyerhofABC4PadFoundation,
|
39
|
+
FoundationType.MAT: MeyerhofABC4MatFoundation,
|
40
|
+
},
|
41
|
+
ABCType.TERZAGHI: {
|
42
|
+
FoundationType.PAD: TerzaghiABC4PadFoundation,
|
43
|
+
FoundationType.MAT: TerzaghiABC4MatFoundation,
|
44
|
+
},
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
@validate_params
|
32
49
|
def create_abc_4_cohesionless_soils(
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
] = "pad",
|
44
|
-
abc_type: Annotated[ABCType | str, MustBeMemberOf(ABCType)] = "bowles",
|
50
|
+
corrected_spt_n_value: float,
|
51
|
+
tol_settlement: float,
|
52
|
+
depth: float,
|
53
|
+
width: float,
|
54
|
+
length: Optional[float] = None,
|
55
|
+
eccentricity: float = 0.0,
|
56
|
+
ground_water_level: float = inf,
|
57
|
+
shape: Shape | str = "square",
|
58
|
+
foundation_type: FoundationType | str = "pad",
|
59
|
+
abc_type: Annotated[ABCType | str, MustBeMemberOf(ABCType)] = "bowles",
|
45
60
|
) -> AllowableBearingCapacity:
|
46
61
|
r"""A factory function that encapsulate the creation of allowable
|
47
62
|
bearing capacities.
|
@@ -58,13 +73,6 @@ def create_abc_4_cohesionless_soils(
|
|
58
73
|
:param foundation_type: Type of foundation.
|
59
74
|
:param abc_type: Type of allowable bearing capacity calculation to
|
60
75
|
apply.
|
61
|
-
|
62
|
-
:raises ValidationError: Raised if `abc_type` or `foundation_type`
|
63
|
-
is not supported.
|
64
|
-
:raises ValidationError: Raised if an invalid footing `shape` is
|
65
|
-
provided.
|
66
|
-
:raises ValueError: Raised when `length` is not provided for a
|
67
|
-
rectangular footing.
|
68
76
|
"""
|
69
77
|
abc_type = ABCType(abc_type)
|
70
78
|
foundation_type = FoundationType(foundation_type)
|
@@ -80,30 +88,10 @@ def create_abc_4_cohesionless_soils(
|
|
80
88
|
foundation_type=foundation_type,
|
81
89
|
shape=shape,
|
82
90
|
)
|
91
|
+
abc_class = abc_classes[abc_type][foundation_type]
|
83
92
|
|
84
|
-
abc_class = _get_allowable_bearing_capacity(abc_type,
|
85
|
-
fnd_size.foundation_type)
|
86
93
|
return abc_class(
|
87
94
|
corrected_spt_n_value=corrected_spt_n_value,
|
88
95
|
tol_settlement=tol_settlement,
|
89
96
|
foundation_size=fnd_size,
|
90
97
|
)
|
91
|
-
|
92
|
-
|
93
|
-
def _get_allowable_bearing_capacity(abc_type: ABCType,
|
94
|
-
foundation_type: FoundationType):
|
95
|
-
abc_classes = {
|
96
|
-
ABCType.BOWLES: {
|
97
|
-
FoundationType.PAD: BowlesABC4PadFoundation,
|
98
|
-
FoundationType.MAT: BowlesABC4MatFoundation,
|
99
|
-
},
|
100
|
-
ABCType.MEYERHOF: {
|
101
|
-
FoundationType.PAD: MeyerhofABC4PadFoundation,
|
102
|
-
FoundationType.MAT: MeyerhofABC4MatFoundation,
|
103
|
-
},
|
104
|
-
ABCType.TERZAGHI: {
|
105
|
-
FoundationType.PAD: TerzaghiABC4PadFoundation,
|
106
|
-
FoundationType.MAT: TerzaghiABC4MatFoundation,
|
107
|
-
},
|
108
|
-
}
|
109
|
-
return abc_classes[abc_type][foundation_type]
|
@@ -0,0 +1,96 @@
|
|
1
|
+
from abc import ABC, abstractmethod
|
2
|
+
from dataclasses import dataclass
|
3
|
+
from typing import Annotated
|
4
|
+
|
5
|
+
from func_validator import (
|
6
|
+
validate_params,
|
7
|
+
MustBeNonNegative,
|
8
|
+
MustBeLessThanOrEqual,
|
9
|
+
)
|
10
|
+
|
11
|
+
from geolysis.foundation import Foundation
|
12
|
+
from geolysis.utils import round_, add_repr
|
13
|
+
|
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
|
23
|
+
class AllowableBearingCapacity(ABC):
|
24
|
+
#: Maximum tolerable foundation settlement (mm).
|
25
|
+
MAX_TOL_SETTLEMENT = 25.4
|
26
|
+
|
27
|
+
def __init__(
|
28
|
+
self,
|
29
|
+
corrected_spt_n_value: float,
|
30
|
+
tol_settlement: float,
|
31
|
+
foundation_size: Foundation,
|
32
|
+
) -> None:
|
33
|
+
self.corrected_spt_n_value = corrected_spt_n_value
|
34
|
+
self.tol_settlement = tol_settlement
|
35
|
+
self.foundation_size = foundation_size
|
36
|
+
|
37
|
+
@property
|
38
|
+
def corrected_spt_n_value(self) -> float:
|
39
|
+
"""Statistical average of corrected SPT N-value."""
|
40
|
+
return self._corrected_spt_n_value
|
41
|
+
|
42
|
+
@corrected_spt_n_value.setter
|
43
|
+
@validate_params
|
44
|
+
def corrected_spt_n_value(
|
45
|
+
self,
|
46
|
+
corrected_spt_n_value: Annotated[float, MustBeNonNegative],
|
47
|
+
):
|
48
|
+
self._corrected_spt_n_value = corrected_spt_n_value
|
49
|
+
|
50
|
+
@property
|
51
|
+
def tol_settlement(self) -> float:
|
52
|
+
"""Tolerable settlement of foundation (mm)."""
|
53
|
+
return self._tol_settlement
|
54
|
+
|
55
|
+
@tol_settlement.setter
|
56
|
+
@validate_params
|
57
|
+
def tol_settlement(
|
58
|
+
self,
|
59
|
+
tol_settlement: Annotated[float, MustBeLessThanOrEqual(25.4)],
|
60
|
+
):
|
61
|
+
self._tol_settlement = tol_settlement
|
62
|
+
|
63
|
+
def _sr(self) -> float:
|
64
|
+
"""Calculate the settlement ratio."""
|
65
|
+
return self.tol_settlement / self.MAX_TOL_SETTLEMENT
|
66
|
+
|
67
|
+
def _fd(self) -> float:
|
68
|
+
"""Calculate the depth factor."""
|
69
|
+
depth = self.foundation_size.depth
|
70
|
+
width = self.foundation_size.width
|
71
|
+
return min(1.0 + 0.33 * depth / width, 1.33)
|
72
|
+
|
73
|
+
def bearing_capacity_results(self) -> AllowableBearingCapacityResult:
|
74
|
+
"""Return bearing capacity results with intermediate calculations.
|
75
|
+
|
76
|
+
!!! info "Added in v0.11.0"
|
77
|
+
"""
|
78
|
+
return AllowableBearingCapacityResult(
|
79
|
+
allowable_bearing_capacity=self.allowable_bearing_capacity(),
|
80
|
+
depth_factor=self._fd(),
|
81
|
+
)
|
82
|
+
|
83
|
+
@round_(ndigits=1)
|
84
|
+
def allowable_bearing_capacity(self) -> float:
|
85
|
+
"""Calculates the allowable bearing capacity.
|
86
|
+
|
87
|
+
!!! info "Added in v0.12.0"
|
88
|
+
"""
|
89
|
+
return self._bearing_capacity()
|
90
|
+
|
91
|
+
def allowable_applied_load(self) -> float:
|
92
|
+
"""Calculate the allowable applied load on the foundation."""
|
93
|
+
return self._bearing_capacity() * self.foundation_size.foundation_area()
|
94
|
+
|
95
|
+
@abstractmethod
|
96
|
+
def _bearing_capacity(self) -> float: ...
|
@@ -14,10 +14,10 @@ class BowlesABC4PadFoundation(AllowableBearingCapacity):
|
|
14
14
|
"""
|
15
15
|
|
16
16
|
def __init__(
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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
|
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
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
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
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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
|
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
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
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()
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from geolysis.foundation import Foundation
|
2
|
-
from geolysis.utils import round_
|
2
|
+
from geolysis.utils import round_, isinf
|
3
3
|
|
4
|
-
from ._core import AllowableBearingCapacity
|
4
|
+
from ._core import AllowableBearingCapacity, AllowableBearingCapacityResult
|
5
5
|
|
6
6
|
|
7
7
|
class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
|
@@ -14,10 +14,10 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
|
|
14
14
|
"""
|
15
15
|
|
16
16
|
def __init__(
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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
|
@@ -46,7 +46,7 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
|
|
46
46
|
width = self.foundation_size.width
|
47
47
|
water_level = self.foundation_size.ground_water_level
|
48
48
|
|
49
|
-
if water_level
|
49
|
+
if isinf(water_level):
|
50
50
|
return 2.0
|
51
51
|
|
52
52
|
if water_level <= depth:
|
@@ -57,7 +57,7 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
|
|
57
57
|
return min(cw, 2.0)
|
58
58
|
|
59
59
|
@round_(ndigits=2)
|
60
|
-
def
|
60
|
+
def _bearing_capacity(self):
|
61
61
|
"""
|
62
62
|
Calculates the allowable bearing capacity of the pad foundation.
|
63
63
|
"""
|
@@ -68,16 +68,16 @@ class TerzaghiABC4PadFoundation(AllowableBearingCapacity):
|
|
68
68
|
return 12 * n_corr * (1 / (self._cw() * self._fd())) * self._sr()
|
69
69
|
|
70
70
|
return (
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
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
|
-
def bearing_capacity_results(self) ->
|
78
|
+
def bearing_capacity_results(self) -> AllowableBearingCapacityResult:
|
79
79
|
res = super().bearing_capacity_results()
|
80
|
-
res
|
80
|
+
res.water_correction_factor = self._cw()
|
81
81
|
return res
|
82
82
|
|
83
83
|
|
@@ -91,7 +91,7 @@ class TerzaghiABC4MatFoundation(TerzaghiABC4PadFoundation):
|
|
91
91
|
"""
|
92
92
|
|
93
93
|
@round_(ndigits=2)
|
94
|
-
def
|
94
|
+
def _bearing_capacity(self):
|
95
95
|
"""
|
96
96
|
Calculates the allowable bearing capacity of the mat foundation.
|
97
97
|
"""
|