wolfhece 2.2.14__py3-none-any.whl → 2.2.16__py3-none-any.whl

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.
@@ -39,7 +39,7 @@ from .drawing_obj import Element_To_Draw
39
39
  from .PyPalette import wolfpalette
40
40
  from .PyTranslate import _
41
41
  from .gpuview import GRID_N, Rectangle, VectorField
42
- from .pyshields import get_d_cr, get_d_cr_susp, izbach_d_cr, get_Shields_2D_Manning, get_friction_slope_2D_Manning, get_shear_velocity_2D_Manning
42
+ from .pyshields import get_d_cr, get_d_cr_susp, izbach_d_cr, get_Shields_2D_Manning, get_friction_slope_2D_Manning, get_shear_velocity_2D_Manning, get_shear_velocity_2D_Colebrook
43
43
  from .pyviews import WolfViews
44
44
  from .mesh2d.wolf2dprev import prev_parameters_simul, blocks_file
45
45
  from .GraphNotebook import PlotPanel
@@ -76,58 +76,126 @@ from .wolf_array import WolfArray, getkeyblock, header_wolf, WolfArrayMB, WolfAr
76
76
  from .mesh2d import wolf2dprev
77
77
  from .PyVertexvectors import vector, zone, Zones
78
78
 
79
+ from numba import jit, njit
79
80
 
80
81
  def outside_domain(val):
81
82
  """ Test if a value is outside the calculated domain """
82
83
  return val[0][0] is np.ma.masked or val[1][0] =='-'
83
84
 
84
- def q_splitting(q_left, q_right):
85
- """ Splitting of the normal flow between two nodes """
85
+ @jit(nopython=True, nogil=True, cache=True)
86
+ def splitting_rule(q_left:float, q_right:float) -> float:
87
+ """ Ponderation factor - Splitting at border between two nodes
88
+
89
+ :return: factor of the left node (0.5 = equal splitting)
90
+ """
91
+ epsilon = 1.e-100
92
+ prod_q = q_left * q_right # product of the two flows
93
+ sum_q = q_left + q_right # sum of the two flows
94
+ if prod_q > 0.:
95
+ # The 2 flows are in the same direction
96
+ if q_left > 0.:
97
+ # left is the upstream node
98
+ return 1.
99
+ else:
100
+ # right is the upstream node
101
+ return 0.
102
+ elif prod_q < 0.:
103
+ # The 2 flows are in opposite direction
104
+ if q_left > 0.:
105
+ if sum_q > 0.:
106
+ # The sum is positive, the left node is the upstream node
107
+ return 1.
108
+ elif sum_q < 0.:
109
+ # The sum is negative, the right node is the upstream node
110
+ return 0.
111
+ else:
112
+ # The sum is null, the flow is centered between the two nodes
113
+ return 0.5
114
+ elif q_left < 0.:
115
+ # CONFLICTING FLOWS
116
+ return 0.5
117
+ else:
118
+ # should not be possible
119
+ raise ValueError("Splitting rule: q_left is null but product is negative")
120
+ else:
121
+ # One flow is null or the product is so small that it is considered as null.
122
+ # FYI, in the GPU code, we compare to espilon.
123
+ if q_left>epsilon:
124
+ # left is the upstream node
125
+ return 1.
126
+ elif q_right<-epsilon:
127
+ # right is the upstream node
128
+ return 0.
129
+ else:
130
+ # The flow is centered between the two nodes
131
+ return .5
86
132
 
133
+ @jit(nopython=True, nogil=True, cache=True)
134
+ def q_splitting(q_left:float, q_right:float) -> float:
135
+ """ Splitting of the normal flow between two nodes """
136
+ #FIXME : use splitting_rule ?
137
+ epsilon = 1.e-100
87
138
  prod_q = q_left * q_right
88
- sum_q = q_left + q_right
139
+ sum_q = q_left + q_right
89
140
  if prod_q > 0.:
90
141
  if q_left > 0.:
91
142
  return q_left
92
143
  else:
93
144
  return q_right
94
145
  elif prod_q < 0.:
95
- if sum_q > 0.:
96
- return q_left
97
- elif sum_q < 0.:
98
- return q_right
146
+ if q_left > 0.:
147
+ if sum_q > 0.:
148
+ return q_left
149
+ elif sum_q < 0.:
150
+ return q_right
151
+ else:
152
+ return 0.
153
+ elif q_left < 0.:
154
+ # CONFLICTING FLOWS
155
+ return sum_q / 2.
99
156
  else:
100
- return 0.
157
+ # should not be possible
158
+ raise ValueError("Splitting rule: q_left is null but product is negative")
101
159
  else:
102
- if q_left<0.:
103
- return 0.
104
- elif q_right<0.:
105
- return 0.
160
+ if q_left>epsilon:
161
+ # Left is the upstream node
162
+ return q_left
163
+ elif q_right<-epsilon:
164
+ # right is the upstream node
165
+ return q_right
106
166
  else:
107
167
  return sum_q / 2.
108
168
 
109
- def u_splitting(q_left, q_right, h_left, h_right):
169
+ @jit(nopython=True, nogil=True, cache=True)
170
+ def u_splitting(q_left:float, q_right:float, h_left:float, h_right:float) -> float:
110
171
  """ Splitting of the normal flow velocity between two nodes """
111
-
172
+ #FIXME : use splitting_rule ?
173
+ epsilon = 1.e-100
112
174
  prod_q = q_left * q_right
113
- sum_q = q_left + q_right
175
+ sum_q = q_left + q_right
114
176
  if prod_q > 0.:
115
177
  if q_left > 0.:
116
178
  return q_left/h_left
117
179
  else:
118
180
  return q_right/h_right
119
181
  elif prod_q < 0.:
