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,175 @@
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
+ ctypedef void (*CallbackType) (Model) noexcept nogil
29
+ cdef class CallbackWrapper:
30
+ cdef CallbackType callback
31
+ @cython.final
32
+ cdef class Parameters:
33
+ cdef public ControlParameters control
34
+ cdef public SolverParameters solver
35
+ @cython.final
36
+ cdef class ControlParameters:
37
+ cdef public double k
38
+ cdef public numpy.int64_t n
39
+ @cython.final
40
+ cdef class SolverParameters:
41
+ cdef public double abserrormax
42
+ cdef public double relerrormax
43
+ cdef public double reldtmin
44
+ cdef public double reldtmax
45
+ @cython.final
46
+ cdef class Sequences:
47
+ cdef public FluxSequences fluxes
48
+ cdef public StateSequences states
49
+ cdef public StateSequences old_states
50
+ cdef public StateSequences new_states
51
+ @cython.final
52
+ cdef class FluxSequences:
53
+ cdef public double q
54
+ cdef public numpy.int64_t _q_ndim
55
+ cdef public numpy.int64_t _q_length
56
+ cdef public double[:] _q_points
57
+ cdef public double[:] _q_results
58
+ cdef public double[:] _q_integrals
59
+ cdef public double _q_sum
60
+ cdef public bint _q_ramflag
61
+ cdef public double[:] _q_array
62
+ cdef public bint _q_diskflag_reading
63
+ cdef public bint _q_diskflag_writing
64
+ cdef public double[:] _q_ncarray
65
+ cdef public bint _q_outputflag
66
+ cdef double *_q_outputpointer
67
+ cdef public double[:] qv
68
+ cdef public numpy.int64_t _qv_ndim
69
+ cdef public numpy.int64_t _qv_length
70
+ cdef public numpy.int64_t _qv_length_0
71
+ cdef public double[:,:] _qv_points
72
+ cdef public double[:,:] _qv_results
73
+ cdef public double[:,:] _qv_integrals
74
+ cdef public double[:] _qv_sum
75
+ cdef public bint _qv_ramflag
76
+ cdef public double[:,:] _qv_array
77
+ cdef public bint _qv_diskflag_reading
78
+ cdef public bint _qv_diskflag_writing
79
+ cdef public double[:] _qv_ncarray
80
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
81
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
82
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
83
+ cpdef inline void update_outputs(self) noexcept nogil
84
+ @cython.final
85
+ cdef class StateSequences:
86
+ cdef public double s
87
+ cdef public numpy.int64_t _s_ndim
88
+ cdef public numpy.int64_t _s_length
89
+ cdef public double[:] _s_points
90
+ cdef public double[:] _s_results
91
+ cdef public bint _s_ramflag
92
+ cdef public double[:] _s_array
93
+ cdef public bint _s_diskflag_reading
94
+ cdef public bint _s_diskflag_writing
95
+ cdef public double[:] _s_ncarray
96
+ cdef public bint _s_outputflag
97
+ cdef double *_s_outputpointer
98
+ cdef public double[:] sv
99
+ cdef public numpy.int64_t _sv_ndim
100
+ cdef public numpy.int64_t _sv_length
101
+ cdef public numpy.int64_t _sv_length_0
102
+ cdef public double[:,:] _sv_points
103
+ cdef public double[:,:] _sv_results
104
+ cdef public bint _sv_ramflag
105
+ cdef public double[:,:] _sv_array
106
+ cdef public bint _sv_diskflag_reading
107
+ cdef public bint _sv_diskflag_writing
108
+ cdef public double[:] _sv_ncarray
109
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
110
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
111
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
112
+ cpdef inline void update_outputs(self) noexcept nogil
113
+ @cython.final
114
+ cdef class NumConsts:
115
+ cdef public numpy.int64_t nmb_methods
116
+ cdef public numpy.int64_t nmb_stages
117
+ cdef public double dt_increase
118
+ cdef public double dt_decrease
119
+ cdef public configutils.Config pub
120
+ cdef public double[:, :, :] a_coefs
121
+ @cython.final
122
+ cdef class NumVars:
123
+ cdef public bint use_relerror
124
+ cdef public numpy.int64_t nmb_calls
125
+ cdef public numpy.int64_t idx_method
126
+ cdef public numpy.int64_t idx_stage
127
+ cdef public double t0
128
+ cdef public double t1
129
+ cdef public double dt
130
+ cdef public double dt_est
131
+ cdef public double abserror
132
+ cdef public double relerror
133
+ cdef public double last_abserror
134
+ cdef public double last_relerror
135
+ cdef public double extrapolated_abserror
136
+ cdef public double extrapolated_relerror
137
+ cdef public numpy.npy_bool f0_ready
138
+ @cython.final
139
+ cdef class Model:
140
+ cdef public numpy.int64_t idx_sim
141
+ cdef public Parameters parameters
142
+ cdef public Sequences sequences
143
+ cdef public NumConsts numconsts
144
+ cdef public NumVars numvars
145
+ cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
146
+ cpdef void reset_reuseflags(self) noexcept nogil
147
+ cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
148
+ cpdef void new2old(self) noexcept nogil
149
+ cpdef inline void update_inlets(self) noexcept nogil
150
+ cpdef inline void update_outlets(self) noexcept nogil
151
+ cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
152
+ cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
153
+ cpdef inline void update_outputs(self) noexcept nogil
154
+ cpdef inline void solve(self) noexcept nogil
155
+ cpdef inline void calculate_single_terms(self) noexcept nogil
156
+ cpdef inline void calculate_full_terms(self) noexcept nogil
157
+ cpdef inline void get_point_states(self) noexcept nogil
158
+ cpdef inline void set_point_states(self) noexcept nogil
159
+ cpdef inline void set_result_states(self) noexcept nogil
160
+ cpdef inline void get_sum_fluxes(self) noexcept nogil
161
+ cpdef inline void set_point_fluxes(self) noexcept nogil
162
+ cpdef inline void set_result_fluxes(self) noexcept nogil
163
+ cpdef inline void integrate_fluxes(self) noexcept nogil
164
+ cpdef inline void reset_sum_fluxes(self) noexcept nogil
165
+ cpdef inline void addup_fluxes(self) noexcept nogil
166
+ cpdef inline void calculate_error(self) noexcept nogil
167
+ cpdef inline void extrapolate_error(self) noexcept nogil
168
+ cpdef inline void calc_q_v1(self) noexcept nogil
169
+ cpdef inline void calc_q_v2(self) noexcept nogil
170
+ cpdef inline void calc_qv_v1(self) noexcept nogil
171
+ cpdef inline void calc_s_v1(self) noexcept nogil
172
+ cpdef inline void calc_sv_v1(self) noexcept nogil
173
+ cpdef inline void calc_qv(self) noexcept nogil
174
+ cpdef inline void calc_s(self) noexcept nogil
175
+ cpdef inline void calc_sv(self) noexcept nogil
@@ -0,0 +1,348 @@
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 SolverParameters:
46
+ pass
47
+ @cython.final
48
+ cdef class Sequences:
49
+ pass
50
+ @cython.final
51
+ cdef class FluxSequences:
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._q_diskflag_reading:
56
+ self.q = self._q_ncarray[0]
57
+ elif self._q_ramflag:
58
+ self.q = self._q_array[idx]
59
+ if self._qv_diskflag_reading:
60
+ k = 0
61
+ for jdx0 in range(self._qv_length_0):
62
+ self.qv[jdx0] = self._qv_ncarray[k]
63
+ k += 1
64
+ elif self._qv_ramflag:
65
+ for jdx0 in range(self._qv_length_0):
66
+ self.qv[jdx0] = self._qv_array[idx, jdx0]
67
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
68
+ cdef numpy.int64_t jdx0
69
+ cdef numpy.int64_t k
70
+ if self._q_diskflag_writing:
71
+ self._q_ncarray[0] = self.q
72
+ if self._q_ramflag:
73
+ self._q_array[idx] = self.q
74
+ if self._qv_diskflag_writing:
75
+ k = 0
76
+ for jdx0 in range(self._qv_length_0):
77
+ self._qv_ncarray[k] = self.qv[jdx0]
78
+ k += 1
79
+ if self._qv_ramflag:
80
+ for jdx0 in range(self._qv_length_0):
81
+ self._qv_array[idx, jdx0] = self.qv[jdx0]
82
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
83
+ if name == "q":
84
+ self._q_outputpointer = value.p_value
85
+ cpdef inline void update_outputs(self) noexcept nogil:
86
+ if self._q_outputflag:
87
+ self._q_outputpointer[0] = self.q
88
+ @cython.final
89
+ cdef class StateSequences:
90
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
91
+ cdef numpy.int64_t jdx0
92
+ cdef numpy.int64_t k
93
+ if self._s_diskflag_reading:
94
+ self.s = self._s_ncarray[0]
95
+ elif self._s_ramflag:
96
+ self.s = self._s_array[idx]
97
+ if self._sv_diskflag_reading:
98
+ k = 0
99
+ for jdx0 in range(self._sv_length_0):
100
+ self.sv[jdx0] = self._sv_ncarray[k]
101
+ k += 1
102
+ elif self._sv_ramflag:
103
+ for jdx0 in range(self._sv_length_0):
104
+ self.sv[jdx0] = self._sv_array[idx, jdx0]
105
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
106
+ cdef numpy.int64_t jdx0
107
+ cdef numpy.int64_t k
108
+ if self._s_diskflag_writing:
109
+ self._s_ncarray[0] = self.s
110
+ if self._s_ramflag:
111
+ self._s_array[idx] = self.s
112
+ if self._sv_diskflag_writing:
113
+ k = 0
114
+ for jdx0 in range(self._sv_length_0):
115
+ self._sv_ncarray[k] = self.sv[jdx0]
116
+ k += 1
117
+ if self._sv_ramflag:
118
+ for jdx0 in range(self._sv_length_0):
119
+ self._sv_array[idx, jdx0] = self.sv[jdx0]
120
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
121
+ if name == "s":
122
+ self._s_outputpointer = value.p_value
123
+ cpdef inline void update_outputs(self) noexcept nogil:
124
+ if self._s_outputflag:
125
+ self._s_outputpointer[0] = self.s
126
+ @cython.final
127
+ cdef class NumConsts:
128
+ pass
129
+ @cython.final
130
+ cdef class NumVars:
131
+ pass
132
+ @cython.final
133
+ cdef class Model:
134
+ cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
135
+ self.idx_sim = idx
136
+ self.solve()
137
+ self.update_outputs()
138
+ cpdef void reset_reuseflags(self) noexcept nogil:
139
+ pass
140
+ cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
141
+ self.idx_sim = idx
142
+ self.sequences.fluxes.save_data(idx)
143
+ self.sequences.states.save_data(idx)
144
+ cpdef void new2old(self) noexcept nogil:
145
+ cdef numpy.int64_t jdx0
146
+ self.sequences.old_states.s = self.sequences.new_states.s
147
+ for jdx0 in range(self.sequences.states._sv_length_0):
148
+ self.sequences.old_states.sv[jdx0] = self.sequences.new_states.sv[jdx0]
149
+ cpdef inline void update_inlets(self) noexcept nogil:
150
+ pass
151
+ cpdef inline void update_outlets(self) noexcept nogil:
152
+ pass
153
+ cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
154
+ self.idx_sim = idx
155
+ pass
156
+ cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
157
+ self.idx_sim = idx
158
+ pass
159
+ cpdef inline void update_outputs(self) noexcept nogil:
160
+ self.sequences.fluxes.update_outputs()
161
+ self.sequences.states.update_outputs()
162
+ cpdef inline void solve(self) noexcept nogil:
163
+ cdef numpy.int64_t decrease_dt
164
+ self.numvars.use_relerror = not isnan( self.parameters.solver.relerrormax )
165
+ self.numvars.t0, self.numvars.t1 = 0.0, 1.0
166
+ self.numvars.dt_est = 1.0 * self.parameters.solver.reldtmax
167
+ self.numvars.f0_ready = False
168
+ self.reset_sum_fluxes()
169
+ while self.numvars.t0 < self.numvars.t1 - 1e-14:
170
+ self.numvars.last_abserror = inf
171
+ self.numvars.last_relerror = inf
172
+ self.numvars.dt = min( self.numvars.t1 - self.numvars.t0, 1.0 * self.parameters.solver.reldtmax, max(self.numvars.dt_est, self.parameters.solver.reldtmin), )
173
+ if not self.numvars.f0_ready:
174
+ self.calculate_single_terms()
175
+ self.numvars.idx_method = 0
176
+ self.numvars.idx_stage = 0
177
+ self.set_point_fluxes()
178
+ self.set_point_states()
179
+ self.set_result_states()
180
+ for self.numvars.idx_method in range(1, self.numconsts.nmb_methods + 1):
181
+ for self.numvars.idx_stage in range(1, self.numvars.idx_method):
182
+ self.get_point_states()
183
+ self.calculate_single_terms()
184
+ self.set_point_fluxes()
185
+ for self.numvars.idx_stage in range(1, self.numvars.idx_method + 1):
186
+ self.integrate_fluxes()
187
+ self.calculate_full_terms()
188
+ self.set_point_states()
189
+ self.set_result_fluxes()
190
+ self.set_result_states()
191
+ self.calculate_error()
192
+ self.extrapolate_error()
193
+ if self.numvars.idx_method == 1:
194
+ continue
195
+ if (self.numvars.abserror <= self.parameters.solver.abserrormax) or ( self.numvars.relerror <= self.parameters.solver.relerrormax ):
196
+ self.numvars.dt_est = self.numconsts.dt_increase * self.numvars.dt
197
+ self.numvars.f0_ready = False
198
+ self.addup_fluxes()
199
+ self.numvars.t0 = self.numvars.t0 + self.numvars.dt
200
+ self.new2old()
201
+ break
202
+ decrease_dt = self.numvars.dt > self.parameters.solver.reldtmin
203
+ decrease_dt = decrease_dt and ( self.numvars.extrapolated_abserror > self.parameters.solver.abserrormax )
204
+ if self.numvars.use_relerror:
205
+ decrease_dt = decrease_dt and ( self.numvars.extrapolated_relerror > self.parameters.solver.relerrormax )
206
+ if decrease_dt:
207
+ self.numvars.f0_ready = True
208
+ self.numvars.dt_est = self.numvars.dt / self.numconsts.dt_decrease
209
+ break
210
+ self.numvars.last_abserror = self.numvars.abserror
211
+ self.numvars.last_relerror = self.numvars.relerror
212
+ self.numvars.f0_ready = True
213
+ else:
214
+ if self.numvars.dt <= self.parameters.solver.reldtmin:
215
+ self.numvars.f0_ready = False
216
+ self.addup_fluxes()
217
+ self.numvars.t0 = self.numvars.t0 + self.numvars.dt
218
+ self.new2old()
219
+ else:
220
+ self.numvars.f0_ready = True
221
+ self.numvars.dt_est = self.numvars.dt / self.numconsts.dt_decrease
222
+ self.get_sum_fluxes()
223
+ cpdef inline void calculate_single_terms(self) noexcept nogil:
224
+ self.numvars.nmb_calls = self.numvars.nmb_calls + 1
225
+ self.calc_q_v1()
226
+ self.calc_q_v2()
227
+ self.calc_qv_v1()
228
+ cpdef inline void calculate_full_terms(self) noexcept nogil:
229
+ self.calc_s_v1()
230
+ self.calc_sv_v1()
231
+ cpdef inline void get_point_states(self) noexcept nogil:
232
+ cdef numpy.int64_t idx0
233
+ self.sequences.states.s = self.sequences.states._s_points[self.numvars.idx_stage]
234
+ for idx0 in range(self.sequences.states._sv_length):
235
+ self.sequences.states.sv[idx0] = self.sequences.states._sv_points[self.numvars.idx_stage][idx0]
236
+ cpdef inline void set_point_states(self) noexcept nogil:
237
+ cdef numpy.int64_t idx0
238
+ self.sequences.states._s_points[self.numvars.idx_stage] = self.sequences.states.s
239
+ for idx0 in range(self.sequences.states._sv_length):
240
+ self.sequences.states._sv_points[self.numvars.idx_stage][idx0] = self.sequences.states.sv[idx0]
241
+ cpdef inline void set_result_states(self) noexcept nogil:
242
+ cdef numpy.int64_t idx0
243
+ self.sequences.states._s_results[self.numvars.idx_method] = self.sequences.states.s
244
+ for idx0 in range(self.sequences.states._sv_length):
245
+ self.sequences.states._sv_results[self.numvars.idx_method][idx0] = self.sequences.states.sv[idx0]
246
+ cpdef inline void get_sum_fluxes(self) noexcept nogil:
247
+ cdef numpy.int64_t idx0
248
+ self.sequences.fluxes.q = self.sequences.fluxes._q_sum
249
+ for idx0 in range(self.sequences.fluxes._qv_length):
250
+ self.sequences.fluxes.qv[idx0] = self.sequences.fluxes._qv_sum[idx0]
251
+ cpdef inline void set_point_fluxes(self) noexcept nogil:
252
+ cdef numpy.int64_t idx0
253
+ self.sequences.fluxes._q_points[self.numvars.idx_stage] = self.sequences.fluxes.q
254
+ for idx0 in range(self.sequences.fluxes._qv_length):
255
+ self.sequences.fluxes._qv_points[self.numvars.idx_stage][idx0] = self.sequences.fluxes.qv[idx0]
256
+ cpdef inline void set_result_fluxes(self) noexcept nogil:
257
+ cdef numpy.int64_t idx0
258
+ self.sequences.fluxes._q_results[self.numvars.idx_method] = self.sequences.fluxes.q
259
+ for idx0 in range(self.sequences.fluxes._qv_length):
260
+ self.sequences.fluxes._qv_results[self.numvars.idx_method][idx0] = self.sequences.fluxes.qv[idx0]
261
+ cpdef inline void integrate_fluxes(self) noexcept nogil:
262
+ cdef numpy.int64_t jdx, idx0
263
+ self.sequences.fluxes.q = 0.
264
+ for jdx in range(self.numvars.idx_method):
265
+ self.sequences.fluxes.q = self.sequences.fluxes.q +self.numvars.dt * self.numconsts.a_coefs[self.numvars.idx_method-1, self.numvars.idx_stage, jdx]*self.sequences.fluxes._q_points[jdx]
266
+ for idx0 in range(self.sequences.fluxes._qv_length):
267
+ self.sequences.fluxes.qv[idx0] = 0.
268
+ for jdx in range(self.numvars.idx_method):
269
+ self.sequences.fluxes.qv[idx0] = self.sequences.fluxes.qv[idx0] + self.numvars.dt * self.numconsts.a_coefs[self.numvars.idx_method-1, self.numvars.idx_stage, jdx]*self.sequences.fluxes._qv_points[jdx, idx0]
270
+ cpdef inline void reset_sum_fluxes(self) noexcept nogil:
271
+ cdef numpy.int64_t idx0
272
+ self.sequences.fluxes._q_sum = 0.
273
+ for idx0 in range(self.sequences.fluxes._qv_length):
274
+ self.sequences.fluxes._qv_sum[idx0] = 0.
275
+ cpdef inline void addup_fluxes(self) noexcept nogil:
276
+ cdef numpy.int64_t idx0
277
+ self.sequences.fluxes._q_sum = self.sequences.fluxes._q_sum + self.sequences.fluxes.q
278
+ for idx0 in range(self.sequences.fluxes._qv_length):
279
+ self.sequences.fluxes._qv_sum[idx0] = self.sequences.fluxes._qv_sum[idx0] + self.sequences.fluxes.qv[idx0]
280
+ cpdef inline void calculate_error(self) noexcept nogil:
281
+ cdef numpy.int64_t idx0
282
+ cdef double abserror
283
+ self.numvars.abserror = 0.
284
+ if self.numvars.use_relerror:
285
+ self.numvars.relerror = 0.
286
+ else:
287
+ self.numvars.relerror = inf
288
+ abserror = fabs(self.sequences.fluxes._q_results[self.numvars.idx_method]-self.sequences.fluxes._q_results[self.numvars.idx_method-1])
289
+ self.numvars.abserror = max(self.numvars.abserror, abserror)
290
+ if self.numvars.use_relerror:
291
+ if self.sequences.fluxes._q_results[self.numvars.idx_method] == 0.:
292
+ self.numvars.relerror = inf
293
+ else:
294
+ self.numvars.relerror = max(self.numvars.relerror, fabs(abserror/self.sequences.fluxes._q_results[self.numvars.idx_method]))
295
+ for idx0 in range(self.sequences.fluxes._qv_length):
296
+ abserror = fabs(self.sequences.fluxes._qv_results[self.numvars.idx_method, idx0]-self.sequences.fluxes._qv_results[self.numvars.idx_method-1, idx0])
297
+ self.numvars.abserror = max(self.numvars.abserror, abserror)
298
+ if self.numvars.use_relerror:
299
+ if self.sequences.fluxes._qv_results[self.numvars.idx_method, idx0] == 0.:
300
+ self.numvars.relerror = inf
301
+ else:
302
+ self.numvars.relerror = max(self.numvars.relerror, fabs(abserror/self.sequences.fluxes._qv_results[self.numvars.idx_method, idx0]))
303
+ cpdef inline void extrapolate_error(self) noexcept nogil:
304
+ if self.numvars.abserror <= 0.0:
305
+ self.numvars.extrapolated_abserror = 0.0
306
+ self.numvars.extrapolated_relerror = 0.0
307
+ else:
308
+ if self.numvars.idx_method > 2:
309
+ self.numvars.extrapolated_abserror = exp( log(self.numvars.abserror) + ( log(self.numvars.abserror) - log(self.numvars.last_abserror) ) * (self.numconsts.nmb_methods - self.numvars.idx_method) )
310
+ else:
311
+ self.numvars.extrapolated_abserror = -999.9
312
+ if self.numvars.use_relerror:
313
+ if self.numvars.idx_method > 2:
314
+ if isinf(self.numvars.relerror):
315
+ self.numvars.extrapolated_relerror = inf
316
+ else:
317
+ self.numvars.extrapolated_relerror = exp( log(self.numvars.relerror) + ( log(self.numvars.relerror) - log(self.numvars.last_relerror) ) * (self.numconsts.nmb_methods - self.numvars.idx_method) )
318
+ else:
319
+ self.numvars.extrapolated_relerror = -999.9
320
+ else:
321
+ self.numvars.extrapolated_relerror = inf
322
+ cpdef inline void calc_q_v1(self) noexcept nogil:
323
+ self.sequences.fluxes.q = self.parameters.control.k * self.sequences.states.s
324
+ cpdef inline void calc_q_v2(self) noexcept nogil:
325
+ if self.sequences.states.s > 0.0:
326
+ self.sequences.fluxes.q = self.parameters.control.k
327
+ else:
328
+ self.sequences.fluxes.q = 0.0
329
+ cpdef inline void calc_qv_v1(self) noexcept nogil:
330
+ cdef numpy.int64_t i
331
+ for i in range(self.parameters.control.n):
332
+ self.sequences.fluxes.qv[i] = self.parameters.control.k * self.sequences.states.sv[i]
333
+ cpdef inline void calc_s_v1(self) noexcept nogil:
334
+ self.sequences.new_states.s = self.sequences.old_states.s - self.sequences.fluxes.q
335
+ cpdef inline void calc_sv_v1(self) noexcept nogil:
336
+ cdef numpy.int64_t i
337
+ for i in range(self.parameters.control.n):
338
+ self.sequences.new_states.sv[i] = self.sequences.old_states.sv[i] - self.sequences.fluxes.qv[i]
339
+ cpdef inline void calc_qv(self) noexcept nogil:
340
+ cdef numpy.int64_t i
341
+ for i in range(self.parameters.control.n):
342
+ self.sequences.fluxes.qv[i] = self.parameters.control.k * self.sequences.states.sv[i]
343
+ cpdef inline void calc_s(self) noexcept nogil:
344
+ self.sequences.new_states.s = self.sequences.old_states.s - self.sequences.fluxes.q
345
+ cpdef inline void calc_sv(self) noexcept nogil:
346
+ cdef numpy.int64_t i
347
+ for i in range(self.parameters.control.n):
348
+ self.sequences.new_states.sv[i] = self.sequences.old_states.sv[i] - self.sequences.fluxes.qv[i]
@@ -0,0 +1,146 @@
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
+ ctypedef void (*CallbackType) (Model) noexcept nogil
29
+ cdef class CallbackWrapper:
30
+ cdef CallbackType callback
31
+ @cython.final
32
+ cdef class Parameters:
33
+ cdef public ControlParameters control
34
+ cdef public SolverParameters solver
35
+ @cython.final
36
+ cdef class ControlParameters:
37
+ cdef public double k
38
+ @cython.final
39
+ cdef class SolverParameters:
40
+ cdef public double abserrormax
41
+ cdef public double relerrormax
42
+ cdef public double reldtmin
43
+ cdef public double reldtmax
44
+ @cython.final
45
+ cdef class Sequences:
46
+ cdef public FluxSequences fluxes
47
+ cdef public StateSequences states
48
+ cdef public StateSequences old_states
49
+ cdef public StateSequences new_states
50
+ @cython.final
51
+ cdef class FluxSequences:
52
+ cdef public double q
53
+ cdef public numpy.int64_t _q_ndim
54
+ cdef public numpy.int64_t _q_length
55
+ cdef public double[:] _q_points
56
+ cdef public double[:] _q_results
57
+ cdef public double[:] _q_integrals
58
+ cdef public double _q_sum
59
+ cdef public bint _q_ramflag
60
+ cdef public double[:] _q_array
61
+ cdef public bint _q_diskflag_reading
62
+ cdef public bint _q_diskflag_writing
63
+ cdef public double[:] _q_ncarray
64
+ cdef public bint _q_outputflag
65
+ cdef double *_q_outputpointer
66
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
67
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
68
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
69
+ cpdef inline void update_outputs(self) noexcept nogil
70
+ @cython.final
71
+ cdef class StateSequences:
72
+ cdef public double s
73
+ cdef public numpy.int64_t _s_ndim
74
+ cdef public numpy.int64_t _s_length
75
+ cdef public double[:] _s_points
76
+ cdef public double[:] _s_results
77
+ cdef public bint _s_ramflag
78
+ cdef public double[:] _s_array
79
+ cdef public bint _s_diskflag_reading
80
+ cdef public bint _s_diskflag_writing
81
+ cdef public double[:] _s_ncarray
82
+ cdef public bint _s_outputflag
83
+ cdef double *_s_outputpointer
84
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
85
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
86
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
87
+ cpdef inline void update_outputs(self) noexcept nogil
88
+ @cython.final
89
+ cdef class NumConsts:
90
+ cdef public numpy.int64_t nmb_methods
91
+ cdef public numpy.int64_t nmb_stages
92
+ cdef public double dt_increase
93
+ cdef public double dt_decrease
94
+ cdef public configutils.Config pub
95
+ cdef public double[:, :, :] a_coefs
96
+ @cython.final
97
+ cdef class NumVars:
98
+ cdef public bint use_relerror
99
+ cdef public numpy.int64_t nmb_calls
100
+ cdef public numpy.int64_t idx_method
101
+ cdef public numpy.int64_t idx_stage
102
+ cdef public double t0
103
+ cdef public double t1
104
+ cdef public double dt
105
+ cdef public double dt_est
106
+ cdef public double abserror
107
+ cdef public double relerror
108
+ cdef public double last_abserror
109
+ cdef public double last_relerror
110
+ cdef public double extrapolated_abserror
111
+ cdef public double extrapolated_relerror
112
+ cdef public numpy.npy_bool f0_ready
113
+ @cython.final
114
+ cdef class Model:
115
+ cdef public numpy.int64_t idx_sim
116
+ cdef public Parameters parameters
117
+ cdef public Sequences sequences
118
+ cdef public NumConsts numconsts
119
+ cdef public NumVars numvars
120
+ cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
121
+ cpdef void reset_reuseflags(self) noexcept nogil
122
+ cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
123
+ cpdef void new2old(self) noexcept nogil
124
+ cpdef inline void update_inlets(self) noexcept nogil
125
+ cpdef inline void update_outlets(self) noexcept nogil
126
+ cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
127
+ cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
128
+ cpdef inline void update_outputs(self) noexcept nogil
129
+ cpdef inline void solve(self) noexcept nogil
130
+ cpdef inline void calculate_single_terms(self) noexcept nogil
131
+ cpdef inline void calculate_full_terms(self) noexcept nogil
132
+ cpdef inline void get_point_states(self) noexcept nogil
133
+ cpdef inline void set_point_states(self) noexcept nogil
134
+ cpdef inline void set_result_states(self) noexcept nogil
135
+ cpdef inline void get_sum_fluxes(self) noexcept nogil
136
+ cpdef inline void set_point_fluxes(self) noexcept nogil
137
+ cpdef inline void set_result_fluxes(self) noexcept nogil
138
+ cpdef inline void integrate_fluxes(self) noexcept nogil
139
+ cpdef inline void reset_sum_fluxes(self) noexcept nogil
140
+ cpdef inline void addup_fluxes(self) noexcept nogil
141
+ cpdef inline void calculate_error(self) noexcept nogil
142
+ cpdef inline void extrapolate_error(self) noexcept nogil
143
+ cpdef inline void calc_q_v2(self) noexcept nogil
144
+ cpdef inline void calc_s_v1(self) noexcept nogil
145
+ cpdef inline void calc_q(self) noexcept nogil
146
+ cpdef inline void calc_s(self) noexcept nogil