Skip to content

Commit 84f84f8

Browse files
committed
black reformat
1 parent 83991be commit 84f84f8

17 files changed

+795
-635
lines changed

docs/source/conf.py

+27-26
Original file line numberDiff line numberDiff line change
@@ -6,60 +6,61 @@
66
# -- Project information -----------------------------------------------------
77
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
88

9-
project = 'OpenPile'
10-
copyright = '2023, Guillaume Melin'
11-
author = 'Guillaume Melin'
9+
project = "OpenPile"
10+
copyright = "2023, Guillaume Melin"
11+
author = "Guillaume Melin"
1212

1313
import sys
1414
from pathlib import Path
15+
1516
pypath = Path(__file__).parents[2]
16-
#add path
17-
sys.path.insert(0, str(Path(pypath / 'src')))
17+
# add path
18+
sys.path.insert(0, str(Path(pypath / "src")))
1819
from openpile import __version__
20+
1921
release = __version__
2022

2123
# -- General configuration ---------------------------------------------------
2224
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
2325

2426
extensions = [
25-
'sphinx.ext.autodoc',
26-
'sphinx.ext.githubpages',
27-
'sphinx.ext.napoleon', # support for numpy and google docstrings
28-
'sphinx.ext.mathjax',
29-
'sphinx.ext.viewcode',
30-
'sphinx.ext.autodoc',
31-
'sphinx.ext.todo',
32-
# "sphinx_copybutton",
33-
"sphinx.ext.doctest",
34-
"matplotlib.sphinxext.plot_directive",
35-
27+
"sphinx.ext.autodoc",
28+
"sphinx.ext.githubpages",
29+
"sphinx.ext.napoleon", # support for numpy and google docstrings
30+
"sphinx.ext.mathjax",
31+
"sphinx.ext.viewcode",
32+
"sphinx.ext.autodoc",
33+
"sphinx.ext.todo",
34+
# "sphinx_copybutton",
35+
"sphinx.ext.doctest",
36+
"matplotlib.sphinxext.plot_directive",
3637
]
3738

3839
autodoc_default_options = {
39-
'member-order': 'bysource',
40-
'special-members': '__init__',
41-
'undoc-members': True,
42-
'exclude-members': '__weakref__',
43-
'show-inheritance': False,
40+
"member-order": "bysource",
41+
"special-members": "__init__",
42+
"undoc-members": True,
43+
"exclude-members": "__weakref__",
44+
"show-inheritance": False,
4445
}
4546

46-
auoclass_content = 'class'
47+
auoclass_content = "class"
4748
# Automatically extract typehints when specified and place them in
4849
# descriptions of the relevant function/method.
4950
autodoc_typehints = "description"
5051

5152
# Don't show class signature with the class' name.
5253
autodoc_class_signature = "separated"
5354

54-
templates_path = ['_templates']
55+
templates_path = ["_templates"]
5556
exclude_patterns = []
5657

5758
# -- Options for LaTeX output ------------------------------------------------
58-
latex_engine = 'pdflatex'
59+
latex_engine = "pdflatex"
5960
numfig = True
6061

6162
# -- Options for HTML output -------------------------------------------------
6263
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
6364

64-
html_theme = 'sphinx_rtd_theme'
65-
html_static_path = ['_static']
65+
html_theme = "sphinx_rtd_theme"
66+
html_static_path = ["_static"]

setup.py

-2
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,3 @@
1818
"Issue tracker": "https://github.com/TchilDill/openpile/issues",
1919
},
2020
)
21-
22-

src/openpile/calculate.py