120
- if sum_q > 0.:
121
- return q_left/h_left
122
- elif sum_q < 0.:
123
- return q_right/h_right
182
+ if q_left > 0.:
183
+ if sum_q > 0.:
184
+ return q_left/h_left
185
+ elif sum_q < 0.:
186
+ return q_right/h_right
187
+ else:
188
+ return 0.
189
+ elif q_left < 0.:
190
+ return (q_left/h_left + q_right/h_right) / 2.
124
191
  else:
125
- return 0.
192
+ # should not be possible
193
+ raise ValueError("Splitting rule: q_left is null but product is negative")
126
194
  else:
127
- if q_left<0.:
128
- return 0.
129
- elif q_right<0.:
130
- return 0.
195
+ if q_left>epsilon:
196
+ return q_left / h_left
197
+ elif q_right<-epsilon:
198
+ return q_right / h_right
131
199
  else:
132
200
  return (q_left/h_left + q_right/h_right) / 2.
133
201
 
@@ -1507,6 +1575,7 @@ class OneWolfResult:
1507
1575
  """
1508
1576
  def __init__(self, idx:int=0, parent = None):
1509
1577
 
1578
+ self.parent:"Wolfresults_2D"
1510
1579
  self.parent = parent
1511
1580
 
1512
1581
  self.wx_exists = wx.GetApp() is not None
@@ -1539,6 +1608,13 @@ class OneWolfResult:
1539
1608
  self._sedimentdensity = 2.65
1540
1609
  self._force_update_shields = True # Force la MAJ du Shields si le diametre ou la densité change
1541
1610
 
1611
+ self._is_manning_strickler = True
1612
+ self._is_colebrook = False
1613
+
1614
+ self._has_turbulence_model = False
1615
+ self._cmu = 0.09
1616
+ self._cnu = 0.08
1617
+
1542
1618
  # self.mngselection = SelectionData(self.current)
1543
1619
 
1544
1620
  @property
@@ -1658,12 +1734,24 @@ class OneWolfResult:
1658
1734
  elif which==views_2D.HEAD:
1659
1735
  self._current=(self.qx**2.+self.qy**2.)**.5/self.waterdepth/(2.*9.81)+self.waterdepth+self.top
1660
1736
  nullvalue = self.qx.nullvalue
1737
+
1661
1738
  elif which==views_2D.KINETIC_ENERGY:
1662
1739
  self._current=self.k
1663
1740
  nullvalue = self.k.nullvalue
1664
1741
  elif which==views_2D.EPSILON:
1665
1742
  self._current=self.eps
1666
1743
  nullvalue = self.eps.nullvalue
1744
+
1745
+ elif which==views_2D.TURB_VISC_2D:
1746
+
1747
+ self._current = self.k**2./self.eps * self._cmu
1748
+ nullvalue = self.k.nullvalue
1749
+
1750
+ elif which==views_2D.TURB_VISC_3D:
1751
+ self.U_Shear = self.get_u_shear()
1752
+ self._current = self.U_Shear * self.waterdepth * self._cnu
1753
+ nullvalue = self.waterdepth.nullvalue
1754
+
1667
1755
  elif which==views_2D.VECTOR_FIELD_Q:
1668
1756
  self._current=(self.qx**2.+self.qy**2.)**.5
1669
1757
  nullvalue = self.qx.nullvalue
@@ -1966,7 +2054,12 @@ class OneWolfResult:
1966
2054
  qnorm = (self.qx**2.+self.qy**2.)**.5
1967
2055
  qnorm.array.mask=self.waterdepth.array.mask
1968
2056
 
1969
- _u_shear = np.asarray([get_shear_velocity_2D_Manning(qnorm.array[i,j],
2057
+ if self._is_manning_strickler:
2058
+ _u_shear = np.asarray([get_shear_velocity_2D_Manning(qnorm.array[i,j],
2059
+ self.waterdepth.array[i,j],
2060
+ self.rough_n.array.data[i,j]) for i,j in ij])
2061
+ elif self._is_colebrook:
2062
+ _u_shear = np.asarray([get_shear_velocity_2D_Colebrook(qnorm.array[i,j],
1970
2063
  self.waterdepth.array[i,j],
1971
2064
  self.rough_n.array.data[i,j]) for i,j in ij])
1972
2065
 
@@ -1974,9 +2067,16 @@ class OneWolfResult:
1974
2067
 
1975
2068
  return u_shear
1976
2069
 
2070
+ if not (self._is_manning_strickler or self._is_colebrook):
2071
+ logging.error(_('Surface friction is not Manning-Strickler or Colebrook.'))
2072
+ logging.error(_('Cannot compute shear velocity or Program it... in get_u_shear'))
2073
+ ret = WolfArray(mold=self.waterdepth)
2074
+ ret.array.fill(0.)
2075
+ return ret
2076
+
1977
2077
  logging.info(_('Computing shear velocity'))
1978
2078
  u_shear = compute()
1979
- logging.info(_('End of computing shear velocity'))
2079
+ # logging.info(_('End of computing shear velocity'))
1980
2080
 
1981
2081
  return u_shear
1982
2082
 
@@ -2207,12 +2307,14 @@ class Wolfresults_2D(Element_To_Draw):
2207
2307
  if fname is not None:
2208
2308
 
2209
2309
  if loader is not None:
2310
+ # Used for GPU results
2210
2311
  if loader(fname) <0:
2211
2312
  self.loaded = False
2212
2313
  logging.error(_('Error while loading results - Abort !'))
2213
2314
  return
2214
2315
 
2215
2316
  else:
2317
+ # We are here for "classic" CPU results
2216
2318
  parts=splitext(fname)
2217
2319
  if len(parts)>1:
2218
2320
  self.filename = parts[0]
@@ -2253,50 +2355,78 @@ class Wolfresults_2D(Element_To_Draw):
2253
2355
  curhead.translx = self.translx
2254
2356
  curhead.transly = self.transly
2255
2357
 
2256
- self.myblocks[getkeyblock(i)].waterdepth.dx = dx
2257
- self.myblocks[getkeyblock(i)].waterdepth.dy = dy
2258
- self.myblocks[getkeyblock(i)].waterdepth.nbx = nbx
2259
- self.myblocks[getkeyblock(i)].waterdepth.nby = nby
2260
- self.myblocks[getkeyblock(i)].waterdepth.origx = ox
2261
- self.myblocks[getkeyblock(i)].waterdepth.origy = oy
2262
- self.myblocks[getkeyblock(i)].waterdepth.translx = self.translx
2263
- self.myblocks[getkeyblock(i)].waterdepth.transly = self.transly
2264
-
2265
- self.myblocks[getkeyblock(i)].top.dx = dx
2266
- self.myblocks[getkeyblock(i)].top.dy = dy
2267
- self.myblocks[getkeyblock(i)].top.nbx = nbx
2268
- self.myblocks[getkeyblock(i)].top.nby = nby
2269
- self.myblocks[getkeyblock(i)].top.origx = ox
2270
- self.myblocks[getkeyblock(i)].top.origy = oy
2271
- self.myblocks[getkeyblock(i)].top.translx = self.translx
2272
- self.myblocks[getkeyblock(i)].top.transly = self.transly
2273
-
2274
- self.myblocks[getkeyblock(i)].qx.dx = dx
2275
- self.myblocks[getkeyblock(i)].qx.dy = dy
2276
- self.myblocks[getkeyblock(i)].qx.nbx = nbx
2277
- self.myblocks[getkeyblock(i)].qx.nby = nby
2278
- self.myblocks[getkeyblock(i)].qx.origx = ox
2279
- self.myblocks[getkeyblock(i)].qx.origy = oy
2280
- self.myblocks[getkeyblock(i)].qx.translx = self.translx
2281
- self.myblocks[getkeyblock(i)].qx.transly = self.transly
2282
-
2283
- self.myblocks[getkeyblock(i)].qy.dx = dx
2284
- self.myblocks[getkeyblock(i)].qy.dy = dy
2285
- self.myblocks[getkeyblock(i)].qy.nbx = nbx
2286
- self.myblocks[getkeyblock(i)].qy.nby = nby
2287
- self.myblocks[getkeyblock(i)].qy.origx = ox
2288
- self.myblocks[getkeyblock(i)].qy.origy = oy
2289
- self.myblocks[getkeyblock(i)].qy.translx = self.translx
2290
- self.myblocks[getkeyblock(i)].qy.transly = self.transly
2291
-
2292
- self.myblocks[getkeyblock(i)].rough_n.dx = dx
2293
- self.myblocks[getkeyblock(i)].rough_n.dy = dy
2294
- self.myblocks[getkeyblock(i)].rough_n.nbx = nbx
2295
- self.myblocks[getkeyblock(i)].rough_n.nby = nby
2296
- self.myblocks[getkeyblock(i)].rough_n.origx = ox
2297
- self.myblocks[getkeyblock(i)].rough_n.origy = oy
2298
- self.myblocks[getkeyblock(i)].rough_n.translx = self.translx
2299
- self.myblocks[getkeyblock(i)].rough_n.transly = self.transly
2358
+ curblock.waterdepth.dx = dx
2359
+ curblock.waterdepth.dy = dy
2360
+ curblock.waterdepth.nbx = nbx
2361
+ curblock.waterdepth.nby = nby
2362
+ curblock.waterdepth.origx = ox
2363
+ curblock.waterdepth.origy = oy
2364
+ curblock.waterdepth.translx = self.translx
2365
+ curblock.waterdepth.transly = self.transly
2366
+
2367
+ curblock.top.dx = dx
2368
+ curblock.top.dy = dy
2369
+ curblock.top.nbx = nbx
2370
+ curblock.top.nby = nby
2371
+ curblock.top.origx = ox
2372
+ curblock.top.origy = oy
2373
+ curblock.top.translx = self.translx
2374
+ curblock.top.transly = self.transly
2375
+
2376
+ curblock.qx.dx = dx
2377
+ curblock.qx.dy = dy
2378
+ curblock.qx.nbx = nbx
2379
+ curblock.qx.nby = nby
2380
+ curblock.qx.origx = ox
2381
+ curblock.qx.origy = oy
2382
+ curblock.qx.translx = self.translx
2383
+ curblock.qx.transly = self.transly
2384
+
2385
+ curblock.qy.dx = dx
2386
+ curblock.qy.dy = dy
2387
+ curblock.qy.nbx = nbx
2388
+ curblock.qy.nby = nby
2389
+ curblock.qy.origx = ox
2390
+ curblock.qy.origy = oy
2391
+ curblock.qy.translx = self.translx
2392
+ curblock.qy.transly = self.transly
2393
+
2394
+ curblock.rough_n.dx = dx
2395
+ curblock.rough_n.dy = dy
2396
+ curblock.rough_n.nbx = nbx
2397
+ curblock.rough_n.nby = nby
2398
+ curblock.rough_n.origx = ox
2399
+ curblock.rough_n.origy = oy
2400
+ curblock.rough_n.translx = self.translx
2401
+ curblock.rough_n.transly = self.transly
2402
+
2403
+ curblock.eps.dx = dx
2404
+ curblock.eps.dy = dy
2405
+ curblock.eps.nbx = nbx
2406
+ curblock.eps.nby = nby
2407
+ curblock.eps.origx = ox
2408
+ curblock.eps.origy = oy
2409
+ curblock.eps.translx = self.translx
2410
+ curblock.eps.transly = self.transly
2411
+
2412
+ curblock.k.dx = dx
2413
+ curblock.k.dy = dy
2414
+ curblock.k.nbx = nbx
2415
+ curblock.k.nby = nby
2416
+ curblock.k.origx = ox
2417
+ curblock.k.origy = oy
2418
+ curblock.k.translx = self.translx
2419
+ curblock.k.transly = self.transly
2420
+
2421
+ curblock._is_manning_strickler = self.myparam.blocks[i].is_Manning_surface_friction
2422
+ curblock._is_colebrook = self.myparam.blocks[i].is_Colebrook_surface_friction
2423
+ curblock._has_turbulence_model = self.myparam.blocks[i].has_turbulence
2424
+
2425
+ _param_turb = self.myparam.blocks[i].get_params_turbulence()
2426
+ if 'cmu' in _param_turb:
2427
+ curblock._cmu = _param_turb['cmu']
2428
+ if 'cnu' in _param_turb:
2429
+ curblock._cnu = _param_turb['cnu']
2300
2430
 
2301
2431
  else:
2302
2432
  nb_blocks = self.myblocfile.nb_blocks
@@ -2310,6 +2440,18 @@ class Wolfresults_2D(Element_To_Draw):
2310
2440
  curblock.qx.set_header(self.mymnap.head_blocks[getkeyblock(i)])
2311
2441
  curblock.qy.set_header(self.mymnap.head_blocks[getkeyblock(i)])
2312
2442
  curblock.rough_n.set_header(self.mymnap.head_blocks[getkeyblock(i)])
2443
+ curblock.eps.set_header(self.mymnap.head_blocks[getkeyblock(i)])
2444
+ curblock.k.set_header(self.mymnap.head_blocks[getkeyblock(i)])
2445
+
2446
+ curblock._is_manning_strickler = self.myparam.blocks[i].is_Manning_surface_friction
2447
+ curblock._is_colebrook = self.myparam.blocks[i].is_Colebrook_surface_friction
2448
+ curblock._has_turbulence_model = self.myparam.blocks[i].has_turbulence
2449
+
2450
+ _param_turb = self.myparam.blocks[i].get_params_turbulence()
2451
+ if 'cmu' in _param_turb:
2452
+ curblock._cmu = _param_turb['cmu']
2453
+ if 'cnu' in _param_turb:
2454
+ curblock._cnu = _param_turb['cnu']
2313
2455
 
2314
2456
  self.allocate_ressources()
2315
2457
  self.read_topography()
@@ -2832,7 +2974,6 @@ class Wolfresults_2D(Element_To_Draw):
2832
2974
  self.myparam.read_file(self.filename)
2833
2975
 
2834
2976
  self.myblocfile = blocks_file(self)
2835
- # self.myblocfile.read_file()
2836
2977
 
2837
2978
  self.mymnap = WolfArrayMNAP(self.filename)
2838
2979
 
@@ -2864,7 +3005,7 @@ class Wolfresults_2D(Element_To_Draw):
2864
3005
  for curblock in self.myblocks.values():
2865
3006
  curblock.filter_independent_zones(n_largest)
2866
3007
 
2867
- def set_currentview(self, which=None, force_wx=False, force_updatepal:bool=False):
3008
+ def set_currentview(self, which:views_2D = None, force_wx:bool = False, force_updatepal:bool=False):
2868
3009
  """
