HydPy 6.2.dev1__cp313-cp313-win_amd64.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.
Files changed (890) hide show
  1. hydpy/__init__.py +275 -0
  2. hydpy/aliases.py +2554 -0
  3. hydpy/auxs/__init__.py +0 -0
  4. hydpy/auxs/anntools.py +1305 -0
  5. hydpy/auxs/armatools.py +883 -0
  6. hydpy/auxs/calibtools.py +3337 -0
  7. hydpy/auxs/interptools.py +1094 -0
  8. hydpy/auxs/iuhtools.py +543 -0
  9. hydpy/auxs/networktools.py +597 -0
  10. hydpy/auxs/ppolytools.py +809 -0
  11. hydpy/auxs/quadtools.py +61 -0
  12. hydpy/auxs/roottools.py +228 -0
  13. hydpy/auxs/smoothtools.py +273 -0
  14. hydpy/auxs/statstools.py +2125 -0
  15. hydpy/auxs/validtools.py +81 -0
  16. hydpy/conf/HydPyConfigBase.xsd +68637 -0
  17. hydpy/conf/HydPyConfigBase.xsdt +358 -0
  18. hydpy/conf/HydPyConfigMultipleRuns.xsd +25 -0
  19. hydpy/conf/HydPyConfigSingleRun.xsd +24 -0
  20. hydpy/conf/__init__.py +0 -0
  21. hydpy/conf/a_coefficients_explicit_lobatto_sequence.npy +0 -0
  22. hydpy/conf/support_points_for_smoothpar_logistic2.npy +0 -0
  23. hydpy/config.py +42 -0
  24. hydpy/core/__init__.py +0 -0
  25. hydpy/core/aliastools.py +214 -0
  26. hydpy/core/autodoctools.py +1947 -0
  27. hydpy/core/auxfiletools.py +1169 -0
  28. hydpy/core/devicetools.py +3810 -0
  29. hydpy/core/exceptiontools.py +269 -0
  30. hydpy/core/filetools.py +1985 -0
  31. hydpy/core/hydpytools.py +3089 -0
  32. hydpy/core/importtools.py +1398 -0
  33. hydpy/core/indextools.py +345 -0
  34. hydpy/core/itemtools.py +1849 -0
  35. hydpy/core/masktools.py +460 -0
  36. hydpy/core/modeltools.py +4868 -0
  37. hydpy/core/netcdftools.py +2683 -0
  38. hydpy/core/objecttools.py +2023 -0
  39. hydpy/core/optiontools.py +1045 -0
  40. hydpy/core/parametertools.py +4674 -0
  41. hydpy/core/printtools.py +222 -0
  42. hydpy/core/propertytools.py +643 -0
  43. hydpy/core/pubtools.py +254 -0
  44. hydpy/core/selectiontools.py +1571 -0
  45. hydpy/core/sequencetools.py +4476 -0
  46. hydpy/core/seriestools.py +339 -0
  47. hydpy/core/testtools.py +2483 -0
  48. hydpy/core/timetools.py +3567 -0
  49. hydpy/core/typingtools.py +333 -0
  50. hydpy/core/variabletools.py +2615 -0
  51. hydpy/cythons/__init__.py +24 -0
  52. hydpy/cythons/annutils.pxd +33 -0
  53. hydpy/cythons/annutils.pyi +25 -0
  54. hydpy/cythons/annutils.pyx +120 -0
  55. hydpy/cythons/autogen/__init__.py +0 -0
  56. hydpy/cythons/autogen/annutils.cp313-win_amd64.pyd +0 -0
  57. hydpy/cythons/autogen/annutils.pxd +42 -0
  58. hydpy/cythons/autogen/annutils.pyx +129 -0
  59. hydpy/cythons/autogen/c_arma.cp313-win_amd64.pyd +0 -0
  60. hydpy/cythons/autogen/c_arma.pxd +179 -0
  61. hydpy/cythons/autogen/c_arma.pyx +356 -0
  62. hydpy/cythons/autogen/c_arma_rimorido.cp313-win_amd64.pyd +0 -0
  63. hydpy/cythons/autogen/c_arma_rimorido.pxd +179 -0
  64. hydpy/cythons/autogen/c_arma_rimorido.pyx +356 -0
  65. hydpy/cythons/autogen/c_conv.cp313-win_amd64.pyd +0 -0
  66. hydpy/cythons/autogen/c_conv.pxd +198 -0
  67. hydpy/cythons/autogen/c_conv.pyx +491 -0
  68. hydpy/cythons/autogen/c_conv_idw.cp313-win_amd64.pyd +0 -0
  69. hydpy/cythons/autogen/c_conv_idw.pxd +124 -0
  70. hydpy/cythons/autogen/c_conv_idw.pyx +264 -0
  71. hydpy/cythons/autogen/c_conv_idw_ed.cp313-win_amd64.pyd +0 -0
  72. hydpy/cythons/autogen/c_conv_idw_ed.pxd +197 -0
  73. hydpy/cythons/autogen/c_conv_idw_ed.pyx +481 -0
  74. hydpy/cythons/autogen/c_conv_nn.cp313-win_amd64.pyd +0 -0
  75. hydpy/cythons/autogen/c_conv_nn.pxd +120 -0
  76. hydpy/cythons/autogen/c_conv_nn.pyx +224 -0
  77. hydpy/cythons/autogen/c_dam.cp313-win_amd64.pyd +0 -0
  78. hydpy/cythons/autogen/c_dam.pxd +805 -0
  79. hydpy/cythons/autogen/c_dam.pyx +1477 -0
  80. hydpy/cythons/autogen/c_dam_llake.cp313-win_amd64.pyd +0 -0
  81. hydpy/cythons/autogen/c_dam_llake.pxd +364 -0
  82. hydpy/cythons/autogen/c_dam_llake.pyx +705 -0
  83. hydpy/cythons/autogen/c_dam_lreservoir.cp313-win_amd64.pyd +0 -0
  84. hydpy/cythons/autogen/c_dam_lreservoir.pxd +365 -0
  85. hydpy/cythons/autogen/c_dam_lreservoir.pyx +708 -0
  86. hydpy/cythons/autogen/c_dam_lretention.cp313-win_amd64.pyd +0 -0
  87. hydpy/cythons/autogen/c_dam_lretention.pxd +340 -0
  88. hydpy/cythons/autogen/c_dam_lretention.pyx +625 -0
  89. hydpy/cythons/autogen/c_dam_pump.cp313-win_amd64.pyd +0 -0
  90. hydpy/cythons/autogen/c_dam_pump.pxd +402 -0
  91. hydpy/cythons/autogen/c_dam_pump.pyx +724 -0
  92. hydpy/cythons/autogen/c_dam_pump_sluice.cp313-win_amd64.pyd +0 -0
  93. hydpy/cythons/autogen/c_dam_pump_sluice.pxd +452 -0
  94. hydpy/cythons/autogen/c_dam_pump_sluice.pyx +829 -0
  95. hydpy/cythons/autogen/c_dam_sluice.cp313-win_amd64.pyd +0 -0
  96. hydpy/cythons/autogen/c_dam_sluice.pxd +404 -0
  97. hydpy/cythons/autogen/c_dam_sluice.pyx +726 -0
  98. hydpy/cythons/autogen/c_dam_v001.cp313-win_amd64.pyd +0 -0
  99. hydpy/cythons/autogen/c_dam_v001.pxd +452 -0
  100. hydpy/cythons/autogen/c_dam_v001.pyx +816 -0
  101. hydpy/cythons/autogen/c_dam_v002.cp313-win_amd64.pyd +0 -0
  102. hydpy/cythons/autogen/c_dam_v002.pxd +394 -0
  103. hydpy/cythons/autogen/c_dam_v002.pyx +703 -0
  104. hydpy/cythons/autogen/c_dam_v003.cp313-win_amd64.pyd +0 -0
  105. hydpy/cythons/autogen/c_dam_v003.pxd +417 -0
  106. hydpy/cythons/autogen/c_dam_v003.pyx +744 -0
  107. hydpy/cythons/autogen/c_dam_v004.cp313-win_amd64.pyd +0 -0
  108. hydpy/cythons/autogen/c_dam_v004.pxd +486 -0
  109. hydpy/cythons/autogen/c_dam_v004.pyx +891 -0
  110. hydpy/cythons/autogen/c_dam_v005.cp313-win_amd64.pyd +0 -0
  111. hydpy/cythons/autogen/c_dam_v005.pxd +524 -0
  112. hydpy/cythons/autogen/c_dam_v005.pyx +928 -0
  113. hydpy/cythons/autogen/c_dummy.cp313-win_amd64.pyd +0 -0
  114. hydpy/cythons/autogen/c_dummy.pxd +151 -0
  115. hydpy/cythons/autogen/c_dummy.pyx +263 -0
  116. hydpy/cythons/autogen/c_dummy_interceptedwater.cp313-win_amd64.pyd +0 -0
  117. hydpy/cythons/autogen/c_dummy_interceptedwater.pxd +69 -0
  118. hydpy/cythons/autogen/c_dummy_interceptedwater.pyx +104 -0
  119. hydpy/cythons/autogen/c_dummy_node2node.cp313-win_amd64.pyd +0 -0
  120. hydpy/cythons/autogen/c_dummy_node2node.pxd +89 -0
  121. hydpy/cythons/autogen/c_dummy_node2node.pyx +148 -0
  122. hydpy/cythons/autogen/c_dummy_snowalbedo.cp313-win_amd64.pyd +0 -0
  123. hydpy/cythons/autogen/c_dummy_snowalbedo.pxd +69 -0
  124. hydpy/cythons/autogen/c_dummy_snowalbedo.pyx +104 -0
  125. hydpy/cythons/autogen/c_dummy_snowcover.cp313-win_amd64.pyd +0 -0
  126. hydpy/cythons/autogen/c_dummy_snowcover.pxd +69 -0
  127. hydpy/cythons/autogen/c_dummy_snowcover.pyx +104 -0
  128. hydpy/cythons/autogen/c_dummy_snowycanopy.cp313-win_amd64.pyd +0 -0
  129. hydpy/cythons/autogen/c_dummy_snowycanopy.pxd +69 -0
  130. hydpy/cythons/autogen/c_dummy_snowycanopy.pyx +104 -0
  131. hydpy/cythons/autogen/c_dummy_soilwater.cp313-win_amd64.pyd +0 -0
  132. hydpy/cythons/autogen/c_dummy_soilwater.pxd +69 -0
  133. hydpy/cythons/autogen/c_dummy_soilwater.pyx +104 -0
  134. hydpy/cythons/autogen/c_evap.cp313-win_amd64.pyd +0 -0
  135. hydpy/cythons/autogen/c_evap.pxd +1029 -0
  136. hydpy/cythons/autogen/c_evap.pyx +2601 -0
  137. hydpy/cythons/autogen/c_evap_aet_hbv96.cp313-win_amd64.pyd +0 -0
  138. hydpy/cythons/autogen/c_evap_aet_hbv96.pxd +227 -0
  139. hydpy/cythons/autogen/c_evap_aet_hbv96.pyx +584 -0
  140. hydpy/cythons/autogen/c_evap_aet_minhas.cp313-win_amd64.pyd +0 -0
  141. hydpy/cythons/autogen/c_evap_aet_minhas.pxd +193 -0
  142. hydpy/cythons/autogen/c_evap_aet_minhas.pyx +478 -0
  143. hydpy/cythons/autogen/c_evap_aet_morsim.cp313-win_amd64.pyd +0 -0
  144. hydpy/cythons/autogen/c_evap_aet_morsim.pxd +681 -0
  145. hydpy/cythons/autogen/c_evap_aet_morsim.pyx +1642 -0
  146. hydpy/cythons/autogen/c_evap_pet_ambav1.cp313-win_amd64.pyd +0 -0
  147. hydpy/cythons/autogen/c_evap_pet_ambav1.pxd +532 -0
  148. hydpy/cythons/autogen/c_evap_pet_ambav1.pyx +1296 -0
  149. hydpy/cythons/autogen/c_evap_pet_hbv96.cp313-win_amd64.pyd +0 -0
  150. hydpy/cythons/autogen/c_evap_pet_hbv96.pxd +179 -0
  151. hydpy/cythons/autogen/c_evap_pet_hbv96.pyx +328 -0
  152. hydpy/cythons/autogen/c_evap_pet_m.cp313-win_amd64.pyd +0 -0
  153. hydpy/cythons/autogen/c_evap_pet_m.pxd +124 -0
  154. hydpy/cythons/autogen/c_evap_pet_m.pyx +214 -0
  155. hydpy/cythons/autogen/c_evap_pet_mlc.cp313-win_amd64.pyd +0 -0
  156. hydpy/cythons/autogen/c_evap_pet_mlc.pxd +126 -0
  157. hydpy/cythons/autogen/c_evap_pet_mlc.pyx +214 -0
  158. hydpy/cythons/autogen/c_evap_ret_fao56.cp313-win_amd64.pyd +0 -0
  159. hydpy/cythons/autogen/c_evap_ret_fao56.pxd +305 -0
  160. hydpy/cythons/autogen/c_evap_ret_fao56.pyx +624 -0
  161. hydpy/cythons/autogen/c_evap_ret_io.cp313-win_amd64.pyd +0 -0
  162. hydpy/cythons/autogen/c_evap_ret_io.pxd +112 -0
  163. hydpy/cythons/autogen/c_evap_ret_io.pyx +176 -0
  164. hydpy/cythons/autogen/c_evap_ret_tw2002.cp313-win_amd64.pyd +0 -0
  165. hydpy/cythons/autogen/c_evap_ret_tw2002.pxd +139 -0
  166. hydpy/cythons/autogen/c_evap_ret_tw2002.pyx +273 -0
  167. hydpy/cythons/autogen/c_exch.cp313-win_amd64.pyd +0 -0
  168. hydpy/cythons/autogen/c_exch.pxd +230 -0
  169. hydpy/cythons/autogen/c_exch.pyx +462 -0
  170. hydpy/cythons/autogen/c_exch_branch_hbv96.cp313-win_amd64.pyd +0 -0
  171. hydpy/cythons/autogen/c_exch_branch_hbv96.pxd +134 -0
  172. hydpy/cythons/autogen/c_exch_branch_hbv96.pyx +255 -0
  173. hydpy/cythons/autogen/c_exch_waterlevel.cp313-win_amd64.pyd +0 -0
  174. hydpy/cythons/autogen/c_exch_waterlevel.pxd +54 -0
  175. hydpy/cythons/autogen/c_exch_waterlevel.pyx +78 -0
  176. hydpy/cythons/autogen/c_exch_weir_hbv96.cp313-win_amd64.pyd +0 -0
  177. hydpy/cythons/autogen/c_exch_weir_hbv96.pxd +156 -0
  178. hydpy/cythons/autogen/c_exch_weir_hbv96.pyx +282 -0
  179. hydpy/cythons/autogen/c_ga.cp313-win_amd64.pyd +0 -0
  180. hydpy/cythons/autogen/c_ga.pxd +353 -0
  181. hydpy/cythons/autogen/c_ga.pyx +1204 -0
  182. hydpy/cythons/autogen/c_ga_garto.cp313-win_amd64.pyd +0 -0
  183. hydpy/cythons/autogen/c_ga_garto.pxd +330 -0
  184. hydpy/cythons/autogen/c_ga_garto.pyx +1105 -0
  185. hydpy/cythons/autogen/c_ga_garto_submodel1.cp313-win_amd64.pyd +0 -0
  186. hydpy/cythons/autogen/c_ga_garto_submodel1.pxd +236 -0
  187. hydpy/cythons/autogen/c_ga_garto_submodel1.pyx +944 -0
  188. hydpy/cythons/autogen/c_gland.cp313-win_amd64.pyd +0 -0
  189. hydpy/cythons/autogen/c_gland.pxd +437 -0
  190. hydpy/cythons/autogen/c_gland.pyx +726 -0
  191. hydpy/cythons/autogen/c_gland_gr4.cp313-win_amd64.pyd +0 -0
  192. hydpy/cythons/autogen/c_gland_gr4.pxd +382 -0
  193. hydpy/cythons/autogen/c_gland_gr4.pyx +605 -0
  194. hydpy/cythons/autogen/c_gland_gr5.cp313-win_amd64.pyd +0 -0
  195. hydpy/cythons/autogen/c_gland_gr5.pxd +368 -0
  196. hydpy/cythons/autogen/c_gland_gr5.pyx +568 -0
  197. hydpy/cythons/autogen/c_gland_gr6.cp313-win_amd64.pyd +0 -0
  198. hydpy/cythons/autogen/c_gland_gr6.pxd +420 -0
  199. hydpy/cythons/autogen/c_gland_gr6.pyx +673 -0
  200. hydpy/cythons/autogen/c_hland.cp313-win_amd64.pyd +0 -0
  201. hydpy/cythons/autogen/c_hland.pxd +855 -0
  202. hydpy/cythons/autogen/c_hland.pyx +2486 -0
  203. hydpy/cythons/autogen/c_hland_96.cp313-win_amd64.pyd +0 -0
  204. hydpy/cythons/autogen/c_hland_96.pxd +631 -0
  205. hydpy/cythons/autogen/c_hland_96.pyx +1724 -0
  206. hydpy/cythons/autogen/c_hland_96c.cp313-win_amd64.pyd +0 -0
  207. hydpy/cythons/autogen/c_hland_96c.pxd +621 -0
  208. hydpy/cythons/autogen/c_hland_96c.pyx +1822 -0
  209. hydpy/cythons/autogen/c_hland_96p.cp313-win_amd64.pyd +0 -0
  210. hydpy/cythons/autogen/c_hland_96p.pxd +683 -0
  211. hydpy/cythons/autogen/c_hland_96p.pyx +1911 -0
  212. hydpy/cythons/autogen/c_kinw.cp313-win_amd64.pyd +0 -0
  213. hydpy/cythons/autogen/c_kinw.pxd +509 -0
  214. hydpy/cythons/autogen/c_kinw.pyx +965 -0
  215. hydpy/cythons/autogen/c_kinw_williams.cp313-win_amd64.pyd +0 -0
  216. hydpy/cythons/autogen/c_kinw_williams.pxd +409 -0
  217. hydpy/cythons/autogen/c_kinw_williams.pyx +763 -0
  218. hydpy/cythons/autogen/c_kinw_williams_ext.cp313-win_amd64.pyd +0 -0
  219. hydpy/cythons/autogen/c_kinw_williams_ext.pxd +220 -0
  220. hydpy/cythons/autogen/c_kinw_williams_ext.pyx +440 -0
  221. hydpy/cythons/autogen/c_lland.cp313-win_amd64.pyd +0 -0
  222. hydpy/cythons/autogen/c_lland.pxd +1386 -0
  223. hydpy/cythons/autogen/c_lland.pyx +3679 -0
  224. hydpy/cythons/autogen/c_lland_dd.cp313-win_amd64.pyd +0 -0
  225. hydpy/cythons/autogen/c_lland_dd.pxd +679 -0
  226. hydpy/cythons/autogen/c_lland_dd.pyx +1719 -0
  227. hydpy/cythons/autogen/c_lland_knauf.cp313-win_amd64.pyd +0 -0
  228. hydpy/cythons/autogen/c_lland_knauf.pxd +1096 -0
  229. hydpy/cythons/autogen/c_lland_knauf.pyx +2784 -0
  230. hydpy/cythons/autogen/c_lland_knauf_ic.cp313-win_amd64.pyd +0 -0
  231. hydpy/cythons/autogen/c_lland_knauf_ic.pxd +1369 -0
  232. hydpy/cythons/autogen/c_lland_knauf_ic.pyx +3625 -0
  233. hydpy/cythons/autogen/c_meteo.cp313-win_amd64.pyd +0 -0
  234. hydpy/cythons/autogen/c_meteo.pxd +469 -0
  235. hydpy/cythons/autogen/c_meteo.pyx +879 -0
  236. hydpy/cythons/autogen/c_meteo_clear_glob_io.cp313-win_amd64.pyd +0 -0
  237. hydpy/cythons/autogen/c_meteo_clear_glob_io.pxd +75 -0
  238. hydpy/cythons/autogen/c_meteo_clear_glob_io.pyx +107 -0
  239. hydpy/cythons/autogen/c_meteo_glob_fao56.cp313-win_amd64.pyd +0 -0
  240. hydpy/cythons/autogen/c_meteo_glob_fao56.pxd +209 -0
  241. hydpy/cythons/autogen/c_meteo_glob_fao56.pyx +339 -0
  242. hydpy/cythons/autogen/c_meteo_glob_io.cp313-win_amd64.pyd +0 -0
  243. hydpy/cythons/autogen/c_meteo_glob_io.pxd +63 -0
  244. hydpy/cythons/autogen/c_meteo_glob_io.pyx +91 -0
  245. hydpy/cythons/autogen/c_meteo_glob_morsim.cp313-win_amd64.pyd +0 -0
  246. hydpy/cythons/autogen/c_meteo_glob_morsim.pxd +289 -0
  247. hydpy/cythons/autogen/c_meteo_glob_morsim.pyx +527 -0
  248. hydpy/cythons/autogen/c_meteo_precip_io.cp313-win_amd64.pyd +0 -0
  249. hydpy/cythons/autogen/c_meteo_precip_io.pxd +112 -0
  250. hydpy/cythons/autogen/c_meteo_precip_io.pyx +176 -0
  251. hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.cp313-win_amd64.pyd +0 -0
  252. hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pxd +87 -0
  253. hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pyx +123 -0
  254. hydpy/cythons/autogen/c_meteo_sun_fao56.cp313-win_amd64.pyd +0 -0
  255. hydpy/cythons/autogen/c_meteo_sun_fao56.pxd +209 -0
  256. hydpy/cythons/autogen/c_meteo_sun_fao56.pyx +343 -0
  257. hydpy/cythons/autogen/c_meteo_sun_morsim.cp313-win_amd64.pyd +0 -0
  258. hydpy/cythons/autogen/c_meteo_sun_morsim.pxd +286 -0
  259. hydpy/cythons/autogen/c_meteo_sun_morsim.pyx +519 -0
  260. hydpy/cythons/autogen/c_meteo_temp_io.cp313-win_amd64.pyd +0 -0
  261. hydpy/cythons/autogen/c_meteo_temp_io.pxd +112 -0
  262. hydpy/cythons/autogen/c_meteo_temp_io.pyx +176 -0
  263. hydpy/cythons/autogen/c_musk.cp313-win_amd64.pyd +0 -0
  264. hydpy/cythons/autogen/c_musk.pxd +282 -0
  265. hydpy/cythons/autogen/c_musk.pyx +605 -0
  266. hydpy/cythons/autogen/c_musk_classic.cp313-win_amd64.pyd +0 -0
  267. hydpy/cythons/autogen/c_musk_classic.pxd +138 -0
  268. hydpy/cythons/autogen/c_musk_classic.pyx +226 -0
  269. hydpy/cythons/autogen/c_musk_mct.cp313-win_amd64.pyd +0 -0
  270. hydpy/cythons/autogen/c_musk_mct.pxd +282 -0
  271. hydpy/cythons/autogen/c_musk_mct.pyx +609 -0
  272. hydpy/cythons/autogen/c_rconc.cp313-win_amd64.pyd +0 -0
  273. hydpy/cythons/autogen/c_rconc.pxd +119 -0
  274. hydpy/cythons/autogen/c_rconc.pyx +174 -0
  275. hydpy/cythons/autogen/c_rconc_nash.cp313-win_amd64.pyd +0 -0
  276. hydpy/cythons/autogen/c_rconc_nash.pxd +111 -0
  277. hydpy/cythons/autogen/c_rconc_nash.pyx +185 -0
  278. hydpy/cythons/autogen/c_rconc_uh.cp313-win_amd64.pyd +0 -0
  279. hydpy/cythons/autogen/c_rconc_uh.pxd +92 -0
  280. hydpy/cythons/autogen/c_rconc_uh.pyx +125 -0
  281. hydpy/cythons/autogen/c_sw1d.cp313-win_amd64.pyd +0 -0
  282. hydpy/cythons/autogen/c_sw1d.pxd +511 -0
  283. hydpy/cythons/autogen/c_sw1d.pyx +1263 -0
  284. hydpy/cythons/autogen/c_sw1d_channel.cp313-win_amd64.pyd +0 -0
  285. hydpy/cythons/autogen/c_sw1d_channel.pxd +119 -0
  286. hydpy/cythons/autogen/c_sw1d_channel.pyx +300 -0
  287. hydpy/cythons/autogen/c_sw1d_gate_out.cp313-win_amd64.pyd +0 -0
  288. hydpy/cythons/autogen/c_sw1d_gate_out.pxd +240 -0
  289. hydpy/cythons/autogen/c_sw1d_gate_out.pyx +476 -0
  290. hydpy/cythons/autogen/c_sw1d_lias.cp313-win_amd64.pyd +0 -0
  291. hydpy/cythons/autogen/c_sw1d_lias.pxd +320 -0
  292. hydpy/cythons/autogen/c_sw1d_lias.pyx +619 -0
  293. hydpy/cythons/autogen/c_sw1d_lias_sluice.cp313-win_amd64.pyd +0 -0
  294. hydpy/cythons/autogen/c_sw1d_lias_sluice.pxd +325 -0
  295. hydpy/cythons/autogen/c_sw1d_lias_sluice.pyx +644 -0
  296. hydpy/cythons/autogen/c_sw1d_network.cp313-win_amd64.pyd +0 -0
  297. hydpy/cythons/autogen/c_sw1d_network.pxd +90 -0
  298. hydpy/cythons/autogen/c_sw1d_network.pyx +246 -0
  299. hydpy/cythons/autogen/c_sw1d_pump.cp313-win_amd64.pyd +0 -0
  300. hydpy/cythons/autogen/c_sw1d_pump.pxd +256 -0
  301. hydpy/cythons/autogen/c_sw1d_pump.pyx +502 -0
  302. hydpy/cythons/autogen/c_sw1d_q_in.cp313-win_amd64.pyd +0 -0
  303. hydpy/cythons/autogen/c_sw1d_q_in.pxd +224 -0
  304. hydpy/cythons/autogen/c_sw1d_q_in.pyx +383 -0
  305. hydpy/cythons/autogen/c_sw1d_q_out.cp313-win_amd64.pyd +0 -0
  306. hydpy/cythons/autogen/c_sw1d_q_out.pxd +224 -0
  307. hydpy/cythons/autogen/c_sw1d_q_out.pyx +383 -0
  308. hydpy/cythons/autogen/c_sw1d_storage.cp313-win_amd64.pyd +0 -0
  309. hydpy/cythons/autogen/c_sw1d_storage.pxd +193 -0
  310. hydpy/cythons/autogen/c_sw1d_storage.pyx +349 -0
  311. hydpy/cythons/autogen/c_sw1d_weir_out.cp313-win_amd64.pyd +0 -0
  312. hydpy/cythons/autogen/c_sw1d_weir_out.pxd +212 -0
  313. hydpy/cythons/autogen/c_sw1d_weir_out.pyx +404 -0
  314. hydpy/cythons/autogen/c_test.cp313-win_amd64.pyd +0 -0
  315. hydpy/cythons/autogen/c_test.pxd +175 -0
  316. hydpy/cythons/autogen/c_test.pyx +348 -0
  317. hydpy/cythons/autogen/c_test_discontinous.cp313-win_amd64.pyd +0 -0
  318. hydpy/cythons/autogen/c_test_discontinous.pxd +146 -0
  319. hydpy/cythons/autogen/c_test_discontinous.pyx +256 -0
  320. hydpy/cythons/autogen/c_test_stiff0d.cp313-win_amd64.pyd +0 -0
  321. hydpy/cythons/autogen/c_test_stiff0d.pxd +146 -0
  322. hydpy/cythons/autogen/c_test_stiff0d.pyx +250 -0
  323. hydpy/cythons/autogen/c_test_stiff1d.cp313-win_amd64.pyd +0 -0
  324. hydpy/cythons/autogen/c_test_stiff1d.pxd +145 -0
  325. hydpy/cythons/autogen/c_test_stiff1d.pyx +294 -0
  326. hydpy/cythons/autogen/c_whmod.cp313-win_amd64.pyd +0 -0
  327. hydpy/cythons/autogen/c_whmod.pxd +482 -0
  328. hydpy/cythons/autogen/c_whmod.pyx +1156 -0
  329. hydpy/cythons/autogen/c_whmod_rural.cp313-win_amd64.pyd +0 -0
  330. hydpy/cythons/autogen/c_whmod_rural.pxd +411 -0
  331. hydpy/cythons/autogen/c_whmod_rural.pyx +982 -0
  332. hydpy/cythons/autogen/c_whmod_urban.cp313-win_amd64.pyd +0 -0
  333. hydpy/cythons/autogen/c_whmod_urban.pxd +482 -0
  334. hydpy/cythons/autogen/c_whmod_urban.pyx +1155 -0
  335. hydpy/cythons/autogen/c_wland.cp313-win_amd64.pyd +0 -0
  336. hydpy/cythons/autogen/c_wland.pxd +842 -0
  337. hydpy/cythons/autogen/c_wland.pyx +1890 -0
  338. hydpy/cythons/autogen/c_wland_gd.cp313-win_amd64.pyd +0 -0
  339. hydpy/cythons/autogen/c_wland_gd.pxd +829 -0
  340. hydpy/cythons/autogen/c_wland_gd.pyx +1847 -0
  341. hydpy/cythons/autogen/c_wland_wag.cp313-win_amd64.pyd +0 -0
  342. hydpy/cythons/autogen/c_wland_wag.pxd +810 -0
  343. hydpy/cythons/autogen/c_wland_wag.pyx +1780 -0
  344. hydpy/cythons/autogen/c_wq.cp313-win_amd64.pyd +0 -0
  345. hydpy/cythons/autogen/c_wq.pxd +275 -0
  346. hydpy/cythons/autogen/c_wq.pyx +652 -0
  347. hydpy/cythons/autogen/c_wq_trapeze.cp313-win_amd64.pyd +0 -0
  348. hydpy/cythons/autogen/c_wq_trapeze.pxd +170 -0
  349. hydpy/cythons/autogen/c_wq_trapeze.pyx +400 -0
  350. hydpy/cythons/autogen/c_wq_trapeze_strickler.cp313-win_amd64.pyd +0 -0
  351. hydpy/cythons/autogen/c_wq_trapeze_strickler.pxd +243 -0
  352. hydpy/cythons/autogen/c_wq_trapeze_strickler.pyx +578 -0
  353. hydpy/cythons/autogen/c_wq_walrus.cp313-win_amd64.pyd +0 -0
  354. hydpy/cythons/autogen/c_wq_walrus.pxd +61 -0
  355. hydpy/cythons/autogen/c_wq_walrus.pyx +82 -0
  356. hydpy/cythons/autogen/configutils.cp313-win_amd64.pyd +0 -0
  357. hydpy/cythons/autogen/configutils.pxd +17 -0
  358. hydpy/cythons/autogen/configutils.pyx +119 -0
  359. hydpy/cythons/autogen/interfaceutils.cp313-win_amd64.pyd +0 -0
  360. hydpy/cythons/autogen/interfaceutils.pxd +31 -0
  361. hydpy/cythons/autogen/interfaceutils.pyx +82 -0
  362. hydpy/cythons/autogen/interputils.cp313-win_amd64.pyd +0 -0
  363. hydpy/cythons/autogen/interputils.pxd +42 -0
  364. hydpy/cythons/autogen/interputils.pyx +118 -0
  365. hydpy/cythons/autogen/masterinterface.cp313-win_amd64.pyd +0 -0
  366. hydpy/cythons/autogen/masterinterface.pxd +153 -0
  367. hydpy/cythons/autogen/masterinterface.pyx +222 -0
  368. hydpy/cythons/autogen/pointerutils.cp313-win_amd64.pyd +0 -0
  369. hydpy/cythons/autogen/pointerutils.pxd +31 -0
  370. hydpy/cythons/autogen/pointerutils.pyx +650 -0
  371. hydpy/cythons/autogen/ppolyutils.cp313-win_amd64.pyd +0 -0
  372. hydpy/cythons/autogen/ppolyutils.pxd +35 -0
  373. hydpy/cythons/autogen/ppolyutils.pyx +59 -0
  374. hydpy/cythons/autogen/quadutils.cp313-win_amd64.pyd +0 -0
  375. hydpy/cythons/autogen/quadutils.pxd +26 -0
  376. hydpy/cythons/autogen/quadutils.pyx +973 -0
  377. hydpy/cythons/autogen/rootutils.cp313-win_amd64.pyd +0 -0
  378. hydpy/cythons/autogen/rootutils.pxd +28 -0
  379. hydpy/cythons/autogen/rootutils.pyx +109 -0
  380. hydpy/cythons/autogen/sequenceutils.cp313-win_amd64.pyd +0 -0
  381. hydpy/cythons/autogen/sequenceutils.pxd +45 -0
  382. hydpy/cythons/autogen/sequenceutils.pyx +101 -0
  383. hydpy/cythons/autogen/smoothutils.cp313-win_amd64.pyd +0 -0
  384. hydpy/cythons/autogen/smoothutils.pxd +29 -0
  385. hydpy/cythons/autogen/smoothutils.pyx +833 -0
  386. hydpy/cythons/configutils.pxd +8 -0
  387. hydpy/cythons/configutils.pyi +5 -0
  388. hydpy/cythons/configutils.pyx +110 -0
  389. hydpy/cythons/interfaceutils.pxd +22 -0
  390. hydpy/cythons/interfaceutils.pyi +15 -0
  391. hydpy/cythons/interfaceutils.pyx +73 -0
  392. hydpy/cythons/interputils.pxd +33 -0
  393. hydpy/cythons/interputils.pyi +32 -0
  394. hydpy/cythons/interputils.pyx +109 -0
  395. hydpy/cythons/modelutils.py +2990 -0
  396. hydpy/cythons/pointerutils.pxd +22 -0
  397. hydpy/cythons/pointerutils.pyi +89 -0
  398. hydpy/cythons/pointerutils.pyx +641 -0
  399. hydpy/cythons/ppolyutils.pxd +26 -0
  400. hydpy/cythons/ppolyutils.pyi +21 -0
  401. hydpy/cythons/ppolyutils.pyx +50 -0
  402. hydpy/cythons/quadutils.pxd +17 -0
  403. hydpy/cythons/quadutils.pyi +13 -0
  404. hydpy/cythons/quadutils.pyx +964 -0
  405. hydpy/cythons/rootutils.pxd +19 -0
  406. hydpy/cythons/rootutils.pyi +21 -0
  407. hydpy/cythons/rootutils.pyx +100 -0
  408. hydpy/cythons/sequenceutils.pxd +36 -0
  409. hydpy/cythons/sequenceutils.pyi +7 -0
  410. hydpy/cythons/sequenceutils.pyx +92 -0
  411. hydpy/cythons/smoothutils.pxd +20 -0
  412. hydpy/cythons/smoothutils.pyi +15 -0
  413. hydpy/cythons/smoothutils.pyx +824 -0
  414. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_dill_assl.py +13 -0
  415. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_kalk.py +13 -0
  416. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_leun.py +14 -0
  417. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_marb.py +13 -0
  418. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_dill_assl_lahn_leun.py +5 -0
  419. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_leun_lahn_kalk.py +5 -0
  420. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_marb_lahn_leun.py +5 -0
  421. hydpy/data/HydPy-H-Lahn/control/default/land.py +9 -0
  422. hydpy/data/HydPy-H-Lahn/control/default/land_dill_assl.py +57 -0
  423. hydpy/data/HydPy-H-Lahn/control/default/land_lahn_kalk.py +57 -0
  424. hydpy/data/HydPy-H-Lahn/control/default/land_lahn_leun.py +56 -0
  425. hydpy/data/HydPy-H-Lahn/control/default/land_lahn_marb.py +57 -0
  426. hydpy/data/HydPy-H-Lahn/control/default/stream_dill_assl_lahn_leun.py +7 -0
  427. hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_leun_lahn_kalk.py +7 -0
  428. hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_marb_lahn_leun.py +7 -0
  429. hydpy/data/HydPy-H-Lahn/multiple_runs.xml +309 -0
  430. hydpy/data/HydPy-H-Lahn/multiple_runs_alpha.xml +71 -0
  431. hydpy/data/HydPy-H-Lahn/network/default/headwaters.py +11 -0
  432. hydpy/data/HydPy-H-Lahn/network/default/nonheadwaters.py +11 -0
  433. hydpy/data/HydPy-H-Lahn/network/default/streams.py +8 -0
  434. hydpy/data/HydPy-H-Lahn/series/default/dill_assl_obs_q.asc +11387 -0
  435. hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalairtemperature.nc +0 -0
  436. hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalevapotranspiration.nc +0 -0
  437. hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_p.nc +0 -0
  438. hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_t.nc +0 -0
  439. hydpy/data/HydPy-H-Lahn/series/default/lahn_kalk_obs_q.asc +11387 -0
  440. hydpy/data/HydPy-H-Lahn/series/default/lahn_leun_obs_q.asc +11387 -0
  441. hydpy/data/HydPy-H-Lahn/series/default/lahn_marb_obs_q.asc +11387 -0
  442. hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
  443. hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
  444. hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_p.asc +11387 -0
  445. hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_t.asc +11387 -0
  446. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
  447. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
  448. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_p.asc +11387 -0
  449. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_t.asc +11387 -0
  450. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
  451. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
  452. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_p.asc +11387 -0
  453. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_t.asc +11387 -0
  454. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
  455. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
  456. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_p.asc +11387 -0
  457. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_t.asc +11387 -0
  458. hydpy/data/HydPy-H-Lahn/series/default/obs_q.nc +0 -0
  459. hydpy/data/HydPy-H-Lahn/single_run.xml +152 -0
  460. hydpy/data/HydPy-H-Lahn/single_run.xmlt +143 -0
  461. hydpy/data/__init__.py +17 -0
  462. hydpy/docs/__init__.py +0 -0
  463. hydpy/docs/autofigs/__init__.py +0 -0
  464. hydpy/docs/bib/__init__.py +0 -0
  465. hydpy/docs/bib/refs.bib +566 -0
  466. hydpy/docs/combine_docversions.py +133 -0
  467. hydpy/docs/draw_model_sketches.py +1301 -0
  468. hydpy/docs/enable_autodoc.py +7 -0
  469. hydpy/docs/figs/HydPy-G-GR4.png +0 -0
  470. hydpy/docs/figs/HydPy-G-GR5.png +0 -0
  471. hydpy/docs/figs/HydPy-G-GR6.png +0 -0
  472. hydpy/docs/figs/HydPy-H-HBV96-COSERO.png +0 -0
  473. hydpy/docs/figs/HydPy-H-HBV96-PREVAH.png +0 -0
  474. hydpy/docs/figs/HydPy-H-HBV96.png +0 -0
  475. hydpy/docs/figs/HydPy-H-Lahn.png +0 -0
  476. hydpy/docs/figs/HydPy-KinW-Williams.png +0 -0
  477. hydpy/docs/figs/HydPy-L-DD.png +0 -0
  478. hydpy/docs/figs/HydPy-W-Wag.png +0 -0
  479. hydpy/docs/figs/HydPy_Logo.png +0 -0
  480. hydpy/docs/figs/HydPy_Logo_Text.png +0 -0
  481. hydpy/docs/figs/IDLE-editor.png +0 -0
  482. hydpy/docs/figs/IDLE-shell.png +0 -0
  483. hydpy/docs/figs/LAWA_river-basin-bumbers.png +0 -0
  484. hydpy/docs/figs/__init__.py +0 -0
  485. hydpy/docs/html_/__init__.py +0 -0
  486. hydpy/docs/polish_html.py +57 -0
  487. hydpy/docs/prepare.py +224 -0
  488. hydpy/docs/publish_docs.py +53 -0
  489. hydpy/docs/rst/HydPy-ARMA.rst +27 -0
  490. hydpy/docs/rst/HydPy-Conv.rst +22 -0
  491. hydpy/docs/rst/HydPy-Dam.rst +79 -0
  492. hydpy/docs/rst/HydPy-Dummy.rst +21 -0
  493. hydpy/docs/rst/HydPy-Evap.rst +26 -0
  494. hydpy/docs/rst/HydPy-Exch.rst +36 -0
  495. hydpy/docs/rst/HydPy-G.rst +40 -0
  496. hydpy/docs/rst/HydPy-GA.rst +34 -0
  497. hydpy/docs/rst/HydPy-H.rst +24 -0
  498. hydpy/docs/rst/HydPy-KinW.rst +32 -0
  499. hydpy/docs/rst/HydPy-L.rst +42 -0
  500. hydpy/docs/rst/HydPy-Meteo.rst +28 -0
  501. hydpy/docs/rst/HydPy-Musk.rst +21 -0
  502. hydpy/docs/rst/HydPy-Rconc.rst +17 -0
  503. hydpy/docs/rst/HydPy-SW1D.rst +49 -0
  504. hydpy/docs/rst/HydPy-Test.rst +19 -0
  505. hydpy/docs/rst/HydPy-W.rst +20 -0
  506. hydpy/docs/rst/HydPy-WHMod.rst +19 -0
  507. hydpy/docs/rst/HydPy-WQ.rst +20 -0
  508. hydpy/docs/rst/__init__.py +0 -0
  509. hydpy/docs/rst/additional_repositories.rst +40 -0
  510. hydpy/docs/rst/auxiliaries.rst +31 -0
  511. hydpy/docs/rst/continuous_integration.rst +75 -0
  512. hydpy/docs/rst/core.rst +75 -0
  513. hydpy/docs/rst/cythons.rst +47 -0
  514. hydpy/docs/rst/definitions.rst +506 -0
  515. hydpy/docs/rst/developer_guide.rst +54 -0
  516. hydpy/docs/rst/example_projects.rst +40 -0
  517. hydpy/docs/rst/execution.rst +22 -0
  518. hydpy/docs/rst/framework_tools.rst +56 -0
  519. hydpy/docs/rst/how_to_read_the_reference_manual.rst +156 -0
  520. hydpy/docs/rst/hydpydependencies.rst +55 -0
  521. hydpy/docs/rst/index.rst +125 -0
  522. hydpy/docs/rst/installation.rst +155 -0
  523. hydpy/docs/rst/model_families.rst +79 -0
  524. hydpy/docs/rst/model_overview.rst +291 -0
  525. hydpy/docs/rst/modelimports.rst +10 -0
  526. hydpy/docs/rst/options.rst +119 -0
  527. hydpy/docs/rst/programming_style.rst +572 -0
  528. hydpy/docs/rst/project_structure.rst +520 -0
  529. hydpy/docs/rst/quickstart.rst +304 -0
  530. hydpy/docs/rst/reference_manual.rst +29 -0
  531. hydpy/docs/rst/required_tools.rst +50 -0
  532. hydpy/docs/rst/simulation.rst +514 -0
  533. hydpy/docs/rst/submodel_interfaces.rst +32 -0
  534. hydpy/docs/rst/tests_and_documentation.rst +85 -0
  535. hydpy/docs/rst/user_guide.rst +38 -0
  536. hydpy/docs/rst/version_control.rst +116 -0
  537. hydpy/docs/rst/zbibliography.rst +8 -0
  538. hydpy/docs/sphinx/__init__.py +0 -0
  539. hydpy/docs/sphinx/_themes/basic_hydpy/changes/frameset.html +11 -0
  540. hydpy/docs/sphinx/_themes/basic_hydpy/changes/rstsource.html +15 -0
  541. hydpy/docs/sphinx/_themes/basic_hydpy/changes/versionchanges.html +33 -0
  542. hydpy/docs/sphinx/_themes/basic_hydpy/defindex.html +35 -0
  543. hydpy/docs/sphinx/_themes/basic_hydpy/domainindex.html +56 -0
  544. hydpy/docs/sphinx/_themes/basic_hydpy/genindex-single.html +63 -0
  545. hydpy/docs/sphinx/_themes/basic_hydpy/genindex-split.html +41 -0
  546. hydpy/docs/sphinx/_themes/basic_hydpy/genindex.html +76 -0
  547. hydpy/docs/sphinx/_themes/basic_hydpy/globaltoc.html +11 -0
  548. hydpy/docs/sphinx/_themes/basic_hydpy/layout.html +221 -0
  549. hydpy/docs/sphinx/_themes/basic_hydpy/localtoc.html +15 -0
  550. hydpy/docs/sphinx/_themes/basic_hydpy/opensearch.xml +13 -0
  551. hydpy/docs/sphinx/_themes/basic_hydpy/page.html +13 -0
  552. hydpy/docs/sphinx/_themes/basic_hydpy/relations.html +23 -0
  553. hydpy/docs/sphinx/_themes/basic_hydpy/search.html +65 -0
  554. hydpy/docs/sphinx/_themes/basic_hydpy/searchbox.html +21 -0
  555. hydpy/docs/sphinx/_themes/basic_hydpy/searchfield.html +23 -0
  556. hydpy/docs/sphinx/_themes/basic_hydpy/sourcelink.html +18 -0
  557. hydpy/docs/sphinx/_themes/basic_hydpy/static/basic.css_t +925 -0
  558. hydpy/docs/sphinx/_themes/basic_hydpy/static/doctools.js +156 -0
  559. hydpy/docs/sphinx/_themes/basic_hydpy/static/documentation_options.js_t +13 -0
  560. hydpy/docs/sphinx/_themes/basic_hydpy/static/file.png +0 -0
  561. hydpy/docs/sphinx/_themes/basic_hydpy/static/language_data.js_t +26 -0
  562. hydpy/docs/sphinx/_themes/basic_hydpy/static/minus.png +0 -0
  563. hydpy/docs/sphinx/_themes/basic_hydpy/static/plus.png +0 -0
  564. hydpy/docs/sphinx/_themes/basic_hydpy/static/searchtools.js +574 -0
  565. hydpy/docs/sphinx/_themes/basic_hydpy/static/sphinx_highlight.js +154 -0
  566. hydpy/docs/sphinx/_themes/basic_hydpy/theme.conf +16 -0
  567. hydpy/docs/sphinx/_themes/classic_hydpy/layout.html +23 -0
  568. hydpy/docs/sphinx/_themes/classic_hydpy/static/classic.css_t +358 -0
  569. hydpy/docs/sphinx/_themes/classic_hydpy/static/sidebar.js_t +72 -0
  570. hydpy/docs/sphinx/_themes/classic_hydpy/theme.conf +32 -0
  571. hydpy/docs/sphinx/conf.py +398 -0
  572. hydpy/docs/sphinx/defaultlinks_extension.py +36 -0
  573. hydpy/docs/sphinx/integrationtest_extension.py +104 -0
  574. hydpy/docs/sphinx/projectstructure_extension.py +58 -0
  575. hydpy/docs/sphinx/submodelgraph_extension.py +53 -0
  576. hydpy/exe/__init__.py +0 -0
  577. hydpy/exe/commandtools.py +651 -0
  578. hydpy/exe/hyd.py +277 -0
  579. hydpy/exe/modelimports.py +41 -0
  580. hydpy/exe/replacetools.py +216 -0
  581. hydpy/exe/servertools.py +2348 -0
  582. hydpy/exe/xmltools.py +3280 -0
  583. hydpy/interfaces/__init__.py +0 -0
  584. hydpy/interfaces/aetinterfaces.py +94 -0
  585. hydpy/interfaces/dischargeinterfaces.py +45 -0
  586. hydpy/interfaces/petinterfaces.py +117 -0
  587. hydpy/interfaces/precipinterfaces.py +42 -0
  588. hydpy/interfaces/radiationinterfaces.py +79 -0
  589. hydpy/interfaces/rconcinterfaces.py +30 -0
  590. hydpy/interfaces/routinginterfaces.py +324 -0
  591. hydpy/interfaces/soilinterfaces.py +96 -0
  592. hydpy/interfaces/stateinterfaces.py +98 -0
  593. hydpy/interfaces/tempinterfaces.py +46 -0
  594. hydpy/models/__init__.py +0 -0
  595. hydpy/models/arma/__init__.py +14 -0
  596. hydpy/models/arma/arma_control.py +383 -0
  597. hydpy/models/arma/arma_derived.py +204 -0
  598. hydpy/models/arma/arma_fluxes.py +41 -0
  599. hydpy/models/arma/arma_inlets.py +11 -0
  600. hydpy/models/arma/arma_logs.py +19 -0
  601. hydpy/models/arma/arma_model.py +461 -0
  602. hydpy/models/arma/arma_outlets.py +11 -0
  603. hydpy/models/arma_rimorido.py +381 -0
  604. hydpy/models/conv/__init__.py +12 -0
  605. hydpy/models/conv/conv_control.py +303 -0
  606. hydpy/models/conv/conv_derived.py +271 -0
  607. hydpy/models/conv/conv_fluxes.py +54 -0
  608. hydpy/models/conv/conv_inlets.py +11 -0
  609. hydpy/models/conv/conv_model.py +687 -0
  610. hydpy/models/conv/conv_outlets.py +11 -0
  611. hydpy/models/conv_idw.py +120 -0
  612. hydpy/models/conv_idw_ed.py +184 -0
  613. hydpy/models/conv_nn.py +112 -0
  614. hydpy/models/dam/__init__.py +16 -0
  615. hydpy/models/dam/dam_aides.py +17 -0
  616. hydpy/models/dam/dam_control.py +346 -0
  617. hydpy/models/dam/dam_derived.py +559 -0
  618. hydpy/models/dam/dam_factors.py +46 -0
  619. hydpy/models/dam/dam_fluxes.py +179 -0
  620. hydpy/models/dam/dam_inlets.py +29 -0
  621. hydpy/models/dam/dam_logs.py +52 -0
  622. hydpy/models/dam/dam_model.py +5011 -0
  623. hydpy/models/dam/dam_outlets.py +23 -0
  624. hydpy/models/dam/dam_receivers.py +41 -0
  625. hydpy/models/dam/dam_senders.py +23 -0
  626. hydpy/models/dam/dam_solver.py +75 -0
  627. hydpy/models/dam/dam_states.py +11 -0
  628. hydpy/models/dam_llake.py +499 -0
  629. hydpy/models/dam_lreservoir.py +548 -0
  630. hydpy/models/dam_lretention.py +343 -0
  631. hydpy/models/dam_pump.py +278 -0
  632. hydpy/models/dam_pump_sluice.py +339 -0
  633. hydpy/models/dam_sluice.py +319 -0
  634. hydpy/models/dam_v001.py +1127 -0
  635. hydpy/models/dam_v002.py +381 -0
  636. hydpy/models/dam_v003.py +422 -0
  637. hydpy/models/dam_v004.py +665 -0
  638. hydpy/models/dam_v005.py +479 -0
  639. hydpy/models/dummy/__init__.py +15 -0
  640. hydpy/models/dummy/dummy_control.py +22 -0
  641. hydpy/models/dummy/dummy_fluxes.py +11 -0
  642. hydpy/models/dummy/dummy_inlets.py +11 -0
  643. hydpy/models/dummy/dummy_inputs.py +41 -0
  644. hydpy/models/dummy/dummy_model.py +196 -0
  645. hydpy/models/dummy/dummy_outlets.py +11 -0
  646. hydpy/models/dummy_interceptedwater.py +85 -0
  647. hydpy/models/dummy_node2node.py +83 -0
  648. hydpy/models/dummy_snowalbedo.py +84 -0
  649. hydpy/models/dummy_snowcover.py +84 -0
  650. hydpy/models/dummy_snowycanopy.py +86 -0
  651. hydpy/models/dummy_soilwater.py +85 -0
  652. hydpy/models/evap/__init__.py +13 -0
  653. hydpy/models/evap/evap_control.py +354 -0
  654. hydpy/models/evap/evap_derived.py +236 -0
  655. hydpy/models/evap/evap_factors.py +188 -0
  656. hydpy/models/evap/evap_fixed.py +68 -0
  657. hydpy/models/evap/evap_fluxes.py +150 -0
  658. hydpy/models/evap/evap_inputs.py +54 -0
  659. hydpy/models/evap/evap_logs.py +91 -0
  660. hydpy/models/evap/evap_masks.py +48 -0
  661. hydpy/models/evap/evap_model.py +9170 -0
  662. hydpy/models/evap/evap_parameters.py +149 -0
  663. hydpy/models/evap/evap_sequences.py +32 -0
  664. hydpy/models/evap/evap_states.py +18 -0
  665. hydpy/models/evap_aet_hbv96.py +372 -0
  666. hydpy/models/evap_aet_minhas.py +331 -0
  667. hydpy/models/evap_aet_morsim.py +627 -0
  668. hydpy/models/evap_pet_ambav1.py +483 -0
  669. hydpy/models/evap_pet_hbv96.py +147 -0
  670. hydpy/models/evap_pet_m.py +94 -0
  671. hydpy/models/evap_pet_mlc.py +107 -0
  672. hydpy/models/evap_ret_fao56.py +265 -0
  673. hydpy/models/evap_ret_io.py +74 -0
  674. hydpy/models/evap_ret_tw2002.py +165 -0
  675. hydpy/models/exch/__init__.py +14 -0
  676. hydpy/models/exch/exch_control.py +262 -0
  677. hydpy/models/exch/exch_derived.py +36 -0
  678. hydpy/models/exch/exch_factors.py +26 -0
  679. hydpy/models/exch/exch_fluxes.py +48 -0
  680. hydpy/models/exch/exch_inlets.py +11 -0
  681. hydpy/models/exch/exch_logs.py +12 -0
  682. hydpy/models/exch/exch_model.py +451 -0
  683. hydpy/models/exch/exch_outlets.py +17 -0
  684. hydpy/models/exch/exch_receivers.py +17 -0
  685. hydpy/models/exch_branch_hbv96.py +186 -0
  686. hydpy/models/exch_waterlevel.py +73 -0
  687. hydpy/models/exch_weir_hbv96.py +609 -0
  688. hydpy/models/ga/__init__.py +14 -0
  689. hydpy/models/ga/ga_aides.py +17 -0
  690. hydpy/models/ga/ga_control.py +208 -0
  691. hydpy/models/ga/ga_derived.py +77 -0
  692. hydpy/models/ga/ga_fluxes.py +83 -0
  693. hydpy/models/ga/ga_inputs.py +26 -0
  694. hydpy/models/ga/ga_logs.py +17 -0
  695. hydpy/models/ga/ga_model.py +2952 -0
  696. hydpy/models/ga/ga_states.py +87 -0
  697. hydpy/models/ga_garto.py +1001 -0
  698. hydpy/models/ga_garto_submodel1.py +79 -0
  699. hydpy/models/gland/__init__.py +14 -0
  700. hydpy/models/gland/gland_control.py +90 -0
  701. hydpy/models/gland/gland_derived.py +113 -0
  702. hydpy/models/gland/gland_fluxes.py +137 -0
  703. hydpy/models/gland/gland_inputs.py +12 -0
  704. hydpy/models/gland/gland_model.py +1439 -0
  705. hydpy/models/gland/gland_outlets.py +11 -0
  706. hydpy/models/gland/gland_states.py +90 -0
  707. hydpy/models/gland_gr4.py +501 -0
  708. hydpy/models/gland_gr5.py +463 -0
  709. hydpy/models/gland_gr6.py +487 -0
  710. hydpy/models/hland/__init__.py +20 -0
  711. hydpy/models/hland/hland_aides.py +19 -0
  712. hydpy/models/hland/hland_constants.py +37 -0
  713. hydpy/models/hland/hland_control.py +1530 -0
  714. hydpy/models/hland/hland_derived.py +683 -0
  715. hydpy/models/hland/hland_factors.py +57 -0
  716. hydpy/models/hland/hland_fixed.py +42 -0
  717. hydpy/models/hland/hland_fluxes.py +279 -0
  718. hydpy/models/hland/hland_inputs.py +19 -0
  719. hydpy/models/hland/hland_masks.py +107 -0
  720. hydpy/models/hland/hland_model.py +4664 -0
  721. hydpy/models/hland/hland_outlets.py +11 -0
  722. hydpy/models/hland/hland_parameters.py +227 -0
  723. hydpy/models/hland/hland_sequences.py +382 -0
  724. hydpy/models/hland/hland_states.py +236 -0
  725. hydpy/models/hland_96.py +1812 -0
  726. hydpy/models/hland_96c.py +1196 -0
  727. hydpy/models/hland_96p.py +1204 -0
  728. hydpy/models/kinw/__init__.py +18 -0
  729. hydpy/models/kinw/kinw_aides.py +306 -0
  730. hydpy/models/kinw/kinw_control.py +270 -0
  731. hydpy/models/kinw/kinw_derived.py +197 -0
  732. hydpy/models/kinw/kinw_fixed.py +33 -0
  733. hydpy/models/kinw/kinw_fluxes.py +37 -0
  734. hydpy/models/kinw/kinw_inlets.py +11 -0
  735. hydpy/models/kinw/kinw_model.py +3026 -0
  736. hydpy/models/kinw/kinw_outlets.py +11 -0
  737. hydpy/models/kinw/kinw_solver.py +45 -0
  738. hydpy/models/kinw/kinw_states.py +17 -0
  739. hydpy/models/kinw_williams.py +1299 -0
  740. hydpy/models/kinw_williams_ext.py +768 -0
  741. hydpy/models/lland/__init__.py +42 -0
  742. hydpy/models/lland/lland_aides.py +38 -0
  743. hydpy/models/lland/lland_constants.py +88 -0
  744. hydpy/models/lland/lland_control.py +1329 -0
  745. hydpy/models/lland/lland_derived.py +380 -0
  746. hydpy/models/lland/lland_factors.py +18 -0
  747. hydpy/models/lland/lland_fixed.py +128 -0
  748. hydpy/models/lland/lland_fluxes.py +626 -0
  749. hydpy/models/lland/lland_inlets.py +12 -0
  750. hydpy/models/lland/lland_inputs.py +33 -0
  751. hydpy/models/lland/lland_logs.py +17 -0
  752. hydpy/models/lland/lland_masks.py +212 -0
  753. hydpy/models/lland/lland_model.py +7690 -0
  754. hydpy/models/lland/lland_outlets.py +12 -0
  755. hydpy/models/lland/lland_parameters.py +195 -0
  756. hydpy/models/lland/lland_sequences.py +67 -0
  757. hydpy/models/lland/lland_states.py +280 -0
  758. hydpy/models/lland_dd.py +2270 -0
  759. hydpy/models/lland_knauf.py +2156 -0
  760. hydpy/models/lland_knauf_ic.py +1920 -0
  761. hydpy/models/meteo/__init__.py +12 -0
  762. hydpy/models/meteo/meteo_control.py +154 -0
  763. hydpy/models/meteo/meteo_derived.py +159 -0
  764. hydpy/models/meteo/meteo_factors.py +88 -0
  765. hydpy/models/meteo/meteo_fixed.py +19 -0
  766. hydpy/models/meteo/meteo_fluxes.py +46 -0
  767. hydpy/models/meteo/meteo_inputs.py +47 -0
  768. hydpy/models/meteo/meteo_logs.py +30 -0
  769. hydpy/models/meteo/meteo_model.py +2904 -0
  770. hydpy/models/meteo/meteo_parameters.py +14 -0
  771. hydpy/models/meteo/meteo_sequences.py +22 -0
  772. hydpy/models/meteo_clear_glob_io.py +77 -0
  773. hydpy/models/meteo_glob_fao56.py +217 -0
  774. hydpy/models/meteo_glob_io.py +68 -0
  775. hydpy/models/meteo_glob_morsim.py +444 -0
  776. hydpy/models/meteo_precip_io.py +76 -0
  777. hydpy/models/meteo_psun_sun_glob_io.py +83 -0
  778. hydpy/models/meteo_sun_fao56.py +188 -0
  779. hydpy/models/meteo_sun_morsim.py +466 -0
  780. hydpy/models/meteo_temp_io.py +76 -0
  781. hydpy/models/musk/__init__.py +15 -0
  782. hydpy/models/musk/musk_control.py +328 -0
  783. hydpy/models/musk/musk_derived.py +32 -0
  784. hydpy/models/musk/musk_factors.py +53 -0
  785. hydpy/models/musk/musk_fluxes.py +24 -0
  786. hydpy/models/musk/musk_inlets.py +11 -0
  787. hydpy/models/musk/musk_masks.py +15 -0
  788. hydpy/models/musk/musk_model.py +838 -0
  789. hydpy/models/musk/musk_outlets.py +11 -0
  790. hydpy/models/musk/musk_sequences.py +88 -0
  791. hydpy/models/musk/musk_solver.py +68 -0
  792. hydpy/models/musk/musk_states.py +64 -0
  793. hydpy/models/musk_classic.py +228 -0
  794. hydpy/models/musk_mct.py +1247 -0
  795. hydpy/models/rconc/__init__.py +12 -0
  796. hydpy/models/rconc/rconc_control.py +473 -0
  797. hydpy/models/rconc/rconc_derived.py +76 -0
  798. hydpy/models/rconc/rconc_fluxes.py +19 -0
  799. hydpy/models/rconc/rconc_logs.py +74 -0
  800. hydpy/models/rconc/rconc_model.py +260 -0
  801. hydpy/models/rconc/rconc_states.py +11 -0
  802. hydpy/models/rconc_nash.py +48 -0
  803. hydpy/models/rconc_uh.py +53 -0
  804. hydpy/models/sw1d/__init__.py +17 -0
  805. hydpy/models/sw1d/sw1d_control.py +356 -0
  806. hydpy/models/sw1d/sw1d_derived.py +85 -0
  807. hydpy/models/sw1d/sw1d_factors.py +78 -0
  808. hydpy/models/sw1d/sw1d_fixed.py +12 -0
  809. hydpy/models/sw1d/sw1d_fluxes.py +55 -0
  810. hydpy/models/sw1d/sw1d_inlets.py +17 -0
  811. hydpy/models/sw1d/sw1d_model.py +3385 -0
  812. hydpy/models/sw1d/sw1d_outlets.py +11 -0
  813. hydpy/models/sw1d/sw1d_receivers.py +11 -0
  814. hydpy/models/sw1d/sw1d_senders.py +11 -0
  815. hydpy/models/sw1d/sw1d_states.py +23 -0
  816. hydpy/models/sw1d_channel.py +2051 -0
  817. hydpy/models/sw1d_gate_out.py +599 -0
  818. hydpy/models/sw1d_lias.py +105 -0
  819. hydpy/models/sw1d_lias_sluice.py +531 -0
  820. hydpy/models/sw1d_network.py +1219 -0
  821. hydpy/models/sw1d_pump.py +448 -0
  822. hydpy/models/sw1d_q_in.py +79 -0
  823. hydpy/models/sw1d_q_out.py +81 -0
  824. hydpy/models/sw1d_storage.py +78 -0
  825. hydpy/models/sw1d_weir_out.py +75 -0
  826. hydpy/models/test/__init__.py +14 -0
  827. hydpy/models/test/test_control.py +28 -0
  828. hydpy/models/test/test_fluxes.py +17 -0
  829. hydpy/models/test/test_model.py +201 -0
  830. hydpy/models/test/test_solver.py +48 -0
  831. hydpy/models/test/test_states.py +17 -0
  832. hydpy/models/test_discontinous.py +46 -0
  833. hydpy/models/test_stiff0d.py +47 -0
  834. hydpy/models/test_stiff1d.py +42 -0
  835. hydpy/models/whmod/__init__.py +21 -0
  836. hydpy/models/whmod/whmod_constants.py +77 -0
  837. hydpy/models/whmod/whmod_control.py +333 -0
  838. hydpy/models/whmod/whmod_derived.py +210 -0
  839. hydpy/models/whmod/whmod_factors.py +9 -0
  840. hydpy/models/whmod/whmod_fluxes.py +105 -0
  841. hydpy/models/whmod/whmod_inputs.py +15 -0
  842. hydpy/models/whmod/whmod_masks.py +178 -0
  843. hydpy/models/whmod/whmod_model.py +2091 -0
  844. hydpy/models/whmod/whmod_parameters.py +155 -0
  845. hydpy/models/whmod/whmod_sequences.py +193 -0
  846. hydpy/models/whmod/whmod_states.py +73 -0
  847. hydpy/models/whmod_rural.py +794 -0
  848. hydpy/models/whmod_urban.py +1011 -0
  849. hydpy/models/wland/__init__.py +43 -0
  850. hydpy/models/wland/wland_aides.py +55 -0
  851. hydpy/models/wland/wland_constants.py +103 -0
  852. hydpy/models/wland/wland_control.py +508 -0
  853. hydpy/models/wland/wland_derived.py +330 -0
  854. hydpy/models/wland/wland_factors.py +11 -0
  855. hydpy/models/wland/wland_fixed.py +12 -0
  856. hydpy/models/wland/wland_fluxes.py +166 -0
  857. hydpy/models/wland/wland_inputs.py +33 -0
  858. hydpy/models/wland/wland_masks.py +54 -0
  859. hydpy/models/wland/wland_model.py +3755 -0
  860. hydpy/models/wland/wland_outlets.py +11 -0
  861. hydpy/models/wland/wland_parameters.py +214 -0
  862. hydpy/models/wland/wland_sequences.py +108 -0
  863. hydpy/models/wland/wland_solver.py +45 -0
  864. hydpy/models/wland/wland_states.py +56 -0
  865. hydpy/models/wland_gd.py +888 -0
  866. hydpy/models/wland_wag.py +1244 -0
  867. hydpy/models/wq/__init__.py +14 -0
  868. hydpy/models/wq/wq_control.py +117 -0
  869. hydpy/models/wq/wq_derived.py +182 -0
  870. hydpy/models/wq/wq_factors.py +79 -0
  871. hydpy/models/wq/wq_fluxes.py +17 -0
  872. hydpy/models/wq/wq_model.py +1889 -0
  873. hydpy/models/wq_trapeze.py +168 -0
  874. hydpy/models/wq_trapeze_strickler.py +101 -0
  875. hydpy/models/wq_walrus.py +57 -0
  876. hydpy/py.typed +0 -0
  877. hydpy/tests/.coveragerc +22 -0
  878. hydpy/tests/__init__.py +0 -0
  879. hydpy/tests/check_consistency.py +32 -0
  880. hydpy/tests/hydpydoctestcustomize.pth +1 -0
  881. hydpy/tests/hydpydoctestcustomize.py +15 -0
  882. hydpy/tests/iotesting/__init__.py +0 -0
  883. hydpy/tests/run_doctests.py +233 -0
  884. hydpy-6.2.dev1.data/scripts/hyd.py +277 -0
  885. hydpy-6.2.dev1.dist-info/LICENSE +165 -0
  886. hydpy-6.2.dev1.dist-info/METADATA +163 -0
  887. hydpy-6.2.dev1.dist-info/RECORD +890 -0
  888. hydpy-6.2.dev1.dist-info/WHEEL +5 -0
  889. hydpy-6.2.dev1.dist-info/licenses_hydpy_installer.txt +42 -0
  890. hydpy-6.2.dev1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,652 @@
