Skip to content

Commit 223e331

Browse files
author
Pablo Vasconez
committed
feat(pilecore_tension): add begemann excavation stress reducion in tension create_multi_cpt_payload
1 parent f228682 commit 223e331

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed

notebooks/PileCore_multi_cpt_tension.ipynb

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,28 @@
215215
"# Required when providing an excavation_depth. The values can be:\n",
216216
"# - 1.0: if installation is not low in vibration (niet-trillingsarm) and piles are installed after excavating\n",
217217
"# - 0.5: (wortel-methode) if piles have been installed before excavation or installation is low-vibrating\n",
218-
"excavation_param_t = 0.5"
218+
"excavation_param_t = 0.5\n",
219+
"\n",
220+
"# ** excavation_stress_reduction_method:\n",
221+
"# Method used to calculate the stress reduction due to the excavation applied to the effective and total stresses.\n",
222+
"# Only used when `excavation_depth_nap` is different than `None`. It can be:\n",
223+
"# - \"constant\": The stress reduction below the excavation is constant with depth. The stress reduction is equal to\n",
224+
"# the original effective stress (i.e. before the excavation) at the excavation depth.\n",
225+
"# - \"begemann\": The stress reduction below the excavation decreases with depth according to the Begemann method.\n",
226+
"excavation_stress_reduction_method = \"constant\"\n",
227+
"\n",
228+
"# ** excavation_width:\n",
229+
"# Width of the excavation [m].\n",
230+
"# Used to calculate the stress reduction due to the excavation if the Begemann method is selected.\n",
231+
"# Accepted values: > 0.0\n",
232+
"excavation_width = None\n",
233+
"\n",
234+
"# ** excavation_edge_distance:\n",
235+
"# Distance from the edge of the excavation to the pile centerline [m].\n",
236+
"# Used to calculate the stress reduction due to the excavation if the Begemann method is selected.\n",
237+
"# Accepted values: >= 0.0 and <= 0.5 * excavation_width\n",
238+
"# Note: 0.0 means pile at edge of excavation, 0.5 * excavation_width means pile at center of excavation.\n",
239+
"excavation_edge_distance = None"
219240
]
220241
},
221242
{
@@ -937,6 +958,9 @@
937958
" excavation_depth_nap=excavation_depth_nap,\n",
938959
" pile=pile,\n",
939960
" excavation_param_t=excavation_param_t,\n",
961+
" excavation_stress_reduction_method=excavation_stress_reduction_method,\n",
962+
" excavation_width=excavation_width,\n",
963+
" excavation_edge_distance=excavation_edge_distance,\n",
940964
" pile_head_level_nap=pile_head_level_nap,\n",
941965
" pile_tip_levels_nap=pile_tip_levels_nap,\n",
942966
" gamma_f_nk=gamma_f_nk,\n",

src/pypilecore/input/tension.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ def create_multi_cpt_payload(
2525
top_of_tension_zone_nap: float | None = None,
2626
individual_top_of_tension_zone_nap: Mapping[Any, float] | None = None,
2727
excavation_param_t: float = 1.0,
28+
excavation_stress_reduction_method: Literal["constant", "begemann"] = "constant",
29+
excavation_width: float | None = None,
30+
excavation_edge_distance: float | None = None,
2831
individual_ocr: Mapping[str, float] | None = None,
2932
overrule_xi: float | None = None,
3033
gamma_f_nk: float = 1.0,
@@ -111,6 +114,27 @@ def create_multi_cpt_payload(
111114
excavation method.
112115
113116
See for more info NEN 9997-1+C2:2017 7.6.2.3.(10)(k)
117+
excavation_stress_reduction_method:
118+
Method used to calculate the stress reduction due to the excavation applied to the effective and total stresses.
119+
Only used when `excavation_depth_nap` is different than `None`. It can be:
120+
- "constant" (default): The stress reduction below the excavation is constant with depth. The stress reduction
121+
is equal to the original effective stress (i.e. before the excavation) at the excavation depth.
122+
- "begemann": The stress reduction below the excavation decreases with depth according to the Begemann method.
123+
This method uses the elastic solution of a strip load acting on a semi-infinite homogeneous soil mass.
124+
The load has a width equal to the excavation width and a magnitude equal to the original effective stress at
125+
the excavation depth.
126+
Regardless the method, the stress reduction applied above the excavation is equal to the original effective stress
127+
at each corresponding depth.
128+
excavation_width:
129+
Width of the excavation [m]. Used to calculate the stress reduction due to the excavation if the Begemann method is selected.
130+
In this case, it must be provided and it must be > 0.
131+
excavation_edge_distance:
132+
Distance from the pile centerline to the excavation edge [m]. Used to calculate the stress reduction due to the excavation if
133+
the Begemann method is selected. In this case, it must be provided and it must be between 0.0 and 0.5 * excavation_width.
134+
135+
Note that:
136+
- 0.0 means that the pile is located at the edge of the excavation.
137+
- 0.5 * excavation_width means that the pile is at the center of the excavation.
114138
overrule_xi:
115139
Set a fixed value for xi in all calculations. Use with caution. This will
116140
overrule the calculation of xi-values based on the group-size, variation-
@@ -219,6 +243,16 @@ def create_multi_cpt_payload(
219243
# Add optional properties
220244
if excavation_depth_nap is not None:
221245
multi_cpt_payload["excavation_depth_nap"] = excavation_depth_nap
246+
if excavation_stress_reduction_method == "constant":
247+
multi_cpt_payload["excavation_settings"] = dict(
248+
stress_reduction_method="constant"
249+
)
250+
else:
251+
multi_cpt_payload["excavation_settings"] = dict(
252+
stress_reductin_method="begemann",
253+
excavation_width=excavation_width,
254+
excavation_edge_distance=excavation_edge_distance,
255+
)
222256
if overrule_xi is not None:
223257
multi_cpt_payload["overrule_xi"] = overrule_xi
224258
if pile_grid is not None:

0 commit comments

Comments
 (0)