2869
3010
  Set the current view --> see 'views_2D' for supported values
2870
3011
 
@@ -2895,11 +3036,14 @@ class Wolfresults_2D(Element_To_Draw):
2895
3036
  self.plotting=True
2896
3037
  self.mimic_plotdata()
2897
3038
 
2898
- if which in VIEWS_SEDIMENTARY:
3039
+ if which in VIEWS_SEDIMENTARY + [views_2D.TURB_VISC_3D, views_2D.U_SHEAR]:
2899
3040
 
2900
3041
  if not self.loaded_rough:
2901
3042
  self.read_roughness_param()
2902
3043
 
3044
+ if which in [views_2D.KINETIC_ENERGY, views_2D.TURB_VISC_2D, views_2D.TURB_VISC_3D, views_2D.EPSILON]:
3045
+ self.read_oneresult(self.current_result)
3046
+
2903
3047
  for curblock in self.myblocks.values():
2904
3048
  curblock.set_current(which)
2905
3049
 
@@ -2933,6 +3077,8 @@ class Wolfresults_2D(Element_To_Draw):
2933
3077
  if self.mapviewer is not None:
2934
3078
  self.reset_plot()
2935
3079
  self.mapviewer.Refresh()
3080
+ else:
3081
+ logging.error(_('Unknown view - {}'.format(which)))
2936
3082
 