+118-76
Original file line numberDiff line numberDiff line change
@@ -27,62 +27,82 @@ def _pile_element_surface(model):
2727
Returns
2828
-------
2929
np.ndarray
30-
outside surface
30+
outside surface
3131
np.ndarray
32-
inside surface
32+
inside surface
3333
"""
34-
perimeter_outside = model.element_properties['Diameter [m]'].values * m.pi
35-
perimeter_inside = (model.element_properties['Diameter [m]'].values -2*model.element_properties['Wall thickness [m]']) * m.pi
36-
L = (model.element_properties['x_top [m]'].values - model.element_properties['x_bottom [m]'].values)
34+
perimeter_outside = model.element_properties["Diameter [m]"].values * m.pi
35+
perimeter_inside = (
36+
model.element_properties["Diameter [m]"].values
37+
- 2 * model.element_properties["Wall thickness [m]"]
38+
) * m.pi
39+
L = (
40+
model.element_properties["x_top [m]"].values
41+
- model.element_properties["x_bottom [m]"].values
42+
)
43+
44+
return perimeter_outside * L, perimeter_inside * L
3745

38-
return perimeter_outside*L, perimeter_inside*L
3946

4047
def _pile_inside_volume(model):
41-
area_inside = (model.element_properties['Diameter [m]'].values -2*model.element_properties['Wall thickness [m]'])**2 * m.pi/4
42-
L = (model.element_properties['x_top [m]'].values - model.element_properties['x_bottom [m]'].values)
43-
44-
return area_inside*L
48+
area_inside = (
49+
(
50+
model.element_properties["Diameter [m]"].values
51+
- 2 * model.element_properties["Wall thickness [m]"]
52+
)
53+
** 2
54+
* m.pi
55+
/ 4
56+
)
57+
L = (
58+
model.element_properties["x_top [m]"].values
59+
- model.element_properties["x_bottom [m]"].values
60+
)
61+
62+
return area_inside * L
63+
4564

4665
def _embedded_pile_effective_weight(model):
47-
48-
embedded_element = model.element_properties['x_bottom [m]'].values < model.soil.top_elevation
49-
submerged_element = model.element_properties['x_bottom [m]'].values < model.soil.water_line
50-
51-
L = (model.element_properties['x_top [m]'].values - model.element_properties['x_bottom [m]'].values)
52-
V = L * model.element_properties['Area [m2]'].values
66+
67+
embedded_element = model.element_properties["x_bottom [m]"].values < model.soil.top_elevation
68+
submerged_element = model.element_properties["x_bottom [m]"].values < model.soil.water_line
69+
70+
L = (
71+
model.element_properties["x_top [m]"].values
72+
- model.element_properties["x_bottom [m]"].values
73+
)
74+
V = L * model.element_properties["Area [m2]"].values
5375
W = np.zeros(shape=V.shape)
54-
W[submerged_element] = V[submerged_element]*(model.pile._uw-10)
55-
W[~submerged_element] = V[~submerged_element]*(model.pile._uw)
76+
W[submerged_element] = V[submerged_element] * (model.pile._uw - 10)
77+
W[~submerged_element] = V[~submerged_element] * (model.pile._uw)
5678
W[~embedded_element] = 0
5779

5880
return W.sum()
5981

60-
def bearingcapacity(
61-
model,
62-
kind
63-
):
82+
83+
def bearingcapacity(model, kind):
6484
if kind == "API":
6585
if not all([x.bearingcapacity_signature == "API" for x in model.soil.layer.axial_model]):
66-
ValueError("All axial models must be API compliant.")
86+
ValueError("All axial models must be API compliant.")
6787

68-
plugged = shaft_resistance(model,outer_shaft=True, inner_shaft=False)
69-
+ unit_end_bearing(model)*model.pile.tip_area
70-
- entrapped_soil_weight(model)
88+
plugged = shaft_resistance(model, outer_shaft=True, inner_shaft=False)
89+
+unit_end_bearing(model) * model.pile.tip_area
90+
-entrapped_soil_weight(model)
7191
# - model.
7292

73-
# unplugged =
93+
# unplugged =
7494

75-
# isplugged =
95+
# isplugged =
7696

7797
return {
78-
'Compression':
79-
{
80-
'shaft_resistance' : 0,
98+
"Compression": {
99+
"shaft_resistance": 0,
81100
}
82101
}
83102

103+
84104
def unit_end_bearing(
85-
model,
105+
model,
86106
) -> float:
87107

88108
for layer in model.soil.layers:
@@ -94,21 +114,23 @@ def unit_end_bearing(
94114
layer.top >= model.pile.bottom_elevation
95115
and layer.bottom <= model.pile.bottom_elevation
96116
):
97-
#vertical effective stress at pile tip
98-
sig_v_tip = model.soil_properties["sigma_v bottom [kPa]"].iloc[-1],
117+
# vertical effective stress at pile tip
118+
sig_v_tip = (model.soil_properties["sigma_v bottom [kPa]"].iloc[-1],)
99119

100120
# Calculate unit tip resistance with effective area
101-
return layer.axial_model.unit_tip_resistance(
102-
sig=sig_v_tip,
103-
depth_from_top_of_layer=(model.soil.top_elevation-model.soil.bottom_elevation),
104-
layer_height=(layer.top - layer.bottom)
105-
) * layer.axial_model.Q_multiplier
106-
107-
108-
109-
def entrapped_soil_weight(
110-
model
111-
) -> float:
121+
return (
122+
layer.axial_model.unit_tip_resistance(
123+
sig=sig_v_tip,
124+
depth_from_top_of_layer=(
125+
model.soil.top_elevation - model.soil.bottom_elevation
126+
),
127+
layer_height=(layer.top - layer.bottom),
128+
)
129+
* layer.axial_model.Q_multiplier
130+
)
131+
132+
133+
def entrapped_soil_weight(model) -> float:
112134
"""calculates total weight of soil inside the pile. (Unit: kN)
113135
114136
Parameters
@@ -121,35 +143,39 @@ def entrapped_soil_weight(
121143
float
122144
value of entrapped total weight of soil inside the pile in unit:kN
123145
"""
124-
# soil volume
146+
# soil volume
125147
Vi = _pile_inside_volume(model)
126-
#element mid-point elevation
127-
elevation = 0.5*(model.soil_properties["x_top [m]"]+model.soil_properties[ "x_bottom [m]"])
148+
# element mid-point elevation
149+
elevation = 0.5 * (model.soil_properties["x_top [m]"] + model.soil_properties["x_bottom [m]"])
128150
# soil weight for each element where we have soil and pile
129151
element_sw = np.zeros(model.element_number)
130152

131153
for layer in model.soil.layers:
132154
elements_for_layer = model.soil_properties.loc[
133-
(model.soil_properties["x_top [m]"] <= layer.top)
134-
& (model.soil_properties["x_bottom [m]"] >= layer.bottom)
135-
].index
155+
(model.soil_properties["x_top [m]"] <= layer.top)
156+
& (model.soil_properties["x_bottom [m]"] >= layer.bottom)
157+
].index
136158

137159
if layer.axial_model is None:
138160
pass
139161
else:
140162
# Set local layer parameters for each element of the layer
141163
for i in elements_for_layer:
142164
# Calculate inner soil weight
143-
element_sw[i] = layer.weight * Vi[i] if elevation[i] <= model.soil.water_line else (layer.weight-10) * Vi[i]
165+
element_sw[i] = (
166+
layer.weight * Vi[i]
167+
if elevation[i] <= model.soil.water_line
168+
else (layer.weight - 10) * Vi[i]
169+
)
144170

145171
return element_sw.sum()
146172

147173

148174
def shaft_resistance(
149-
model,
150-
outer_shaft:bool = True,
151-
inner_shaft:bool = True,
152-
) -> float:
175+
model,
176+
outer_shaft: bool = True,
177+
inner_shaft: bool = True,
178+
) -> float:
153179
"""Calculates shaft resistance of the pile based on the axial models assigned to the SoilProfile layers. (Unit: kN)
154180
155181
Parameters
@@ -170,44 +196,60 @@ def shaft_resistance(
170196
So, Si = _pile_element_surface(model)
171197

172198
# get vertical effective stress
173-
sigveff = 0.5*(model.soil_properties["sigma_v top [kPa]"]+ model.soil_properties["sigma_v bottom [kPa]"])
199+
sigveff = 0.5 * (
200+
model.soil_properties["sigma_v top [kPa]"] + model.soil_properties["sigma_v bottom [kPa]"]
201+
)
174202

175203
# depth from ground
176-
depth_from_ground = (0.5*(model.soil_properties["xg_top [m]"]+model.soil_properties["xg_bottom [m]"])).abs()
204+
depth_from_ground = (
205+
0.5 * (model.soil_properties["xg_top [m]"] + model.soil_properties["xg_bottom [m]"])
206+
).abs()
177207

178208
# shaft resistance for each element where we have soil and pile
179-
element_fs = np.zeros((2,model.element_number))
209+
element_fs = np.zeros((2, model.element_number))
180210

181211
for layer in model.soil.layers:
182212
elements_for_layer = model.soil_properties.loc[
183-
(model.soil_properties["x_top [m]"] <= layer.top)
184-
& (model.soil_properties["x_bottom [m]"] >= layer.bottom)
185-
].index
213+
(model.soil_properties["x_top [m]"] <= layer.top)
214+
& (model.soil_properties["x_bottom [m]"] >= layer.bottom)
215+
].index
186216

187217
if layer.axial_model is None:
188218
pass
189219
else:
190220
# Set local layer parameters for each element of the layer
191221
for i in elements_for_layer:
192222
# depth from ground
193-
depth_from_ground = (model.soil_properties[["xg_top [m]", "xg_bottom [m]"]].iloc[i]).abs().mean()
223+
depth_from_ground = (
224+
(model.soil_properties[["xg_top [m]", "xg_bottom [m]"]].iloc[i]).abs().mean()
225+
)
194226

195227
# Calculate outer shaft resistance
196-
element_fs[0,i] = layer.axial_model.unit_shaft_friction(
197-
sig=sigveff[i],
198-
depth_from_top_of_layer=depth_from_ground,
199-
layer_height=(layer.top - layer.bottom),
200-
) * layer.axial_model.unit_shaft_signature(So[i],Si[i])['out'] * So[i] * layer.axial_model.t_multiplier
228+
element_fs[0, i] = (
229+
layer.axial_model.unit_shaft_friction(
230+
sig=sigveff[i],
231+
depth_from_top_of_layer=depth_from_ground,
232+
layer_height=(layer.top - layer.bottom),
233+
)
234+
* layer.axial_model.unit_shaft_signature(So[i], Si[i])["out"]
235+
* So[i]
236+
* layer.axial_model.t_multiplier
237+
)
201238
# Calculate inner shaft resistance
202-
element_fs[1,i] = layer.axial_model.unit_shaft_friction(
203-
sig=sigveff[i],
204-
depth_from_top_of_layer=depth_from_ground,
205-
layer_height=(layer.top - layer.bottom),
206-
) * layer.axial_model.unit_shaft_signature(So[i],Si[i])['in'] * Si[i] * layer.axial_model.t_multiplier
239+
element_fs[1, i] = (
240+
layer.axial_model.unit_shaft_friction(
241+
sig=sigveff[i],
242+
depth_from_top_of_layer=depth_from_ground,
243+
layer_height=(layer.top - layer.bottom),
244+
)
245+
* layer.axial_model.unit_shaft_signature(So[i], Si[i])["in"]
246+
* Si[i]
247+
* layer.axial_model.t_multiplier
248+
)
207249

208250
if outer_shaft is False:
209-
element_fs[0,:] = 0.0
251+
element_fs[0, :] = 0.0
210252
if inner_shaft is False:
211-
element_fs[1,:] = 0.0
253+
element_fs[1, :] = 0.0
212254

213-
return element_fs.sum()
255+
return element_fs.sum()

0 commit comments

Comments
 (0)