xslope 0.1.8__tar.gz → 0.1.10__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.
- {xslope-0.1.8/xslope.egg-info → xslope-0.1.10}/PKG-INFO +1 -1
- {xslope-0.1.8 → xslope-0.1.10}/xslope/_version.py +1 -1
- {xslope-0.1.8 → xslope-0.1.10}/xslope/plot_seep.py +4 -4
- {xslope-0.1.8 → xslope-0.1.10}/xslope/solve.py +7 -7
- {xslope-0.1.8 → xslope-0.1.10/xslope.egg-info}/PKG-INFO +1 -1
- {xslope-0.1.8 → xslope-0.1.10}/LICENSE +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/MANIFEST.in +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/NOTICE +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/README.md +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/pyproject.toml +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/setup.cfg +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/__init__.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/advanced.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/fem.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/fileio.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/global_config.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/mesh copy.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/mesh.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/plot.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/plot_fem.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/search.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/seep.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope/slice.py +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope.egg-info/SOURCES.txt +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope.egg-info/dependency_links.txt +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope.egg-info/requires.txt +0 -0
- {xslope-0.1.8 → xslope-0.1.10}/xslope.egg-info/top_level.txt +0 -0
|
@@ -250,7 +250,7 @@ def plot_seep_solution(seep_data, solution, figsize=(14, 6), levels=20, base_mat
|
|
|
250
250
|
contour lines are shown. Default is True.
|
|
251
251
|
phreatic : bool, optional
|
|
252
252
|
If True, plots the phreatic surface (where pressure head = 0) as a thick red line.
|
|
253
|
-
Default is True. Only
|
|
253
|
+
Default is True. Only plotted if pore pressure is negative somewhere in the domain.
|
|
254
254
|
alpha : float, optional
|
|
255
255
|
Transparency level (0-1) for material zone fill colors. Default is 0.4.
|
|
256
256
|
pad_frac : float, optional
|
|
@@ -461,16 +461,16 @@ def plot_seep_solution(seep_data, solution, figsize=(14, 6), levels=20, base_mat
|
|
|
461
461
|
# Solid lines for contours
|
|
462
462
|
ax.tricontour(triang, contour_data, levels=contour_levels, colors="k", linewidths=0.5)
|
|
463
463
|
|
|
464
|
-
# Phreatic surface (pressure head = 0)
|
|
464
|
+
# Phreatic surface (pressure head = 0)
|
|
465
465
|
# Check if phreatic surface exists (pore pressure must be negative somewhere)
|
|
466
466
|
has_phreatic = False
|
|
467
|
-
if phreatic
|
|
467
|
+
if phreatic:
|
|
468
468
|
# Check if pore pressure goes negative (indicating a phreatic surface exists)
|
|
469
469
|
u = solution.get("u")
|
|
470
470
|
if u is not None and np.min(u) < 0:
|
|
471
471
|
elevation = nodes[:, 1] # y-coordinate is elevation
|
|
472
472
|
pressure_head = head - elevation
|
|
473
|
-
ax.tricontour(triang, pressure_head, levels=[0], colors="
|
|
473
|
+
ax.tricontour(triang, pressure_head, levels=[0], colors="black", linewidths=2.0)
|
|
474
474
|
has_phreatic = True
|
|
475
475
|
|
|
476
476
|
# Overlay flowlines if variable is head and phi is available
|
|
@@ -77,7 +77,7 @@ def solve_selected(method_name, slice_df, rapid=False):
|
|
|
77
77
|
print(f'Lowe & Karafiath: FS={result["FS"]:.3f}')
|
|
78
78
|
return result
|
|
79
79
|
|
|
80
|
-
def solve_all(slice_df):
|
|
80
|
+
def solve_all(slice_df, rapid=False):
|
|
81
81
|
"""
|
|
82
82
|
Executes all available limit equilibrium solution methods sequentially.
|
|
83
83
|
|
|
@@ -111,12 +111,12 @@ def solve_all(slice_df):
|
|
|
111
111
|
If any method fails, an error message is displayed but execution continues
|
|
112
112
|
with the remaining methods.
|
|
113
113
|
"""
|
|
114
|
-
solve_selected('oms', slice_df)
|
|
115
|
-
solve_selected('bishop', slice_df)
|
|
116
|
-
solve_selected('janbu', slice_df)
|
|
117
|
-
solve_selected('corps_engineers', slice_df)
|
|
118
|
-
solve_selected('lowe_karafiath', slice_df)
|
|
119
|
-
solve_selected('spencer', slice_df)
|
|
114
|
+
solve_selected('oms', slice_df, rapid=rapid)
|
|
115
|
+
solve_selected('bishop', slice_df, rapid=rapid)
|
|
116
|
+
solve_selected('janbu', slice_df, rapid=rapid)
|
|
117
|
+
solve_selected('corps_engineers', slice_df, rapid=rapid)
|
|
118
|
+
solve_selected('lowe_karafiath', slice_df, rapid=rapid)
|
|
119
|
+
solve_selected('spencer', slice_df, rapid=rapid)
|
|
120
120
|
|
|
121
121
|
def oms(slice_df, debug=False):
|
|
122
122
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|