2937
3083
  def allocate_ressources(self):
2938
3084
  """Allocation de l'espace mémoire utile pour le stockage des résultats de chaque bloc"""
@@ -1,18 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wolfhece
3
- Version: 2.2.14
3
+ Version: 2.2.16
4
4
  Author-email: Pierre Archambeau <pierre.archambeau@uliege.be>
5
5
  Project-URL: Homepage, https://uee.uliege.be/hece
6
6
  Project-URL: Issues, https://uee.uliege.be/hece
7
7
  Classifier: Programming Language :: Python :: 3.10
8
8
  Classifier: Programming Language :: Python :: 3.11
9
9
  Classifier: Programming Language :: Python :: 3.12
10
- Classifier: Programming Language :: Python :: 3.13
11
10
  Classifier: Operating System :: Microsoft :: Windows :: Windows 10
12
11
  Classifier: Operating System :: Microsoft :: Windows :: Windows 11
13
12
  Classifier: Operating System :: POSIX :: Linux
14
13
  Classifier: Topic :: Scientific/Engineering :: Physics
15
- Requires-Python: <3.14,>=3.10
14
+ Requires-Python: <3.13,>=3.10
16
15
  Description-Content-Type: text/markdown
17
16
  Requires-Dist: wxpython==4.2.*