1
+ #!python
2
+ # distutils: define_macros=NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION
3
+ # cython: language_level=3
4
+ # cython: cpow=True
5
+ # cython: boundscheck=False
6
+ # cython: wraparound=False
7
+ # cython: initializedcheck=False
8
+ # cython: cdivision=True
9
+ from typing import Optional
10
+ import numpy
11
+ cimport numpy
12
+ from libc.math cimport exp, fabs, log, sin, cos, tan, tanh, asin, acos, atan, isnan, isinf
13
+ from libc.math cimport NAN as nan
14
+ from libc.math cimport INFINITY as inf
15
+ import cython
16
+ from cpython.mem cimport PyMem_Malloc
17
+ from cpython.mem cimport PyMem_Realloc
18
+ from cpython.mem cimport PyMem_Free
19
+ from hydpy.cythons.autogen cimport configutils
20
+ from hydpy.cythons.autogen cimport interfaceutils
21
+ from hydpy.cythons.autogen cimport interputils
22
+ from hydpy.cythons.autogen import pointerutils
23
+ from hydpy.cythons.autogen cimport pointerutils
24
+ from hydpy.cythons.autogen cimport quadutils
25
+ from hydpy.cythons.autogen cimport rootutils
26
+ from hydpy.cythons.autogen cimport smoothutils
27
+ from hydpy.cythons.autogen cimport masterinterface
28
+
29
+
30
+ cdef void do_nothing(Model model) noexcept nogil:
31
+ pass
32
+
33
+ cpdef get_wrapper():
34
+ cdef CallbackWrapper wrapper = CallbackWrapper()
35
+ wrapper.callback = do_nothing
36
+ return wrapper
37
+
38
+ @cython.final
39
+ cdef class Parameters:
40
+ pass
41
+ @cython.final
42
+ cdef class ControlParameters:
43
+ pass
44
+ @cython.final
45
+ cdef class DerivedParameters:
46
+ pass
47
+ @cython.final
48
+ cdef class Sequences:
49
+ pass
50
+ @cython.final
51
+ cdef class FactorSequences:
52
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
53
+ cdef numpy.int64_t jdx0
54
+ cdef numpy.int64_t k
55
+ if self._waterdepth_diskflag_reading:
56
+ self.waterdepth = self._waterdepth_ncarray[0]
57
+ elif self._waterdepth_ramflag:
58
+ self.waterdepth = self._waterdepth_array[idx]
59
+ if self._waterlevel_diskflag_reading:
60
+ self.waterlevel = self._waterlevel_ncarray[0]
61
+ elif self._waterlevel_ramflag:
62
+ self.waterlevel = self._waterlevel_array[idx]
63
+ if self._wettedareas_diskflag_reading:
64
+ k = 0
65
+ for jdx0 in range(self._wettedareas_length_0):
66
+ self.wettedareas[jdx0] = self._wettedareas_ncarray[k]
67
+ k += 1
68
+ elif self._wettedareas_ramflag:
69
+ for jdx0 in range(self._wettedareas_length_0):
70
+ self.wettedareas[jdx0] = self._wettedareas_array[idx, jdx0]
71
+ if self._wettedarea_diskflag_reading:
72
+ self.wettedarea = self._wettedarea_ncarray[0]
73
+ elif self._wettedarea_ramflag:
74
+ self.wettedarea = self._wettedarea_array[idx]
75
+ if self._wettedperimeters_diskflag_reading:
76
+ k = 0
77
+ for jdx0 in range(self._wettedperimeters_length_0):
78
+ self.wettedperimeters[jdx0] = self._wettedperimeters_ncarray[k]
79
+ k += 1
80
+ elif self._wettedperimeters_ramflag:
81
+ for jdx0 in range(self._wettedperimeters_length_0):
82
+ self.wettedperimeters[jdx0] = self._wettedperimeters_array[idx, jdx0]
83
+ if self._wettedperimeter_diskflag_reading:
84
+ self.wettedperimeter = self._wettedperimeter_ncarray[0]
85
+ elif self._wettedperimeter_ramflag:
86
+ self.wettedperimeter = self._wettedperimeter_array[idx]
87
+ if self._wettedperimeterderivatives_diskflag_reading:
88
+ k = 0
89
+ for jdx0 in range(self._wettedperimeterderivatives_length_0):
90
+ self.wettedperimeterderivatives[jdx0] = self._wettedperimeterderivatives_ncarray[k]
91
+ k += 1
92
+ elif self._wettedperimeterderivatives_ramflag:
93
+ for jdx0 in range(self._wettedperimeterderivatives_length_0):
94
+ self.wettedperimeterderivatives[jdx0] = self._wettedperimeterderivatives_array[idx, jdx0]
95
+ if self._surfacewidths_diskflag_reading:
96
+ k = 0
97
+ for jdx0 in range(self._surfacewidths_length_0):
98
+ self.surfacewidths[jdx0] = self._surfacewidths_ncarray[k]
99
+ k += 1
100
+ elif self._surfacewidths_ramflag:
101
+ for jdx0 in range(self._surfacewidths_length_0):
102
+ self.surfacewidths[jdx0] = self._surfacewidths_array[idx, jdx0]
103
+ if self._surfacewidth_diskflag_reading:
104
+ self.surfacewidth = self._surfacewidth_ncarray[0]
105
+ elif self._surfacewidth_ramflag:
106
+ self.surfacewidth = self._surfacewidth_array[idx]
107
+ if self._dischargederivatives_diskflag_reading:
108
+ k = 0
109
+ for jdx0 in range(self._dischargederivatives_length_0):
110
+ self.dischargederivatives[jdx0] = self._dischargederivatives_ncarray[k]
111
+ k += 1
112
+ elif self._dischargederivatives_ramflag:
113
+ for jdx0 in range(self._dischargederivatives_length_0):
114
+ self.dischargederivatives[jdx0] = self._dischargederivatives_array[idx, jdx0]
115
+ if self._dischargederivative_diskflag_reading:
116
+ self.dischargederivative = self._dischargederivative_ncarray[0]
117
+ elif self._dischargederivative_ramflag:
118
+ self.dischargederivative = self._dischargederivative_array[idx]
119
+ if self._celerity_diskflag_reading:
120
+ self.celerity = self._celerity_ncarray[0]
121
+ elif self._celerity_ramflag:
122
+ self.celerity = self._celerity_array[idx]
123
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
124
+ cdef numpy.int64_t jdx0
125
+ cdef numpy.int64_t k
126
+ if self._waterdepth_diskflag_writing:
127
+ self._waterdepth_ncarray[0] = self.waterdepth
128
+ if self._waterdepth_ramflag:
129
+ self._waterdepth_array[idx] = self.waterdepth
130
+ if self._waterlevel_diskflag_writing:
131
+ self._waterlevel_ncarray[0] = self.waterlevel
132
+ if self._waterlevel_ramflag:
133
+ self._waterlevel_array[idx] = self.waterlevel
134
+ if self._wettedareas_diskflag_writing:
135
+ k = 0
136
+ for jdx0 in range(self._wettedareas_length_0):
137
+ self._wettedareas_ncarray[k] = self.wettedareas[jdx0]
138
+ k += 1
139
+ if self._wettedareas_ramflag:
140
+ for jdx0 in range(self._wettedareas_length_0):
141
+ self._wettedareas_array[idx, jdx0] = self.wettedareas[jdx0]
142
+ if self._wettedarea_diskflag_writing:
143
+ self._wettedarea_ncarray[0] = self.wettedarea
144
+ if self._wettedarea_ramflag:
145
+ self._wettedarea_array[idx] = self.wettedarea
146
+ if self._wettedperimeters_diskflag_writing:
147
+ k = 0
148
+ for jdx0 in range(self._wettedperimeters_length_0):
149
+ self._wettedperimeters_ncarray[k] = self.wettedperimeters[jdx0]
150
+ k += 1
151
+ if self._wettedperimeters_ramflag:
152
+ for jdx0 in range(self._wettedperimeters_length_0):
153
+ self._wettedperimeters_array[idx, jdx0] = self.wettedperimeters[jdx0]
154
+ if self._wettedperimeter_diskflag_writing:
155
+ self._wettedperimeter_ncarray[0] = self.wettedperimeter
156
+ if self._wettedperimeter_ramflag:
157
+ self._wettedperimeter_array[idx] = self.wettedperimeter
158
+ if self._wettedperimeterderivatives_diskflag_writing:
159
+ k = 0
160
+ for jdx0 in range(self._wettedperimeterderivatives_length_0):
161
+ self._wettedperimeterderivatives_ncarray[k] = self.wettedperimeterderivatives[jdx0]
162
+ k += 1
163
+ if self._wettedperimeterderivatives_ramflag:
164
+ for jdx0 in range(self._wettedperimeterderivatives_length_0):
165
+ self._wettedperimeterderivatives_array[idx, jdx0] = self.wettedperimeterderivatives[jdx0]
166
+ if self._surfacewidths_diskflag_writing:
167
+ k = 0
168
+ for jdx0 in range(self._surfacewidths_length_0):
169
+ self._surfacewidths_ncarray[k] = self.surfacewidths[jdx0]
170
+ k += 1
171
+ if self._surfacewidths_ramflag:
172
+ for jdx0 in range(self._surfacewidths_length_0):
173
+ self._surfacewidths_array[idx, jdx0] = self.surfacewidths[jdx0]
174
+ if self._surfacewidth_diskflag_writing:
175
+ self._surfacewidth_ncarray[0] = self.surfacewidth
176
+ if self._surfacewidth_ramflag:
177
+ self._surfacewidth_array[idx] = self.surfacewidth
178
+ if self._dischargederivatives_diskflag_writing:
179
+ k = 0
180
+ for jdx0 in range(self._dischargederivatives_length_0):
181
+ self._dischargederivatives_ncarray[k] = self.dischargederivatives[jdx0]
182
+ k += 1
183
+ if self._dischargederivatives_ramflag:
184
+ for jdx0 in range(self._dischargederivatives_length_0):
185
+ self._dischargederivatives_array[idx, jdx0] = self.dischargederivatives[jdx0]
186
+ if self._dischargederivative_diskflag_writing:
187
+ self._dischargederivative_ncarray[0] = self.dischargederivative
188
+ if self._dischargederivative_ramflag:
189
+ self._dischargederivative_array[idx] = self.dischargederivative
190
+ if self._celerity_diskflag_writing:
191
+ self._celerity_ncarray[0] = self.celerity
192
+ if self._celerity_ramflag:
193
+ self._celerity_array[idx] = self.celerity
194
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
195
+ if name == "waterdepth":
196
+ self._waterdepth_outputpointer = value.p_value
197
+ if name == "waterlevel":
198
+ self._waterlevel_outputpointer = value.p_value
199
+ if name == "wettedarea":
200
+ self._wettedarea_outputpointer = value.p_value
201
+ if name == "wettedperimeter":
202
+ self._wettedperimeter_outputpointer = value.p_value
203
+ if name == "surfacewidth":
204
+ self._surfacewidth_outputpointer = value.p_value
205
+ if name == "dischargederivative":
206
+ self._dischargederivative_outputpointer = value.p_value
207
+ if name == "celerity":
208
+ self._celerity_outputpointer = value.p_value
209
+ cpdef inline void update_outputs(self) noexcept nogil:
210
+ if self._waterdepth_outputflag:
211
+ self._waterdepth_outputpointer[0] = self.waterdepth
212
+ if self._waterlevel_outputflag:
213
+ self._waterlevel_outputpointer[0] = self.waterlevel
214
+ if self._wettedarea_outputflag:
215
+ self._wettedarea_outputpointer[0] = self.wettedarea
216
+ if self._wettedperimeter_outputflag:
217
+ self._wettedperimeter_outputpointer[0] = self.wettedperimeter
218
+ if self._surfacewidth_outputflag:
219
+ self._surfacewidth_outputpointer[0] = self.surfacewidth
220
+ if self._dischargederivative_outputflag:
221
+ self._dischargederivative_outputpointer[0] = self.dischargederivative
222
+ if self._celerity_outputflag:
223
+ self._celerity_outputpointer[0] = self.celerity
224
+ @cython.final
225
+ cdef class FluxSequences:
226
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
227
+ cdef numpy.int64_t jdx0
228
+ cdef numpy.int64_t k
229
+ if self._discharges_diskflag_reading:
230
+ k = 0
231
+ for jdx0 in range(self._discharges_length_0):
232
+ self.discharges[jdx0] = self._discharges_ncarray[k]
233
+ k += 1
234
+ elif self._discharges_ramflag:
235
+ for jdx0 in range(self._discharges_length_0):
236
+ self.discharges[jdx0] = self._discharges_array[idx, jdx0]
237
+ if self._discharge_diskflag_reading:
238
+ self.discharge = self._discharge_ncarray[0]
239
+ elif self._discharge_ramflag:
240
+ self.discharge = self._discharge_array[idx]
241
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
242
+ cdef numpy.int64_t jdx0
243
+ cdef numpy.int64_t k
244
+ if self._discharges_diskflag_writing:
245
+ k = 0
246
+ for jdx0 in range(self._discharges_length_0):
247
+ self._discharges_ncarray[k] = self.discharges[jdx0]
248
+ k += 1
249
+ if self._discharges_ramflag:
250
+ for jdx0 in range(self._discharges_length_0):
251
+ self._discharges_array[idx, jdx0] = self.discharges[jdx0]
252
+ if self._discharge_diskflag_writing:
253
+ self._discharge_ncarray[0] = self.discharge
254
+ if self._discharge_ramflag:
255
+ self._discharge_array[idx] = self.discharge
256
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
257
+ if name == "discharge":
258
+ self._discharge_outputpointer = value.p_value
259
+ cpdef inline void update_outputs(self) noexcept nogil:
260
+ if self._discharge_outputflag:
261
+ self._discharge_outputpointer[0] = self.discharge
262
+ @cython.final
263
+ cdef class Model:
264
+ cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
265
+ self.idx_sim = idx
266
+ self.run()
267
+ self.update_outputs()
268
+ cpdef void reset_reuseflags(self) noexcept nogil:
269
+ pass
270
+ cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
271
+ self.idx_sim = idx
272
+ self.sequences.factors.save_data(idx)
273
+ self.sequences.fluxes.save_data(idx)
274
+ cpdef inline void run(self) noexcept nogil:
275
+ pass
276
+ cpdef inline void update_inlets(self) noexcept nogil:
277
+ pass
278
+ cpdef inline void update_outlets(self) noexcept nogil:
279
+ pass
280
+ cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
281
+ self.idx_sim = idx
282
+ pass
283
+ cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
284
+ self.idx_sim = idx
285
+ pass
286
+ cpdef inline void update_outputs(self) noexcept nogil:
287
+ self.sequences.factors.update_outputs()
288
+ self.sequences.fluxes.update_outputs()
289
+ cpdef double calculate_discharge_v1(self, double waterdepth) noexcept nogil:
290
+ cdef double f
291
+ cdef double h
292
+ h = smoothutils.smooth_logistic2( waterdepth - self.parameters.control.crestheight, self.parameters.derived.crestheightregularisation )
293
+ f = (h / (self.parameters.control.channeldepth - self.parameters.control.crestheight)) ** self.parameters.control.dischargeexponent
294
+ return self.parameters.control.bankfulldischarge * f
295
+ cpdef void set_waterdepth_v1(self, double waterdepth) noexcept nogil:
296
+ self.sequences.factors.waterdepth = waterdepth
297
+ cpdef void set_waterlevel_v1(self, double waterlevel) noexcept nogil:
298
+ self.sequences.factors.waterlevel = waterlevel
299
+ cpdef void set_wettedarea_v1(self, double wettedarea) noexcept nogil:
300
+ self.sequences.factors.wettedarea = wettedarea
301
+ cpdef double get_waterdepth_v1(self) noexcept nogil:
302
+ return self.sequences.factors.waterdepth
303
+ cpdef double get_waterlevel_v1(self) noexcept nogil:
304
+ return self.sequences.factors.waterlevel
305
+ cpdef double get_wettedarea_v1(self) noexcept nogil:
306
+ return self.sequences.factors.wettedarea
307
+ cpdef double get_wettedperimeter_v1(self) noexcept nogil:
308
+ return self.sequences.factors.wettedperimeter
309
+ cpdef double get_surfacewidth_v1(self) noexcept nogil:
310
+ return self.sequences.factors.surfacewidth
311
+ cpdef double get_discharge_v1(self) noexcept nogil:
312
+ return self.sequences.fluxes.discharge
313
+ cpdef double get_celerity_v1(self) noexcept nogil:
314
+ return self.sequences.factors.celerity
315
+ cpdef inline void calc_waterdepth_v1(self) noexcept nogil:
316
+ self.sequences.factors.waterdepth = max(self.sequences.factors.waterlevel - self.parameters.control.bottomlevels[0], 0.0)
317
+ cpdef inline void calc_waterdepth_v2(self) noexcept nogil:
318
+ cdef double ss
319
+ cdef numpy.int64_t i
320
+ cdef double w
321
+ cdef double d
322
+ cdef double a
323
+ a = self.sequences.factors.wettedarea
324
+ d = 0.0
325
+ w = 0.0
326
+ for i in range(self.parameters.control.nmbtrapezes):
327
+ if a > self.parameters.derived.trapezeareas[i]:
328
+ a = a - (self.parameters.derived.trapezeareas[i])
329
+ d = d + (self.parameters.derived.trapezeheights[i])
330
+ w = w + (self.parameters.control.bottomwidths[i] + self.parameters.derived.slopewidths[i])
331
+ else:
332
+ if a > 0.0:
333
+ w = w + (self.parameters.control.bottomwidths[i])
334
+ ss = self.parameters.control.sideslopes[i]
335
+ if ss > 1e-10:
336
+ d = d + (((4.0 * ss * a + w**2.0) ** 0.5 - w) / (2.0 * ss))
337
+ else:
338
+ d = d + (a / w)
339
+ self.sequences.factors.waterdepth = d
340
+ break
341
+ cpdef inline void calc_waterlevel_v1(self) noexcept nogil:
342
+ self.sequences.factors.waterlevel = self.sequences.factors.waterdepth + self.parameters.control.bottomlevels[0]
343
+ cpdef inline void calc_wettedareas_v1(self) noexcept nogil:
344
+ cdef double ws
345
+ cdef double ss
346
+ cdef double wb
347
+ cdef double ht
348
+ cdef double d
349
+ cdef numpy.int64_t i
350
+ for i in range(self.parameters.control.nmbtrapezes):
351
+ d = self.sequences.factors.waterdepth - self.parameters.derived.bottomdepths[i]
352
+ if d < 0.0:
353
+ self.sequences.factors.wettedareas[i] = 0.0
354
+ else:
355
+ ht = self.parameters.derived.trapezeheights[i]
356
+ wb = self.parameters.control.bottomwidths[i]
357
+ if d < ht:
358
+ ss = self.parameters.control.sideslopes[i]
359
+ self.sequences.factors.wettedareas[i] = (wb + ss * d) * d
360
+ else:
361
+ ws = self.parameters.derived.slopewidths[i]
362
+ self.sequences.factors.wettedareas[i] = (wb + ws / 2.0) * ht + (wb + ws) * (d - ht)
363
+ cpdef inline void calc_wettedarea_v1(self) noexcept nogil:
364
+ cdef numpy.int64_t i
365
+ self.sequences.factors.wettedarea = 0.0
366
+ for i in range(self.parameters.control.nmbtrapezes):
367
+ self.sequences.factors.wettedarea = self.sequences.factors.wettedarea + (self.sequences.factors.wettedareas[i])
368
+ cpdef inline void calc_wettedperimeters_v1(self) noexcept nogil:
369
+ cdef double ss
370
+ cdef double wb
371
+ cdef double ht
372
+ cdef double d
373
+ cdef numpy.int64_t i
374
+ for i in range(self.parameters.control.nmbtrapezes):
375
+ d = self.sequences.factors.waterdepth - self.parameters.derived.bottomdepths[i]
376
+ if d < 0.0:
377
+ self.sequences.factors.wettedperimeters[i] = 0.0
378
+ else:
379
+ ht = self.parameters.derived.trapezeheights[i]
380
+ wb = self.parameters.control.bottomwidths[i]
381
+ ss = self.parameters.control.sideslopes[i]
382
+ if d < ht:
383
+ self.sequences.factors.wettedperimeters[i] = wb + 2.0 * d * (ss**2.0 + 1.0) ** 0.5
384
+ else:
385
+ self.sequences.factors.wettedperimeters[i] = ( wb + 2.0 * ht * (ss**2.0 + 1.0) ** 0.5 + 2.0 * (d - ht) )
386
+ cpdef inline void calc_wettedperimeter_v1(self) noexcept nogil:
387
+ cdef numpy.int64_t i
388
+ self.sequences.factors.wettedperimeter = 0.0
389
+ for i in range(self.parameters.control.nmbtrapezes):
390
+ self.sequences.factors.wettedperimeter = self.sequences.factors.wettedperimeter + (self.sequences.factors.wettedperimeters[i])
391
+ cpdef inline void calc_wettedperimeterderivatives_v1(self) noexcept nogil:
392
+ cdef double d
393
+ cdef numpy.int64_t i
394
+ for i in range(self.parameters.control.nmbtrapezes):
395
+ d = self.sequences.factors.waterdepth - self.parameters.derived.bottomdepths[i]
396
+ if d < 0.0:
397
+ self.sequences.factors.wettedperimeterderivatives[i] = 0.0
398
+ elif d < self.parameters.derived.trapezeheights[i]:
399
+ self.sequences.factors.wettedperimeterderivatives[i] = self.parameters.derived.perimeterderivatives[i]
400
+ else:
401
+ self.sequences.factors.wettedperimeterderivatives[i] = 2.0
402
+ cpdef inline void calc_surfacewidths_v1(self) noexcept nogil:
403
+ cdef double d
404
+ cdef numpy.int64_t i
405
+ for i in range(self.parameters.control.nmbtrapezes):
406
+ d = self.sequences.factors.waterdepth - self.parameters.derived.bottomdepths[i]
407
+ if d < 0.0:
408
+ self.sequences.factors.surfacewidths[i] = 0.0
409
+ elif d < self.parameters.derived.trapezeheights[i]:
410
+ self.sequences.factors.surfacewidths[i] = self.parameters.control.bottomwidths[i] + 2.0 * self.parameters.control.sideslopes[i] * d
411
+ else:
412
+ self.sequences.factors.surfacewidths[i] = self.parameters.control.bottomwidths[i] + self.parameters.derived.slopewidths[i]
413
+ cpdef inline void calc_surfacewidth_v1(self) noexcept nogil:
414
+ cdef numpy.int64_t i
415
+ self.sequences.factors.surfacewidth = 0.0
416
+ for i in range(self.parameters.control.nmbtrapezes):
417
+ self.sequences.factors.surfacewidth = self.sequences.factors.surfacewidth + (self.sequences.factors.surfacewidths[i])
418
+ cpdef inline void calc_discharges_v1(self) noexcept nogil:
419
+ cdef numpy.int64_t i
420
+ for i in range(self.parameters.control.nmbtrapezes):
421
+ if self.sequences.factors.waterdepth > self.parameters.derived.bottomdepths[i]:
422
+ self.sequences.fluxes.discharges[i] = ( self.parameters.control.stricklercoefficients[i] * self.parameters.control.bottomslope**0.5 * self.sequences.factors.wettedareas[i] ** (5.0 / 3.0) / self.sequences.factors.wettedperimeters[i] ** (2.0 / 3.0) )
423
+ else:
424
+ self.sequences.fluxes.discharges[i] = 0.0
425
+ cpdef inline void calc_discharge_v2(self) noexcept nogil:
426
+ cdef numpy.int64_t i
427
+ self.sequences.fluxes.discharge = 0.0
428
+ for i in range(self.parameters.control.nmbtrapezes):
429
+ self.sequences.fluxes.discharge = self.sequences.fluxes.discharge + (self.sequences.fluxes.discharges[i])
430
+ cpdef inline void calc_dischargederivatives_v1(self) noexcept nogil:
431
+ cdef double dp
432
+ cdef double p
433
+ cdef double da
434
+ cdef double a
435
+ cdef numpy.int64_t i
436
+ for i in range(self.parameters.control.nmbtrapezes):
437
+ if self.sequences.factors.waterdepth > self.parameters.derived.bottomdepths[i]:
438
+ a = self.sequences.factors.wettedareas[i]
439
+ da = self.sequences.factors.surfacewidths[i]
440
+ p = self.sequences.factors.wettedperimeters[i]
441
+ dp = self.sequences.factors.wettedperimeterderivatives[i]
442
+ self.sequences.factors.dischargederivatives[i] = ( self.parameters.control.stricklercoefficients[i] * self.parameters.control.bottomslope**0.5 * (a / p) ** (2.0 / 3.0) * (5.0 * p * da - 2.0 * a * dp) / (3.0 * p) )
443
+ else:
444
+ self.sequences.factors.dischargederivatives[i] = 0.0
445
+ cpdef inline void calc_dischargederivative_v1(self) noexcept nogil:
446
+ cdef numpy.int64_t i
447
+ self.sequences.factors.dischargederivative = 0.0
448
+ for i in range(self.parameters.control.nmbtrapezes):
449
+ self.sequences.factors.dischargederivative = self.sequences.factors.dischargederivative + (self.sequences.factors.dischargederivatives[i])
450
+ cpdef inline void calc_celerity_v1(self) noexcept nogil:
451
+ if self.sequences.factors.surfacewidth > 0.0:
452
+ self.sequences.factors.celerity = self.sequences.factors.dischargederivative / self.sequences.factors.surfacewidth
453
+ else:
454
+ self.sequences.factors.celerity = nan
455
+ cpdef double calculate_discharge(self, double waterdepth) noexcept nogil:
456
+ cdef double f
457
+ cdef double h
458
+ h = smoothutils.smooth_logistic2( waterdepth - self.parameters.control.crestheight, self.parameters.derived.crestheightregularisation )
459
+ f = (h / (self.parameters.control.channeldepth - self.parameters.control.crestheight)) ** self.parameters.control.dischargeexponent
460
+ return self.parameters.control.bankfulldischarge * f
461
+ cpdef void set_waterdepth(self, double waterdepth) noexcept nogil:
462
+ self.sequences.factors.waterdepth = waterdepth
463
+ cpdef void set_waterlevel(self, double waterlevel) noexcept nogil:
464
+ self.sequences.factors.waterlevel = waterlevel
465
+ cpdef void set_wettedarea(self, double wettedarea) noexcept nogil:
466
+ self.sequences.factors.wettedarea = wettedarea
467
+ cpdef double get_waterdepth(self) noexcept nogil:
468
+ return self.sequences.factors.waterdepth
469
+ cpdef double get_waterlevel(self) noexcept nogil:
470
+ return self.sequences.factors.waterlevel
471
+ cpdef double get_wettedarea(self) noexcept nogil:
472
+ return self.sequences.factors.wettedarea
473
+ cpdef double get_wettedperimeter(self) noexcept nogil:
474
+ return self.sequences.factors.wettedperimeter
475
+ cpdef double get_surfacewidth(self) noexcept nogil:
476
+ return self.sequences.factors.surfacewidth
477
+ cpdef double get_discharge(self) noexcept nogil:
478
+ return self.sequences.fluxes.discharge
479
+ cpdef double get_celerity(self) noexcept nogil:
480
+ return self.sequences.factors.celerity
481
+ cpdef inline void calc_waterlevel(self) noexcept nogil:
482
+ self.sequences.factors.waterlevel = self.sequences.factors.waterdepth + self.parameters.control.bottomlevels[0]
483
+ cpdef inline void calc_wettedareas(self) noexcept nogil:
484
+ cdef double ws
485
+ cdef double ss
486
+ cdef double wb
487
+ cdef double ht
488
+ cdef double d
489
+ cdef numpy.int64_t i
490
+ for i in range(self.parameters.control.nmbtrapezes):
491
+ d = self.sequences.factors.waterdepth - self.parameters.derived.bottomdepths[i]
492
+ if d < 0.0:
493
+ self.sequences.factors.wettedareas[i] = 0.0
494
+ else:
495
+ ht = self.parameters.derived.trapezeheights[i]
496
+ wb = self.parameters.control.bottomwidths[i]
497
+ if d < ht:
498
+ ss = self.parameters.control.sideslopes[i]
499
+ self.sequences.factors.wettedareas[i] = (wb + ss * d) * d
500
+ else:
501
+ ws = self.parameters.derived.slopewidths[i]
502
+ self.sequences.factors.wettedareas[i] = (wb + ws / 2.0) * ht + (wb + ws) * (d - ht)
503
+ cpdef inline void calc_wettedarea(self) noexcept nogil:
504
+ cdef numpy.int64_t i
505
+ self.sequences.factors.wettedarea = 0.0
506
+ for i in range(self.parameters.control.nmbtrapezes):
507
+ self.sequences.factors.wettedarea = self.sequences.factors.wettedarea + (self.sequences.factors.wettedareas[i])
508
+ cpdef inline void calc_wettedperimeters(self) noexcept nogil:
509
+ cdef double ss
510
+ cdef double wb
511
+ cdef double ht
512
+ cdef double d
513
+ cdef numpy.int64_t i
514
+ for i in range(self.parameters.control.nmbtrapezes):
515
+ d = self.sequences.factors.waterdepth - self.parameters.derived.bottomdepths[i]
516
+ if d < 0.0:
517
+ self.sequences.factors.wettedperimeters[i] = 0.0
518
+ else:
519
+ ht = self.parameters.derived.trapezeheights[i]
520
+ wb = self.parameters.control.bottomwidths[i]
521
+ ss = self.parameters.control.sideslopes[i]
522
+ if d < ht:
523
+ self.sequences.factors.wettedperimeters[i] = wb + 2.0 * d * (ss**2.0 + 1.0) ** 0.5
524
+ else:
525
+ self.sequences.factors.wettedperimeters[i] = ( wb + 2.0 * ht * (ss**2.0 + 1.0) ** 0.5 + 2.0 * (d - ht) )
526
+ cpdef inline void calc_wettedperimeter(self) noexcept nogil:
527
+ cdef numpy.int64_t i
528
+ self.sequences.factors.wettedperimeter = 0.0
529
+ for i in range(self.parameters.control.nmbtrapezes):
530
+ self.sequences.factors.wettedperimeter = self.sequences.factors.wettedperimeter + (self.sequences.factors.wettedperimeters[i])
531
+ cpdef inline void calc_wettedperimeterderivatives(self) noexcept nogil:
532
+ cdef double d
533
+ cdef numpy.int64_t i
534
+ for i in range(self.parameters.control.nmbtrapezes):
535
+ d = self.sequences.factors.waterdepth - self.parameters.derived.bottomdepths[i]
536
+ if d < 0.0:
537
+ self.sequences.factors.wettedperimeterderivatives[i] = 0.0
538
+ elif d < self.parameters.derived.trapezeheights[i]:
539
+ self.sequences.factors.wettedperimeterderivatives[i] = self.parameters.derived.perimeterderivatives[i]
540
+ else:
541
+ self.sequences.factors.wettedperimeterderivatives[i] = 2.0
542
+ cpdef inline void calc_surfacewidths(self) noexcept nogil:
543
+ cdef double d
544
+ cdef numpy.int64_t i
545
+ for i in range(self.parameters.control.nmbtrapezes):
546
+ d = self.sequences.factors.waterdepth - self.parameters.derived.bottomdepths[i]
547
+ if d < 0.0:
548
+ self.sequences.factors.surfacewidths[i] = 0.0
549
+ elif d < self.parameters.derived.trapezeheights[i]:
550
+ self.sequences.factors.surfacewidths[i] = self.parameters.control.bottomwidths[i] + 2.0 * self.parameters.control.sideslopes[i] * d
551
+ else:
552
+ self.sequences.factors.surfacewidths[i] = self.parameters.control.bottomwidths[i] + self.parameters.derived.slopewidths[i]
553
+ cpdef inline void calc_surfacewidth(self) noexcept nogil:
554
+ cdef numpy.int64_t i
555
+ self.sequences.factors.surfacewidth = 0.0
556
+ for i in range(self.parameters.control.nmbtrapezes):
557
+ self.sequences.factors.surfacewidth = self.sequences.factors.surfacewidth + (self.sequences.factors.surfacewidths[i])
558
+ cpdef inline void calc_discharges(self) noexcept nogil:
559
+ cdef numpy.int64_t i
560
+ for i in range(self.parameters.control.nmbtrapezes):
561
+ if self.sequences.factors.waterdepth > self.parameters.derived.bottomdepths[i]:
562
+ self.sequences.fluxes.discharges[i] = ( self.parameters.control.stricklercoefficients[i] * self.parameters.control.bottomslope**0.5 * self.sequences.factors.wettedareas[i] ** (5.0 / 3.0) / self.sequences.factors.wettedperimeters[i] ** (2.0 / 3.0) )
563
+ else:
564
+ self.sequences.fluxes.discharges[i] = 0.0
565
+ cpdef inline void calc_discharge(self) noexcept nogil:
566
+ cdef numpy.int64_t i
567
+ self.sequences.fluxes.discharge = 0.0
568
+ for i in range(self.parameters.control.nmbtrapezes):
569
+ self.sequences.fluxes.discharge = self.sequences.fluxes.discharge + (self.sequences.fluxes.discharges[i])
570
+ cpdef inline void calc_dischargederivatives(self) noexcept nogil:
571
+ cdef double dp
572
+ cdef double p
573
+ cdef double da
574
+ cdef double a
575
+ cdef numpy.int64_t i
576
+ for i in range(self.parameters.control.nmbtrapezes):
577
+ if self.sequences.factors.waterdepth > self.parameters.derived.bottomdepths[i]:
578
+ a = self.sequences.factors.wettedareas[i]
579
+ da = self.sequences.factors.surfacewidths[i]
580
+ p = self.sequences.factors.wettedperimeters[i]
581
+ dp = self.sequences.factors.wettedperimeterderivatives[i]
582
+ self.sequences.factors.dischargederivatives[i] = ( self.parameters.control.stricklercoefficients[i] * self.parameters.control.bottomslope**0.5 * (a / p) ** (2.0 / 3.0) * (5.0 * p * da - 2.0 * a * dp) / (3.0 * p) )
583
+ else:
584
+ self.sequences.factors.dischargederivatives[i] = 0.0
585
+ cpdef inline void calc_dischargederivative(self) noexcept nogil:
586
+ cdef numpy.int64_t i
587
+ self.sequences.factors.dischargederivative = 0.0
588
+ for i in range(self.parameters.control.nmbtrapezes):
589
+ self.sequences.factors.dischargederivative = self.sequences.factors.dischargederivative + (self.sequences.factors.dischargederivatives[i])
590
+ cpdef inline void calc_celerity(self) noexcept nogil:
591
+ if self.sequences.factors.surfacewidth > 0.0:
592
+ self.sequences.factors.celerity = self.sequences.factors.dischargederivative / self.sequences.factors.surfacewidth
593
+ else:
594
+ self.sequences.factors.celerity = nan
595
+ cpdef void use_waterdepth_v1(self, double waterdepth) noexcept nogil:
596
+ self.set_waterdepth_v1(waterdepth)
597
+ self.calc_waterlevel_v1()
598
+ self.calc_wettedareas_v1()
599
+ self.calc_wettedarea_v1()
600
+ self.calc_wettedperimeters_v1()
601
+ self.calc_wettedperimeterderivatives_v1()
602
+ self.calc_surfacewidths_v1()
603
+ self.calc_surfacewidth_v1()
604
+ self.calc_discharges_v1()
605
+ self.calc_discharge_v2()
606
+ self.calc_dischargederivatives_v1()
607
+ self.calc_dischargederivative_v1()
608
+ self.calc_celerity_v1()
609
+ cpdef void use_waterdepth_v2(self, double waterdepth) noexcept nogil:
610
+ self.set_waterdepth_v1(waterdepth)
611
+ self.calc_waterlevel_v1()
612
+ self.calc_wettedareas_v1()
613
+ self.calc_wettedarea_v1()
614
+ self.calc_wettedperimeters_v1()
615
+ self.calc_wettedperimeter_v1()
616
+ cpdef void use_waterlevel_v1(self, double waterlevel) noexcept nogil:
617
+ self.set_waterlevel_v1(waterlevel)
618
+ self.calc_waterdepth_v1()
619
+ self.calc_wettedareas_v1()
620
+ self.calc_wettedarea_v1()
621
+ self.calc_wettedperimeters_v1()
622
+ self.calc_wettedperimeterderivatives_v1()
623
+ self.calc_surfacewidths_v1()
624
+ self.calc_surfacewidth_v1()
625
+ self.calc_discharges_v1()
626
+ self.calc_discharge_v2()
627
+ self.calc_dischargederivatives_v1()
628
+ self.calc_dischargederivative_v1()
629
+ self.calc_celerity_v1()
630
+ cpdef void use_waterlevel_v2(self, double waterlevel) noexcept nogil:
631
+ self.set_waterlevel_v1(waterlevel)
632
+ self.calc_waterdepth_v1()
633
+ self.calc_wettedareas_v1()
634
+ self.calc_wettedarea_v1()
635
+ self.calc_wettedperimeters_v1()
636
+ self.calc_wettedperimeter_v1()
637
+ cpdef void use_wettedarea_v1(self, double wettedarea) noexcept nogil:
638
+ self.set_wettedarea_v1(wettedarea)
639
+ self.calc_waterdepth_v2()
640
+ self.calc_waterlevel_v1()
641
+ self.calc_wettedareas_v1()
642
+ self.calc_wettedarea_v1()
643
+ self.calc_wettedperimeters_v1()
644
+ self.calc_wettedperimeter_v1()
645
+ cpdef void use_wettedarea(self, double wettedarea) noexcept nogil:
646
+ self.set_wettedarea_v1(wettedarea)
647
+ self.calc_waterdepth_v2()
648
+ self.calc_waterlevel_v1()
649
+ self.calc_wettedareas_v1()
650
+ self.calc_wettedarea_v1()
651
+ self.calc_wettedperimeters_v1()
652
+ self.calc_wettedperimeter_v1()