18
17
  Requires-Dist: pyogrio
@@ -4,12 +4,12 @@ wolfhece/GraphNotebook.py,sha256=2TR8qjEwpMtl34QWgYNVe_PgTnuwhUxT5f9Y2zrmN2U,282
4
4
  wolfhece/GraphProfile.py,sha256=OCgJo0YFFBI6H1z-5egJsOOoWF_iziiza0-bbPejNMc,69656
5
5
  wolfhece/Lidar2002.py,sha256=bX-nIzdpjD7rOfEgJpTeaW6rIdAXwDp_z4YTM9CgANY,6068
6
6
  wolfhece/ManageParams.py,sha256=EeuUI5Vvh9ixCvYf8YShMC1s1Yacc7OxOCN7q81gqiQ,517
7
- wolfhece/Model1D.py,sha256=SI4oNF_J3MdjiWZoizS8kuRXLMVyymX9dYfYJNVCQVI,476989
7
+ wolfhece/Model1D.py,sha256=snEmu8Uj2YGcp1ybPnly-4A389XRnuOujGduqInNcgw,477001
8
8
  wolfhece/PandasGrid.py,sha256=YIleVkUkoP2MjtQBZ9Xgwk61zbgMj4Pmjj-clVTfPRs,2353
9
9
  wolfhece/PyConfig.py,sha256=Y0wtSIFpAMYa7IByh7hbW-WEOVjNsQEduq7vhIYdZQw,16716
10
10
  wolfhece/PyCrosssections.py,sha256=igU_ELrg5VrHU6RNbF5tHxPyVImpR3xdpfopJYc7haw,114711
11
- wolfhece/PyDraw.py,sha256=MUxnzykOYLJFkF9tA6nutkasSTyDEuNzbwnfa_vmZF8,635057
12
- wolfhece/PyGui.py,sha256=jhpOPYRDG3ms1oi7FUs2W80T4SdPssZEnijxqFtn6vA,145199
11
+ wolfhece/PyDraw.py,sha256=JtBWSceBWlP7oFT6hvPoQ3Oa-4KVZMvq20Ktroae7rY,645008
12
+ wolfhece/PyGui.py,sha256=rOAjxcVuRJ7M76pf5g4o65yxJugVgu9NzWPV3LCn2Ts,145668
13
13
  wolfhece/PyGuiHydrology.py,sha256=sKafpOopBg50L5llZCI_fZtbebVTDtxvoRI6-osUwhg,14745
14
14
  wolfhece/PyHydrographs.py,sha256=1P5XAURNqCvtSsMQXhOn1ihjTpr725sRsZdlCEhhk6M,3730
15
15
  wolfhece/PyPalette.py,sha256=k9b_95GYD0USQ8DS5zGXeZ577712U6772kmhEbJtlXw,35406
@@ -17,14 +17,14 @@ wolfhece/PyParams.py,sha256=Dh9C_WYICMjo3m9roRySsu8ZgFzzYhSr6RpbaXZni0M,99423
17
17
  wolfhece/PyPictures.py,sha256=m1kY0saW6Y9Q0bDCo47lW6XxDkBrbQG-Fd8uVn8G5ic,2514
18
18
  wolfhece/PyTranslate.py,sha256=4appkmNeHHZLFmUtaA_k5_5QL-5ymxnbVN4R2OblmtE,622
19
19
  wolfhece/PyVertex.py,sha256=WT2UprotBUEA6rvs8kXfPRscKrhIL4_pya2UylzoBJE,50385
20
- wolfhece/PyVertexvectors.py,sha256=yPqE1rmqCSAucjNjSo1_srKHMwjqYWe0lx7S2Wbpryw,327905
21
- wolfhece/PyWMS.py,sha256=e6cMA72xLnpFZQtM99lItTyIfUQKz0f5f1iL_bwJVPQ,9303
20
+ wolfhece/PyVertexvectors.py,sha256=D-7aLqxAcJ39xDx1fwA1zzP1uFR28IiZUjFwpQEcv8E,328102
21
+ wolfhece/PyWMS.py,sha256=-wU-oWS5il1z702gYd90xHx5O7PvGNr9nb693oue_cI,31412
22
22
  wolfhece/RatingCurve.py,sha256=bUjIrQjvIjkD4V-z8bZmA6pe1ILtYNM0-3fT6YUY1RU,22498
23
23
  wolfhece/RatingCurveData.py,sha256=5UvnIm89BwqjnEbLCcY3CA8WoFd_xHJbooNy62fX5iY,57660
24
24
  wolfhece/RatingCurve_xml.py,sha256=cUjReVMHFKtakA2wVey5zz6lCgHlSr72y7ZfswZDvTM,33891
25
25
  wolfhece/ReadDataDCENN.py,sha256=vm-I4YMryvRldjXTvRYEUCxZsjb_tM7U9yj6OaPyD0k,1538
26
26
  wolfhece/Results2DGPU.py,sha256=45bLAkWvqHcw60QIP7qXyizbmS7buoDC7ndzOVfiWXg,26302
27
- wolfhece/__init__.py,sha256=5ijazf1b2m6y5V8VJwbYKh0AVnTSwuwrmSIu7rp21Ds,502
27
+ wolfhece/__init__.py,sha256=ZansIsawdQSEC-xoOW33zVZEWjdljGsIIVVAMJSus08,504
28
28
  wolfhece/_add_path.py,sha256=nudniS-lsgHwXXq5o626XRDzIeYj76GoGKYt6lcu2Nc,616
29
29
  wolfhece/analyze_vect.py,sha256=3lkMwaQ4KRddBVRvlP9PcM66wZwwC0eCmypP91AW-os,6015
30
30
  wolfhece/cli.py,sha256=U8D7e_OezfrRfgMsa4TyQ7rI4voLKSY3RK-c8fb6rrw,3156
@@ -33,7 +33,7 @@ wolfhece/dike.py,sha256=eG9EDCRk46Nlzpg5OycUeOag_T8joyJ2wzTkQgAT5F0,30710
33
33
  wolfhece/drawing_obj.py,sha256=7vY04B6r08nurTTFmBXHyR5tVIF1YzAEw_uz4pqTDIw,4233
34
34
  wolfhece/eikonal.py,sha256=iDeDs571sVXGe4IsPSJ1Sa4hX8Ri2jWE7u83xzvA2K8,23189
35
35
  wolfhece/flow_SPWMI.py,sha256=XDAelwAY-3rYOR0WKW3fgYJ_r8DU4IP6Y5xULW421tk,20956
36
- wolfhece/friction_law.py,sha256=MtZJLo-pTj3-Fw-w12z1LSgSIDrH-JGR0iD9wer_fpQ,5498
36
+ wolfhece/friction_law.py,sha256=_VrcFm2E--RfOvGjsazL5Zve_p5fIhzsT62AElI5E04,5501
37
37
  wolfhece/gpuview.py,sha256=Jql8pLZ0PpvZ_ScT-U4jsXANZ9j4-m_RWhsLA2HISuQ,24544
38
38
  wolfhece/images_tiles.py,sha256=w5BX6kRqA0wW9TWyKrJUIRl-XyqHclq_kp5ET2VA0Sg,3227
39
39
  wolfhece/import_ascfiles.py,sha256=6Zl8qBR9c6VtyziookQ8YE9KC0GtW_J9WFt5ubyGp-s,4465
@@ -51,20 +51,20 @@ wolfhece/pybridges.py,sha256=bFAqjL4ColeJtwvyCPGQ8VllWoq1RbVWXxFrdfrvqm8,65954
51
51
  wolfhece/pydike.py,sha256=bKUwVvFMtAI4np4JJAkIa4xBDLw9l4py3l-Mjlfr_rM,2242
52
52
  wolfhece/pylogging.py,sha256=4TI8hgBB65z-zpvU5Rfa2jkPXPhJaqXjHVPwbcdzTNc,4528
53
53
  wolfhece/pypolygons_scen.py,sha256=WubNPQEk4fC--4qIHZK6mJqQnRs4mAWUpmjRL8q33Sw,46069
54
- wolfhece/pyshields.py,sha256=6YncgmcA6QvbyIl4jbFRf24uJVjhiSplQKWtZH42lXI,24108
54
+ wolfhece/pyshields.py,sha256=ymH393EQys2aZmh41ccJnWmmlF7dVa-eTY32jFgwK08,25269
55
55
  wolfhece/pyviews.py,sha256=zuZjWUptRDm1MTE1PN4Xj_qSITnojgDMG0LlFIBH3SE,13739
56
56
  wolfhece/pywalous.py,sha256=mWB7UxlYMIbPxNUDlONQEjcOOy9VSaRU9aYWZ5IFLu8,19164
57
57
  wolfhece/rain_SPWMI.py,sha256=qCfcmF7LajloOaCwnTrrSMzyME03YyilmRUOqrPrv3U,13846
58
58
  wolfhece/textpillow.py,sha256=map7HsGYML_o5NHRdFg2s_TVQed_lDnpYNDv27MM0Vw,14130
59
59
  wolfhece/tools2d_dll.py,sha256=oU0m9XYAf4CZsMoB68IuKeE6SQh-AqY7O5NVED8r9uw,13125
60
60
  wolfhece/tools_mpl.py,sha256=gQ3Jg1iuZiecmMqa5Eli2ZLSkttu68VXL8YmMDBaEYU,564
61
- wolfhece/wolf_array.py,sha256=PlImSCX5lUeoqPR7ogqak_Zl6dLyGn5EXUzeD_6-xAU,497218
61
+ wolfhece/wolf_array.py,sha256=COkhCvihqI3OyK_cKWC_NNu9NKjErEbDsC85A1hXQ-8,497389
62
62
  wolfhece/wolf_hist.py,sha256=7jeVrgSkM3ErJO6SRMH_PGzfLjIdw8vTy87kesldggk,3582
63
- wolfhece/wolf_texture.py,sha256=KlT8g4dBmH819n8mqQ8pCHLGST1C5bd4OaR_et5wsUM,18092
63
+ wolfhece/wolf_texture.py,sha256=_YMMz3w1re70rrpO_AcFlb7QC4R3_631Hgnl5BRNH1o,20832
64
64
  wolfhece/wolf_tiles.py,sha256=v-HohqaWuMYdn75XLnA22dlloAG90iwnIqrgnB0ASQ4,10488
65
65
  wolfhece/wolf_vrt.py,sha256=wbxXVN7TL9zgdyF79S-4e3pje6wJEAgBEfF_Y8kkzxs,14271
66
66
  wolfhece/wolf_zi_db.py,sha256=baE0niMCzybWGSvPJc5FNxo9ZxsGfU4p-FmfiavFHAs,12967
67
- wolfhece/wolfresults_2D.py,sha256=N-L9gmurQEMUjrC23HJjWRRaIxvcdhk6R8KKcb94LJw,218231
67
+ wolfhece/wolfresults_2D.py,sha256=33IQUs98-S19aJhWy7TXEFcaNGlKpe4ZqlxOouVOC1Q,224101
68
68
  wolfhece/xyz_file.py,sha256=1pzLFmmdHca4yBVR9Jitic6N82rY28mRytGC1zMbY28,6615
69
69
  wolfhece/acceptability/Parallels.py,sha256=2wVkfJYor4yl7VYiAZiGGTFwtAab2z66ZfRtBliVweE,4088
70
70
  wolfhece/acceptability/__init__.py,sha256=hfgoPKLDpX7drN1Vpvux-_5Lfyc_7feT2C2zQr5v-Os,258
@@ -86,8 +86,8 @@ wolfhece/apps/curvedigitizer.py,sha256=lEJJwgAfulrrWQc-U6ij6sj59hWN3SZl4Yu1kQxVz
86
86
  wolfhece/apps/hydrometry.py,sha256=lhhJsFeb4zGL4bNQTs0co85OQ_6ssL1Oy0OUJCzhfYE,656
87
87
  wolfhece/apps/isocurrent.py,sha256=dagmGR8ja9QQ1gwz_8fU-N052hIw-W0mWGVkzLu6C7I,4247
88
88
  wolfhece/apps/splashscreen.py,sha256=eCPAUYscZPWDYKBHDBWum_VIcE7WXOCBe1GLHL3KUmU,3088
89
- wolfhece/apps/version.py,sha256=K1wI1QprwJhkLzJfrbY1MD9huUZViybAZpuclY2ssps,388
90
- wolfhece/apps/wolf.py,sha256=j_CgvsL8rwixbVvVD5Z0s7m7cHZ86gmFLojKGuetMls,729
89
+ wolfhece/apps/version.py,sha256=ZAjn9R9bjXTgmckSMMojvuK1YxDl0a8--udGIHG3sTk,388
90
+ wolfhece/apps/wolf.py,sha256=mRnjYsUu4KIsRuamdQWAINFMuwN4eJgMo9erG-hkZ70,729
91
91
  wolfhece/apps/wolf2D.py,sha256=4z_OPQ3IgaLtjexjMKX9ppvqEYyjFLt1hcfFABy3-jU,703
92
92
  wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
93
93
  wolfhece/apps/wolf_logo2.bmp,sha256=pCJFVDn_-rHru6fumazVNM4BqAaobM0Xg0zI0DFWMSQ,5830
@@ -95,7 +95,8 @@ wolfhece/apps/wolf_logo3.bmp,sha256=AxRvS_uc2MJn_ksMExPhFEDJ0_PmlR3xU13gzfc28xk,
95
95
  wolfhece/apps/wolf_logo4.bmp,sha256=N6d_NZ3V2M-qtSdTM0LP3PhU2TtltB_UNW6Z2WiLrvM,5830
96
96
  wolfhece/apps/wolfcompare2Darrays.py,sha256=AfEJjku_oSWWqyCIDOqId0quZrS_NpTIFN4fHcVDWb4,4179
97
97
  wolfhece/apps/wolfhydro.py,sha256=EsXTtXhnsQV1j-tiFYcyfMrJpjFv1MrWiftwODdi_8I,817
98
- wolfhece/assets/__init__.py,sha256=FRDE8PiJAWxX9PMXsShRMZ8YADAY4WIgKMRh52rmhiw,23
98
+ wolfhece/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
+ wolfhece/assets/mesh.py,sha256=aO3BWg7f_73bV5yryDdhoIoyWqEQ1UTq2SkQ3y8aZnE,27384
99
100
  wolfhece/assets/speedometer.py,sha256=Oqttbw-AB9niaQRNDd0bmyu-ozyOHoYRQd1dApywwdU,5877
100
101
  wolfhece/bernoulli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
102
  wolfhece/bernoulli/chamber.py,sha256=ZWNjTAmTaH8u8J00n8uEib7dy84mUfHWN43805W_Qsw,2354
@@ -137,7 +138,7 @@ wolfhece/hydrology/Outlet.py,sha256=jdjYN2gIolQJ5prf1wVfxm7cp_YguwQ0JMRsC9ks-Tg,
137
138
  wolfhece/hydrology/PostProcessHydrology.py,sha256=GS2dm9ahDb856apXvTM-oyusTn0xj-ySNpKbHa_jQdw,7419
138
139
  wolfhece/hydrology/PyWatershed.py,sha256=a26M6tVe4hrQ-a8FyAx7H9-RZcVCU5BBzFff4_YT0UU,97665
139
140
  wolfhece/hydrology/RetentionBasin.py,sha256=vFvpnomo5h8ZWq3Hq-YlxRnyqyQqHrojABMKzu3RP6E,83358
140
- wolfhece/hydrology/SubBasin.py,sha256=_grNjUSgFVViH0HDmRKyYt-ag9Y63y9hVOqVXOfk2OQ,182478
141
+ wolfhece/hydrology/SubBasin.py,sha256=ORK1VmvBOfyDjfOTxFQ9bcHe78pAoVcRWwu5Vm-CDHo,181790
141
142
  wolfhece/hydrology/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
143
  wolfhece/hydrology/constant.py,sha256=0o6l8zwLESlW6G9vYNFlUJV4YhcDq6_jnCN28DNchmU,1634
143
144
  wolfhece/hydrology/cst_exchanges.py,sha256=yT2cSIXjlfshPkSAdhyBxYwCPZ5L9s75BYM24tEO6_4,39699
@@ -148,9 +149,9 @@ wolfhece/hydrology/read.py,sha256=BaaIp1x44wPQz2LkWtzu7ZNKx3Gw_WDtAw-B4y_C2IU,95
148
149
  wolfhece/hydrology/slope_manager.py,sha256=vlek0z8qcqB61eleiksyOe3QR1vpbtwfeowy6ms7_Fg,5580
149
150
  wolfhece/hydrology/wolfMap_treatment.py,sha256=eAxr24zJGwmDof1aZpcxewVvv_bWDvoO8t9Wwf99Mlo,10606
150
151
  wolfhece/hydrometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
- wolfhece/hydrometry/kiwis.py,sha256=pCupiQvzOM0vtuN1Iqr7iba2kj-4gtj_-vDE-NWMAew,62936
152
+ wolfhece/hydrometry/kiwis.py,sha256=HDsTZenqG5La4t0Rv9iJeScH_j07w2k3J5fMlj74jI8,64491
152
153
  wolfhece/hydrometry/kiwis_gui.py,sha256=xubayI3ijq87l47pcVtP-D9mOGurOSu9rKz511oa7n0,24898
153
- wolfhece/hydrometry/kiwis_wolfgui.py,sha256=GPa5YNp2V2ZlxYQjPiCXERgPuWB_zij4ec2yHpRvoFA,4027
154
+ wolfhece/hydrometry/kiwis_wolfgui.py,sha256=uEHArUN_XKs-eX4VLUOBZCJdiFJ3G9qBVs34zqdpH20,4072
154
155
  wolfhece/icons/folder_open.png,sha256=ykBlU2FtGcpjAu1YO4_eGlDg2svgs_IAs-4d5O2e3AM,2329
155
156
  wolfhece/icons/folder_plus.png,sha256=Z1Jcs87Z6pNcudxGDTNhC_hgolSSaXe6_fmQE_n-ero,1963
156
157
  wolfhece/icons/image.png,sha256=jomOPNO4HBArBZe8Ya189Iar5nzhO8c0S9JW-6iaErk,2684
@@ -167,7 +168,7 @@ wolfhece/lagrangian/particles.py,sha256=sqp-_gfsIt8s3GNcI1eKaeOBMSo2C-wPrL7FpjkE
167
168
  wolfhece/lagrangian/velocity_field.py,sha256=oGVjNm98gEpawreFIrC1lDyC5bEhkk2CsyYAlF1Kq50,10574
168
169
  wolfhece/lazviewer/__init__.py,sha256=lz60EpQOBZ-zjvYzff6Y11jzAmC7mjOaxRYAfoqizQs,473
169
170
  wolfhece/lazviewer/_add_path.py,sha256=XgMEXRhFhx9-B1hUsP7Zr199zNljYwT5dGMYSB9jRa4,639
170
- wolfhece/lazviewer/laz_viewer.py,sha256=IZpNW-rvzn6__YOvhPCJmObQEJsOqgDobUwrX82lmlk,81614
171
+ wolfhece/lazviewer/laz_viewer.py,sha256=QECvVMSshgO4C7ulBTBcB4oPwLCU8WP8x6W026RWf5w,81621
171
172
  wolfhece/lazviewer/libs/Qt5Core.dll,sha256=sTJ_ctYFY9KHMNytF-lzH_078zIvnKTjN-71FDkOWPw,4924928
172
173
  wolfhece/lazviewer/libs/Qt5Gui.dll,sha256=07BeaOeYByraGkKYeDiSDYLawHM8tyd55pVJlKbZ4Y0,5436416
173
174
  wolfhece/lazviewer/libs/Qt5Network.dll,sha256=U-9FiLE9LUKru8r8EQxTnwwlMpwS8JzUtenhkKTCox0,1038336
@@ -262,7 +263,7 @@ wolfhece/mesh2d/config_manager.py,sha256=DcdxCIIs_dyC6ayJOBULeY364LONogL9PBaqBtC
262
263
  wolfhece/mesh2d/cst_2D_boundary_conditions.py,sha256=Y4DF68uAklF3fXJgf05nb_JvJk2pvzcu_wu5nFXpWJo,5008
263
264
  wolfhece/mesh2d/gpu_2d.py,sha256=XeQIYMqdwFsLw-wDE5jbyphhCgta5QfZhE_7lVtNiCE,24260
264
265
  wolfhece/mesh2d/simple_2d.py,sha256=mVFbTTG2Ah1idz2aYrxI44mi-Z24nC9Vxw1qP2Oib3Y,111350
265
- wolfhece/mesh2d/wolf2dprev.py,sha256=D3CmGMYuhOJxQ7AyTSK97gko1ZaIRvO-0RbD2XvHfDM,491600
266
+ wolfhece/mesh2d/wolf2dprev.py,sha256=5ZEl0Dm7CcncVJlF4N0E96MaSa6O8B_nvwUQs8kdoA4,492452
266
267
  wolfhece/models/5_coul.pal,sha256=OI1UqcNIDBpJn2k_VDel__r-hKjjvdob0eqinGCI3QY,160
267
268
  wolfhece/models/6_coul.pal,sha256=z7NK2dg0tAQBUweRQV54dIwJbPM1U5y1AR2LLw19Idw,148
268
269
  wolfhece/models/7_coul.pal,sha256=XTnnUyCE8ONokScB2YzYDnSTft7E6sppmr7P-XwMsCE,205
@@ -333,8 +334,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=8PlMYrb_8jI8h9F0_EagpM
333
334
  wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
334
335
  wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
336
  wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
336
- wolfhece-2.2.14.dist-info/METADATA,sha256=Y7UYL2Y3HjkDspeALQzelJ9yNiWX4bx42gHbYLXjrJA,2731
337
- wolfhece-2.2.14.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
338
- wolfhece-2.2.14.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
339
- wolfhece-2.2.14.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
340
- wolfhece-2.2.14.dist-info/RECORD,,
337
+ wolfhece-2.2.16.dist-info/METADATA,sha256=1WRiJ8lFWgUL9HhzwiCI7GNSeQWMjO-1Q_b9m7xF8x8,2679
338
+ wolfhece-2.2.16.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
339
+ wolfhece-2.2.16.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
340
+ wolfhece-2.2.16.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
341
+ wolfhece-2.2.16.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.1)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5