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.
- hydpy/__init__.py +275 -0
- hydpy/aliases.py +2554 -0
- hydpy/auxs/__init__.py +0 -0
- hydpy/auxs/anntools.py +1305 -0
- hydpy/auxs/armatools.py +883 -0
- hydpy/auxs/calibtools.py +3337 -0
- hydpy/auxs/interptools.py +1094 -0
- hydpy/auxs/iuhtools.py +543 -0
- hydpy/auxs/networktools.py +597 -0
- hydpy/auxs/ppolytools.py +809 -0
- hydpy/auxs/quadtools.py +61 -0
- hydpy/auxs/roottools.py +228 -0
- hydpy/auxs/smoothtools.py +273 -0
- hydpy/auxs/statstools.py +2125 -0
- hydpy/auxs/validtools.py +81 -0
- hydpy/conf/HydPyConfigBase.xsd +68637 -0
- hydpy/conf/HydPyConfigBase.xsdt +358 -0
- hydpy/conf/HydPyConfigMultipleRuns.xsd +25 -0
- hydpy/conf/HydPyConfigSingleRun.xsd +24 -0
- hydpy/conf/__init__.py +0 -0
- hydpy/conf/a_coefficients_explicit_lobatto_sequence.npy +0 -0
- hydpy/conf/support_points_for_smoothpar_logistic2.npy +0 -0
- hydpy/config.py +42 -0
- hydpy/core/__init__.py +0 -0
- hydpy/core/aliastools.py +214 -0
- hydpy/core/autodoctools.py +1947 -0
- hydpy/core/auxfiletools.py +1169 -0
- hydpy/core/devicetools.py +3810 -0
- hydpy/core/exceptiontools.py +269 -0
- hydpy/core/filetools.py +1985 -0
- hydpy/core/hydpytools.py +3089 -0
- hydpy/core/importtools.py +1398 -0
- hydpy/core/indextools.py +345 -0
- hydpy/core/itemtools.py +1849 -0
- hydpy/core/masktools.py +460 -0
- hydpy/core/modeltools.py +4868 -0
- hydpy/core/netcdftools.py +2683 -0
- hydpy/core/objecttools.py +2023 -0
- hydpy/core/optiontools.py +1045 -0
- hydpy/core/parametertools.py +4674 -0
- hydpy/core/printtools.py +222 -0
- hydpy/core/propertytools.py +643 -0
- hydpy/core/pubtools.py +254 -0
- hydpy/core/selectiontools.py +1571 -0
- hydpy/core/sequencetools.py +4476 -0
- hydpy/core/seriestools.py +339 -0
- hydpy/core/testtools.py +2483 -0
- hydpy/core/timetools.py +3567 -0
- hydpy/core/typingtools.py +333 -0
- hydpy/core/variabletools.py +2615 -0
- hydpy/cythons/__init__.py +24 -0
- hydpy/cythons/annutils.pxd +33 -0
- hydpy/cythons/annutils.pyi +25 -0
- hydpy/cythons/annutils.pyx +120 -0
- hydpy/cythons/autogen/__init__.py +0 -0
- hydpy/cythons/autogen/annutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/annutils.pxd +42 -0
- hydpy/cythons/autogen/annutils.pyx +129 -0
- hydpy/cythons/autogen/c_arma.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_arma.pxd +179 -0
- hydpy/cythons/autogen/c_arma.pyx +356 -0
- hydpy/cythons/autogen/c_arma_rimorido.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_arma_rimorido.pxd +179 -0
- hydpy/cythons/autogen/c_arma_rimorido.pyx +356 -0
- hydpy/cythons/autogen/c_conv.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv.pxd +198 -0
- hydpy/cythons/autogen/c_conv.pyx +491 -0
- hydpy/cythons/autogen/c_conv_idw.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_idw.pxd +124 -0
- hydpy/cythons/autogen/c_conv_idw.pyx +264 -0
- hydpy/cythons/autogen/c_conv_idw_ed.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_idw_ed.pxd +197 -0
- hydpy/cythons/autogen/c_conv_idw_ed.pyx +481 -0
- hydpy/cythons/autogen/c_conv_nn.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_nn.pxd +120 -0
- hydpy/cythons/autogen/c_conv_nn.pyx +224 -0
- hydpy/cythons/autogen/c_dam.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam.pxd +805 -0
- hydpy/cythons/autogen/c_dam.pyx +1477 -0
- hydpy/cythons/autogen/c_dam_llake.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_llake.pxd +364 -0
- hydpy/cythons/autogen/c_dam_llake.pyx +705 -0
- hydpy/cythons/autogen/c_dam_lreservoir.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_lreservoir.pxd +365 -0
- hydpy/cythons/autogen/c_dam_lreservoir.pyx +708 -0
- hydpy/cythons/autogen/c_dam_lretention.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_lretention.pxd +340 -0
- hydpy/cythons/autogen/c_dam_lretention.pyx +625 -0
- hydpy/cythons/autogen/c_dam_pump.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_pump.pxd +402 -0
- hydpy/cythons/autogen/c_dam_pump.pyx +724 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.pxd +452 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.pyx +829 -0
- hydpy/cythons/autogen/c_dam_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_sluice.pxd +404 -0
- hydpy/cythons/autogen/c_dam_sluice.pyx +726 -0
- hydpy/cythons/autogen/c_dam_v001.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v001.pxd +452 -0
- hydpy/cythons/autogen/c_dam_v001.pyx +816 -0
- hydpy/cythons/autogen/c_dam_v002.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v002.pxd +394 -0
- hydpy/cythons/autogen/c_dam_v002.pyx +703 -0
- hydpy/cythons/autogen/c_dam_v003.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v003.pxd +417 -0
- hydpy/cythons/autogen/c_dam_v003.pyx +744 -0
- hydpy/cythons/autogen/c_dam_v004.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v004.pxd +486 -0
- hydpy/cythons/autogen/c_dam_v004.pyx +891 -0
- hydpy/cythons/autogen/c_dam_v005.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v005.pxd +524 -0
- hydpy/cythons/autogen/c_dam_v005.pyx +928 -0
- hydpy/cythons/autogen/c_dummy.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy.pxd +151 -0
- hydpy/cythons/autogen/c_dummy.pyx +263 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_node2node.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_node2node.pxd +89 -0
- hydpy/cythons/autogen/c_dummy_node2node.pyx +148 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_snowcover.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowcover.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowcover.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_soilwater.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_soilwater.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_soilwater.pyx +104 -0
- hydpy/cythons/autogen/c_evap.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap.pxd +1029 -0
- hydpy/cythons/autogen/c_evap.pyx +2601 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.pxd +227 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.pyx +584 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.pxd +193 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.pyx +478 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.pxd +681 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.pyx +1642 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.pxd +532 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.pyx +1296 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.pxd +179 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.pyx +328 -0
- hydpy/cythons/autogen/c_evap_pet_m.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_m.pxd +124 -0
- hydpy/cythons/autogen/c_evap_pet_m.pyx +214 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.pxd +126 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.pyx +214 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.pxd +305 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.pyx +624 -0
- hydpy/cythons/autogen/c_evap_ret_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_io.pxd +112 -0
- hydpy/cythons/autogen/c_evap_ret_io.pyx +176 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.pxd +139 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.pyx +273 -0
- hydpy/cythons/autogen/c_exch.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch.pxd +230 -0
- hydpy/cythons/autogen/c_exch.pyx +462 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.pxd +134 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.pyx +255 -0
- hydpy/cythons/autogen/c_exch_waterlevel.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_waterlevel.pxd +54 -0
- hydpy/cythons/autogen/c_exch_waterlevel.pyx +78 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.pxd +156 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.pyx +282 -0
- hydpy/cythons/autogen/c_ga.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga.pxd +353 -0
- hydpy/cythons/autogen/c_ga.pyx +1204 -0
- hydpy/cythons/autogen/c_ga_garto.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga_garto.pxd +330 -0
- hydpy/cythons/autogen/c_ga_garto.pyx +1105 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.pxd +236 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.pyx +944 -0
- hydpy/cythons/autogen/c_gland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland.pxd +437 -0
- hydpy/cythons/autogen/c_gland.pyx +726 -0
- hydpy/cythons/autogen/c_gland_gr4.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr4.pxd +382 -0
- hydpy/cythons/autogen/c_gland_gr4.pyx +605 -0
- hydpy/cythons/autogen/c_gland_gr5.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr5.pxd +368 -0
- hydpy/cythons/autogen/c_gland_gr5.pyx +568 -0
- hydpy/cythons/autogen/c_gland_gr6.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr6.pxd +420 -0
- hydpy/cythons/autogen/c_gland_gr6.pyx +673 -0
- hydpy/cythons/autogen/c_hland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland.pxd +855 -0
- hydpy/cythons/autogen/c_hland.pyx +2486 -0
- hydpy/cythons/autogen/c_hland_96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96.pxd +631 -0
- hydpy/cythons/autogen/c_hland_96.pyx +1724 -0
- hydpy/cythons/autogen/c_hland_96c.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96c.pxd +621 -0
- hydpy/cythons/autogen/c_hland_96c.pyx +1822 -0
- hydpy/cythons/autogen/c_hland_96p.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96p.pxd +683 -0
- hydpy/cythons/autogen/c_hland_96p.pyx +1911 -0
- hydpy/cythons/autogen/c_kinw.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw.pxd +509 -0
- hydpy/cythons/autogen/c_kinw.pyx +965 -0
- hydpy/cythons/autogen/c_kinw_williams.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw_williams.pxd +409 -0
- hydpy/cythons/autogen/c_kinw_williams.pyx +763 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.pxd +220 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.pyx +440 -0
- hydpy/cythons/autogen/c_lland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland.pxd +1386 -0
- hydpy/cythons/autogen/c_lland.pyx +3679 -0
- hydpy/cythons/autogen/c_lland_dd.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_dd.pxd +679 -0
- hydpy/cythons/autogen/c_lland_dd.pyx +1719 -0
- hydpy/cythons/autogen/c_lland_knauf.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_knauf.pxd +1096 -0
- hydpy/cythons/autogen/c_lland_knauf.pyx +2784 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.pxd +1369 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.pyx +3625 -0
- hydpy/cythons/autogen/c_meteo.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo.pxd +469 -0
- hydpy/cythons/autogen/c_meteo.pyx +879 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.pxd +75 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.pyx +107 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.pxd +209 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.pyx +339 -0
- hydpy/cythons/autogen/c_meteo_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_io.pxd +63 -0
- hydpy/cythons/autogen/c_meteo_glob_io.pyx +91 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.pxd +289 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.pyx +527 -0
- hydpy/cythons/autogen/c_meteo_precip_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_precip_io.pxd +112 -0
- hydpy/cythons/autogen/c_meteo_precip_io.pyx +176 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pxd +87 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pyx +123 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.pxd +209 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.pyx +343 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.pxd +286 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.pyx +519 -0
- hydpy/cythons/autogen/c_meteo_temp_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_temp_io.pxd +112 -0
- hydpy/cythons/autogen/c_meteo_temp_io.pyx +176 -0
- hydpy/cythons/autogen/c_musk.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk.pxd +282 -0
- hydpy/cythons/autogen/c_musk.pyx +605 -0
- hydpy/cythons/autogen/c_musk_classic.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk_classic.pxd +138 -0
- hydpy/cythons/autogen/c_musk_classic.pyx +226 -0
- hydpy/cythons/autogen/c_musk_mct.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk_mct.pxd +282 -0
- hydpy/cythons/autogen/c_musk_mct.pyx +609 -0
- hydpy/cythons/autogen/c_rconc.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc.pxd +119 -0
- hydpy/cythons/autogen/c_rconc.pyx +174 -0
- hydpy/cythons/autogen/c_rconc_nash.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc_nash.pxd +111 -0
- hydpy/cythons/autogen/c_rconc_nash.pyx +185 -0
- hydpy/cythons/autogen/c_rconc_uh.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc_uh.pxd +92 -0
- hydpy/cythons/autogen/c_rconc_uh.pyx +125 -0
- hydpy/cythons/autogen/c_sw1d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d.pxd +511 -0
- hydpy/cythons/autogen/c_sw1d.pyx +1263 -0
- hydpy/cythons/autogen/c_sw1d_channel.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_channel.pxd +119 -0
- hydpy/cythons/autogen/c_sw1d_channel.pyx +300 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.pxd +240 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.pyx +476 -0
- hydpy/cythons/autogen/c_sw1d_lias.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_lias.pxd +320 -0
- hydpy/cythons/autogen/c_sw1d_lias.pyx +619 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.pxd +325 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.pyx +644 -0
- hydpy/cythons/autogen/c_sw1d_network.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_network.pxd +90 -0
- hydpy/cythons/autogen/c_sw1d_network.pyx +246 -0
- hydpy/cythons/autogen/c_sw1d_pump.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_pump.pxd +256 -0
- hydpy/cythons/autogen/c_sw1d_pump.pyx +502 -0
- hydpy/cythons/autogen/c_sw1d_q_in.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_q_in.pxd +224 -0
- hydpy/cythons/autogen/c_sw1d_q_in.pyx +383 -0
- hydpy/cythons/autogen/c_sw1d_q_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_q_out.pxd +224 -0
- hydpy/cythons/autogen/c_sw1d_q_out.pyx +383 -0
- hydpy/cythons/autogen/c_sw1d_storage.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_storage.pxd +193 -0
- hydpy/cythons/autogen/c_sw1d_storage.pyx +349 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.pxd +212 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.pyx +404 -0
- hydpy/cythons/autogen/c_test.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test.pxd +175 -0
- hydpy/cythons/autogen/c_test.pyx +348 -0
- hydpy/cythons/autogen/c_test_discontinous.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_discontinous.pxd +146 -0
- hydpy/cythons/autogen/c_test_discontinous.pyx +256 -0
- hydpy/cythons/autogen/c_test_stiff0d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_stiff0d.pxd +146 -0
- hydpy/cythons/autogen/c_test_stiff0d.pyx +250 -0
- hydpy/cythons/autogen/c_test_stiff1d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_stiff1d.pxd +145 -0
- hydpy/cythons/autogen/c_test_stiff1d.pyx +294 -0
- hydpy/cythons/autogen/c_whmod.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod.pxd +482 -0
- hydpy/cythons/autogen/c_whmod.pyx +1156 -0
- hydpy/cythons/autogen/c_whmod_rural.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod_rural.pxd +411 -0
- hydpy/cythons/autogen/c_whmod_rural.pyx +982 -0
- hydpy/cythons/autogen/c_whmod_urban.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod_urban.pxd +482 -0
- hydpy/cythons/autogen/c_whmod_urban.pyx +1155 -0
- hydpy/cythons/autogen/c_wland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland.pxd +842 -0
- hydpy/cythons/autogen/c_wland.pyx +1890 -0
- hydpy/cythons/autogen/c_wland_gd.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland_gd.pxd +829 -0
- hydpy/cythons/autogen/c_wland_gd.pyx +1847 -0
- hydpy/cythons/autogen/c_wland_wag.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland_wag.pxd +810 -0
- hydpy/cythons/autogen/c_wland_wag.pyx +1780 -0
- hydpy/cythons/autogen/c_wq.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq.pxd +275 -0
- hydpy/cythons/autogen/c_wq.pyx +652 -0
- hydpy/cythons/autogen/c_wq_trapeze.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_trapeze.pxd +170 -0
- hydpy/cythons/autogen/c_wq_trapeze.pyx +400 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.pxd +243 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.pyx +578 -0
- hydpy/cythons/autogen/c_wq_walrus.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_walrus.pxd +61 -0
- hydpy/cythons/autogen/c_wq_walrus.pyx +82 -0
- hydpy/cythons/autogen/configutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/configutils.pxd +17 -0
- hydpy/cythons/autogen/configutils.pyx +119 -0
- hydpy/cythons/autogen/interfaceutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/interfaceutils.pxd +31 -0
- hydpy/cythons/autogen/interfaceutils.pyx +82 -0
- hydpy/cythons/autogen/interputils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/interputils.pxd +42 -0
- hydpy/cythons/autogen/interputils.pyx +118 -0
- hydpy/cythons/autogen/masterinterface.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/masterinterface.pxd +153 -0
- hydpy/cythons/autogen/masterinterface.pyx +222 -0
- hydpy/cythons/autogen/pointerutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/pointerutils.pxd +31 -0
- hydpy/cythons/autogen/pointerutils.pyx +650 -0
- hydpy/cythons/autogen/ppolyutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/ppolyutils.pxd +35 -0
- hydpy/cythons/autogen/ppolyutils.pyx +59 -0
- hydpy/cythons/autogen/quadutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/quadutils.pxd +26 -0
- hydpy/cythons/autogen/quadutils.pyx +973 -0
- hydpy/cythons/autogen/rootutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/rootutils.pxd +28 -0
- hydpy/cythons/autogen/rootutils.pyx +109 -0
- hydpy/cythons/autogen/sequenceutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/sequenceutils.pxd +45 -0
- hydpy/cythons/autogen/sequenceutils.pyx +101 -0
- hydpy/cythons/autogen/smoothutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/smoothutils.pxd +29 -0
- hydpy/cythons/autogen/smoothutils.pyx +833 -0
- hydpy/cythons/configutils.pxd +8 -0
- hydpy/cythons/configutils.pyi +5 -0
- hydpy/cythons/configutils.pyx +110 -0
- hydpy/cythons/interfaceutils.pxd +22 -0
- hydpy/cythons/interfaceutils.pyi +15 -0
- hydpy/cythons/interfaceutils.pyx +73 -0
- hydpy/cythons/interputils.pxd +33 -0
- hydpy/cythons/interputils.pyi +32 -0
- hydpy/cythons/interputils.pyx +109 -0
- hydpy/cythons/modelutils.py +2990 -0
- hydpy/cythons/pointerutils.pxd +22 -0
- hydpy/cythons/pointerutils.pyi +89 -0
- hydpy/cythons/pointerutils.pyx +641 -0
- hydpy/cythons/ppolyutils.pxd +26 -0
- hydpy/cythons/ppolyutils.pyi +21 -0
- hydpy/cythons/ppolyutils.pyx +50 -0
- hydpy/cythons/quadutils.pxd +17 -0
- hydpy/cythons/quadutils.pyi +13 -0
- hydpy/cythons/quadutils.pyx +964 -0
- hydpy/cythons/rootutils.pxd +19 -0
- hydpy/cythons/rootutils.pyi +21 -0
- hydpy/cythons/rootutils.pyx +100 -0
- hydpy/cythons/sequenceutils.pxd +36 -0
- hydpy/cythons/sequenceutils.pyi +7 -0
- hydpy/cythons/sequenceutils.pyx +92 -0
- hydpy/cythons/smoothutils.pxd +20 -0
- hydpy/cythons/smoothutils.pyi +15 -0
- hydpy/cythons/smoothutils.pyx +824 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_dill_assl.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_kalk.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_leun.py +14 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_marb.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_dill_assl_lahn_leun.py +5 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_leun_lahn_kalk.py +5 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_marb_lahn_leun.py +5 -0
- hydpy/data/HydPy-H-Lahn/control/default/land.py +9 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_dill_assl.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_kalk.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_leun.py +56 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_marb.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_dill_assl_lahn_leun.py +7 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_leun_lahn_kalk.py +7 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_marb_lahn_leun.py +7 -0
- hydpy/data/HydPy-H-Lahn/multiple_runs.xml +309 -0
- hydpy/data/HydPy-H-Lahn/multiple_runs_alpha.xml +71 -0
- hydpy/data/HydPy-H-Lahn/network/default/headwaters.py +11 -0
- hydpy/data/HydPy-H-Lahn/network/default/nonheadwaters.py +11 -0
- hydpy/data/HydPy-H-Lahn/network/default/streams.py +8 -0
- hydpy/data/HydPy-H-Lahn/series/default/dill_assl_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalairtemperature.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalevapotranspiration.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_p.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_t.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_kalk_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_leun_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_marb_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/obs_q.nc +0 -0
- hydpy/data/HydPy-H-Lahn/single_run.xml +152 -0
- hydpy/data/HydPy-H-Lahn/single_run.xmlt +143 -0
- hydpy/data/__init__.py +17 -0
- hydpy/docs/__init__.py +0 -0
- hydpy/docs/autofigs/__init__.py +0 -0
- hydpy/docs/bib/__init__.py +0 -0
- hydpy/docs/bib/refs.bib +566 -0
- hydpy/docs/combine_docversions.py +133 -0
- hydpy/docs/draw_model_sketches.py +1301 -0
- hydpy/docs/enable_autodoc.py +7 -0
- hydpy/docs/figs/HydPy-G-GR4.png +0 -0
- hydpy/docs/figs/HydPy-G-GR5.png +0 -0
- hydpy/docs/figs/HydPy-G-GR6.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96-COSERO.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96-PREVAH.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96.png +0 -0
- hydpy/docs/figs/HydPy-H-Lahn.png +0 -0
- hydpy/docs/figs/HydPy-KinW-Williams.png +0 -0
- hydpy/docs/figs/HydPy-L-DD.png +0 -0
- hydpy/docs/figs/HydPy-W-Wag.png +0 -0
- hydpy/docs/figs/HydPy_Logo.png +0 -0
- hydpy/docs/figs/HydPy_Logo_Text.png +0 -0
- hydpy/docs/figs/IDLE-editor.png +0 -0
- hydpy/docs/figs/IDLE-shell.png +0 -0
- hydpy/docs/figs/LAWA_river-basin-bumbers.png +0 -0
- hydpy/docs/figs/__init__.py +0 -0
- hydpy/docs/html_/__init__.py +0 -0
- hydpy/docs/polish_html.py +57 -0
- hydpy/docs/prepare.py +224 -0
- hydpy/docs/publish_docs.py +53 -0
- hydpy/docs/rst/HydPy-ARMA.rst +27 -0
- hydpy/docs/rst/HydPy-Conv.rst +22 -0
- hydpy/docs/rst/HydPy-Dam.rst +79 -0
- hydpy/docs/rst/HydPy-Dummy.rst +21 -0
- hydpy/docs/rst/HydPy-Evap.rst +26 -0
- hydpy/docs/rst/HydPy-Exch.rst +36 -0
- hydpy/docs/rst/HydPy-G.rst +40 -0
- hydpy/docs/rst/HydPy-GA.rst +34 -0
- hydpy/docs/rst/HydPy-H.rst +24 -0
- hydpy/docs/rst/HydPy-KinW.rst +32 -0
- hydpy/docs/rst/HydPy-L.rst +42 -0
- hydpy/docs/rst/HydPy-Meteo.rst +28 -0
- hydpy/docs/rst/HydPy-Musk.rst +21 -0
- hydpy/docs/rst/HydPy-Rconc.rst +17 -0
- hydpy/docs/rst/HydPy-SW1D.rst +49 -0
- hydpy/docs/rst/HydPy-Test.rst +19 -0
- hydpy/docs/rst/HydPy-W.rst +20 -0
- hydpy/docs/rst/HydPy-WHMod.rst +19 -0
- hydpy/docs/rst/HydPy-WQ.rst +20 -0
- hydpy/docs/rst/__init__.py +0 -0
- hydpy/docs/rst/additional_repositories.rst +40 -0
- hydpy/docs/rst/auxiliaries.rst +31 -0
- hydpy/docs/rst/continuous_integration.rst +75 -0
- hydpy/docs/rst/core.rst +75 -0
- hydpy/docs/rst/cythons.rst +47 -0
- hydpy/docs/rst/definitions.rst +506 -0
- hydpy/docs/rst/developer_guide.rst +54 -0
- hydpy/docs/rst/example_projects.rst +40 -0
- hydpy/docs/rst/execution.rst +22 -0
- hydpy/docs/rst/framework_tools.rst +56 -0
- hydpy/docs/rst/how_to_read_the_reference_manual.rst +156 -0
- hydpy/docs/rst/hydpydependencies.rst +55 -0
- hydpy/docs/rst/index.rst +125 -0
- hydpy/docs/rst/installation.rst +155 -0
- hydpy/docs/rst/model_families.rst +79 -0
- hydpy/docs/rst/model_overview.rst +291 -0
- hydpy/docs/rst/modelimports.rst +10 -0
- hydpy/docs/rst/options.rst +119 -0
- hydpy/docs/rst/programming_style.rst +572 -0
- hydpy/docs/rst/project_structure.rst +520 -0
- hydpy/docs/rst/quickstart.rst +304 -0
- hydpy/docs/rst/reference_manual.rst +29 -0
- hydpy/docs/rst/required_tools.rst +50 -0
- hydpy/docs/rst/simulation.rst +514 -0
- hydpy/docs/rst/submodel_interfaces.rst +32 -0
- hydpy/docs/rst/tests_and_documentation.rst +85 -0
- hydpy/docs/rst/user_guide.rst +38 -0
- hydpy/docs/rst/version_control.rst +116 -0
- hydpy/docs/rst/zbibliography.rst +8 -0
- hydpy/docs/sphinx/__init__.py +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/frameset.html +11 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/rstsource.html +15 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/versionchanges.html +33 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/defindex.html +35 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/domainindex.html +56 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex-single.html +63 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex-split.html +41 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex.html +76 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/globaltoc.html +11 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/layout.html +221 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/localtoc.html +15 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/opensearch.xml +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/page.html +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/relations.html +23 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/search.html +65 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/searchbox.html +21 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/searchfield.html +23 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/sourcelink.html +18 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/basic.css_t +925 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/doctools.js +156 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/documentation_options.js_t +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/file.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/language_data.js_t +26 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/minus.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/plus.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/searchtools.js +574 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/sphinx_highlight.js +154 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/theme.conf +16 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/layout.html +23 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/static/classic.css_t +358 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/static/sidebar.js_t +72 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/theme.conf +32 -0
- hydpy/docs/sphinx/conf.py +398 -0
- hydpy/docs/sphinx/defaultlinks_extension.py +36 -0
- hydpy/docs/sphinx/integrationtest_extension.py +104 -0
- hydpy/docs/sphinx/projectstructure_extension.py +58 -0
- hydpy/docs/sphinx/submodelgraph_extension.py +53 -0
- hydpy/exe/__init__.py +0 -0
- hydpy/exe/commandtools.py +651 -0
- hydpy/exe/hyd.py +277 -0
- hydpy/exe/modelimports.py +41 -0
- hydpy/exe/replacetools.py +216 -0
- hydpy/exe/servertools.py +2348 -0
- hydpy/exe/xmltools.py +3280 -0
- hydpy/interfaces/__init__.py +0 -0
- hydpy/interfaces/aetinterfaces.py +94 -0
- hydpy/interfaces/dischargeinterfaces.py +45 -0
- hydpy/interfaces/petinterfaces.py +117 -0
- hydpy/interfaces/precipinterfaces.py +42 -0
- hydpy/interfaces/radiationinterfaces.py +79 -0
- hydpy/interfaces/rconcinterfaces.py +30 -0
- hydpy/interfaces/routinginterfaces.py +324 -0
- hydpy/interfaces/soilinterfaces.py +96 -0
- hydpy/interfaces/stateinterfaces.py +98 -0
- hydpy/interfaces/tempinterfaces.py +46 -0
- hydpy/models/__init__.py +0 -0
- hydpy/models/arma/__init__.py +14 -0
- hydpy/models/arma/arma_control.py +383 -0
- hydpy/models/arma/arma_derived.py +204 -0
- hydpy/models/arma/arma_fluxes.py +41 -0
- hydpy/models/arma/arma_inlets.py +11 -0
- hydpy/models/arma/arma_logs.py +19 -0
- hydpy/models/arma/arma_model.py +461 -0
- hydpy/models/arma/arma_outlets.py +11 -0
- hydpy/models/arma_rimorido.py +381 -0
- hydpy/models/conv/__init__.py +12 -0
- hydpy/models/conv/conv_control.py +303 -0
- hydpy/models/conv/conv_derived.py +271 -0
- hydpy/models/conv/conv_fluxes.py +54 -0
- hydpy/models/conv/conv_inlets.py +11 -0
- hydpy/models/conv/conv_model.py +687 -0
- hydpy/models/conv/conv_outlets.py +11 -0
- hydpy/models/conv_idw.py +120 -0
- hydpy/models/conv_idw_ed.py +184 -0
- hydpy/models/conv_nn.py +112 -0
- hydpy/models/dam/__init__.py +16 -0
- hydpy/models/dam/dam_aides.py +17 -0
- hydpy/models/dam/dam_control.py +346 -0
- hydpy/models/dam/dam_derived.py +559 -0
- hydpy/models/dam/dam_factors.py +46 -0
- hydpy/models/dam/dam_fluxes.py +179 -0
- hydpy/models/dam/dam_inlets.py +29 -0
- hydpy/models/dam/dam_logs.py +52 -0
- hydpy/models/dam/dam_model.py +5011 -0
- hydpy/models/dam/dam_outlets.py +23 -0
- hydpy/models/dam/dam_receivers.py +41 -0
- hydpy/models/dam/dam_senders.py +23 -0
- hydpy/models/dam/dam_solver.py +75 -0
- hydpy/models/dam/dam_states.py +11 -0
- hydpy/models/dam_llake.py +499 -0
- hydpy/models/dam_lreservoir.py +548 -0
- hydpy/models/dam_lretention.py +343 -0
- hydpy/models/dam_pump.py +278 -0
- hydpy/models/dam_pump_sluice.py +339 -0
- hydpy/models/dam_sluice.py +319 -0
- hydpy/models/dam_v001.py +1127 -0
- hydpy/models/dam_v002.py +381 -0
- hydpy/models/dam_v003.py +422 -0
- hydpy/models/dam_v004.py +665 -0
- hydpy/models/dam_v005.py +479 -0
- hydpy/models/dummy/__init__.py +15 -0
- hydpy/models/dummy/dummy_control.py +22 -0
- hydpy/models/dummy/dummy_fluxes.py +11 -0
- hydpy/models/dummy/dummy_inlets.py +11 -0
- hydpy/models/dummy/dummy_inputs.py +41 -0
- hydpy/models/dummy/dummy_model.py +196 -0
- hydpy/models/dummy/dummy_outlets.py +11 -0
- hydpy/models/dummy_interceptedwater.py +85 -0
- hydpy/models/dummy_node2node.py +83 -0
- hydpy/models/dummy_snowalbedo.py +84 -0
- hydpy/models/dummy_snowcover.py +84 -0
- hydpy/models/dummy_snowycanopy.py +86 -0
- hydpy/models/dummy_soilwater.py +85 -0
- hydpy/models/evap/__init__.py +13 -0
- hydpy/models/evap/evap_control.py +354 -0
- hydpy/models/evap/evap_derived.py +236 -0
- hydpy/models/evap/evap_factors.py +188 -0
- hydpy/models/evap/evap_fixed.py +68 -0
- hydpy/models/evap/evap_fluxes.py +150 -0
- hydpy/models/evap/evap_inputs.py +54 -0
- hydpy/models/evap/evap_logs.py +91 -0
- hydpy/models/evap/evap_masks.py +48 -0
- hydpy/models/evap/evap_model.py +9170 -0
- hydpy/models/evap/evap_parameters.py +149 -0
- hydpy/models/evap/evap_sequences.py +32 -0
- hydpy/models/evap/evap_states.py +18 -0
- hydpy/models/evap_aet_hbv96.py +372 -0
- hydpy/models/evap_aet_minhas.py +331 -0
- hydpy/models/evap_aet_morsim.py +627 -0
- hydpy/models/evap_pet_ambav1.py +483 -0
- hydpy/models/evap_pet_hbv96.py +147 -0
- hydpy/models/evap_pet_m.py +94 -0
- hydpy/models/evap_pet_mlc.py +107 -0
- hydpy/models/evap_ret_fao56.py +265 -0
- hydpy/models/evap_ret_io.py +74 -0
- hydpy/models/evap_ret_tw2002.py +165 -0
- hydpy/models/exch/__init__.py +14 -0
- hydpy/models/exch/exch_control.py +262 -0
- hydpy/models/exch/exch_derived.py +36 -0
- hydpy/models/exch/exch_factors.py +26 -0
- hydpy/models/exch/exch_fluxes.py +48 -0
- hydpy/models/exch/exch_inlets.py +11 -0
- hydpy/models/exch/exch_logs.py +12 -0
- hydpy/models/exch/exch_model.py +451 -0
- hydpy/models/exch/exch_outlets.py +17 -0
- hydpy/models/exch/exch_receivers.py +17 -0
- hydpy/models/exch_branch_hbv96.py +186 -0
- hydpy/models/exch_waterlevel.py +73 -0
- hydpy/models/exch_weir_hbv96.py +609 -0
- hydpy/models/ga/__init__.py +14 -0
- hydpy/models/ga/ga_aides.py +17 -0
- hydpy/models/ga/ga_control.py +208 -0
- hydpy/models/ga/ga_derived.py +77 -0
- hydpy/models/ga/ga_fluxes.py +83 -0
- hydpy/models/ga/ga_inputs.py +26 -0
- hydpy/models/ga/ga_logs.py +17 -0
- hydpy/models/ga/ga_model.py +2952 -0
- hydpy/models/ga/ga_states.py +87 -0
- hydpy/models/ga_garto.py +1001 -0
- hydpy/models/ga_garto_submodel1.py +79 -0
- hydpy/models/gland/__init__.py +14 -0
- hydpy/models/gland/gland_control.py +90 -0
- hydpy/models/gland/gland_derived.py +113 -0
- hydpy/models/gland/gland_fluxes.py +137 -0
- hydpy/models/gland/gland_inputs.py +12 -0
- hydpy/models/gland/gland_model.py +1439 -0
- hydpy/models/gland/gland_outlets.py +11 -0
- hydpy/models/gland/gland_states.py +90 -0
- hydpy/models/gland_gr4.py +501 -0
- hydpy/models/gland_gr5.py +463 -0
- hydpy/models/gland_gr6.py +487 -0
- hydpy/models/hland/__init__.py +20 -0
- hydpy/models/hland/hland_aides.py +19 -0
- hydpy/models/hland/hland_constants.py +37 -0
- hydpy/models/hland/hland_control.py +1530 -0
- hydpy/models/hland/hland_derived.py +683 -0
- hydpy/models/hland/hland_factors.py +57 -0
- hydpy/models/hland/hland_fixed.py +42 -0
- hydpy/models/hland/hland_fluxes.py +279 -0
- hydpy/models/hland/hland_inputs.py +19 -0
- hydpy/models/hland/hland_masks.py +107 -0
- hydpy/models/hland/hland_model.py +4664 -0
- hydpy/models/hland/hland_outlets.py +11 -0
- hydpy/models/hland/hland_parameters.py +227 -0
- hydpy/models/hland/hland_sequences.py +382 -0
- hydpy/models/hland/hland_states.py +236 -0
- hydpy/models/hland_96.py +1812 -0
- hydpy/models/hland_96c.py +1196 -0
- hydpy/models/hland_96p.py +1204 -0
- hydpy/models/kinw/__init__.py +18 -0
- hydpy/models/kinw/kinw_aides.py +306 -0
- hydpy/models/kinw/kinw_control.py +270 -0
- hydpy/models/kinw/kinw_derived.py +197 -0
- hydpy/models/kinw/kinw_fixed.py +33 -0
- hydpy/models/kinw/kinw_fluxes.py +37 -0
- hydpy/models/kinw/kinw_inlets.py +11 -0
- hydpy/models/kinw/kinw_model.py +3026 -0
- hydpy/models/kinw/kinw_outlets.py +11 -0
- hydpy/models/kinw/kinw_solver.py +45 -0
- hydpy/models/kinw/kinw_states.py +17 -0
- hydpy/models/kinw_williams.py +1299 -0
- hydpy/models/kinw_williams_ext.py +768 -0
- hydpy/models/lland/__init__.py +42 -0
- hydpy/models/lland/lland_aides.py +38 -0
- hydpy/models/lland/lland_constants.py +88 -0
- hydpy/models/lland/lland_control.py +1329 -0
- hydpy/models/lland/lland_derived.py +380 -0
- hydpy/models/lland/lland_factors.py +18 -0
- hydpy/models/lland/lland_fixed.py +128 -0
- hydpy/models/lland/lland_fluxes.py +626 -0
- hydpy/models/lland/lland_inlets.py +12 -0
- hydpy/models/lland/lland_inputs.py +33 -0
- hydpy/models/lland/lland_logs.py +17 -0
- hydpy/models/lland/lland_masks.py +212 -0
- hydpy/models/lland/lland_model.py +7690 -0
- hydpy/models/lland/lland_outlets.py +12 -0
- hydpy/models/lland/lland_parameters.py +195 -0
- hydpy/models/lland/lland_sequences.py +67 -0
- hydpy/models/lland/lland_states.py +280 -0
- hydpy/models/lland_dd.py +2270 -0
- hydpy/models/lland_knauf.py +2156 -0
- hydpy/models/lland_knauf_ic.py +1920 -0
- hydpy/models/meteo/__init__.py +12 -0
- hydpy/models/meteo/meteo_control.py +154 -0
- hydpy/models/meteo/meteo_derived.py +159 -0
- hydpy/models/meteo/meteo_factors.py +88 -0
- hydpy/models/meteo/meteo_fixed.py +19 -0
- hydpy/models/meteo/meteo_fluxes.py +46 -0
- hydpy/models/meteo/meteo_inputs.py +47 -0
- hydpy/models/meteo/meteo_logs.py +30 -0
- hydpy/models/meteo/meteo_model.py +2904 -0
- hydpy/models/meteo/meteo_parameters.py +14 -0
- hydpy/models/meteo/meteo_sequences.py +22 -0
- hydpy/models/meteo_clear_glob_io.py +77 -0
- hydpy/models/meteo_glob_fao56.py +217 -0
- hydpy/models/meteo_glob_io.py +68 -0
- hydpy/models/meteo_glob_morsim.py +444 -0
- hydpy/models/meteo_precip_io.py +76 -0
- hydpy/models/meteo_psun_sun_glob_io.py +83 -0
- hydpy/models/meteo_sun_fao56.py +188 -0
- hydpy/models/meteo_sun_morsim.py +466 -0
- hydpy/models/meteo_temp_io.py +76 -0
- hydpy/models/musk/__init__.py +15 -0
- hydpy/models/musk/musk_control.py +328 -0
- hydpy/models/musk/musk_derived.py +32 -0
- hydpy/models/musk/musk_factors.py +53 -0
- hydpy/models/musk/musk_fluxes.py +24 -0
- hydpy/models/musk/musk_inlets.py +11 -0
- hydpy/models/musk/musk_masks.py +15 -0
- hydpy/models/musk/musk_model.py +838 -0
- hydpy/models/musk/musk_outlets.py +11 -0
- hydpy/models/musk/musk_sequences.py +88 -0
- hydpy/models/musk/musk_solver.py +68 -0
- hydpy/models/musk/musk_states.py +64 -0
- hydpy/models/musk_classic.py +228 -0
- hydpy/models/musk_mct.py +1247 -0
- hydpy/models/rconc/__init__.py +12 -0
- hydpy/models/rconc/rconc_control.py +473 -0
- hydpy/models/rconc/rconc_derived.py +76 -0
- hydpy/models/rconc/rconc_fluxes.py +19 -0
- hydpy/models/rconc/rconc_logs.py +74 -0
- hydpy/models/rconc/rconc_model.py +260 -0
- hydpy/models/rconc/rconc_states.py +11 -0
- hydpy/models/rconc_nash.py +48 -0
- hydpy/models/rconc_uh.py +53 -0
- hydpy/models/sw1d/__init__.py +17 -0
- hydpy/models/sw1d/sw1d_control.py +356 -0
- hydpy/models/sw1d/sw1d_derived.py +85 -0
- hydpy/models/sw1d/sw1d_factors.py +78 -0
- hydpy/models/sw1d/sw1d_fixed.py +12 -0
- hydpy/models/sw1d/sw1d_fluxes.py +55 -0
- hydpy/models/sw1d/sw1d_inlets.py +17 -0
- hydpy/models/sw1d/sw1d_model.py +3385 -0
- hydpy/models/sw1d/sw1d_outlets.py +11 -0
- hydpy/models/sw1d/sw1d_receivers.py +11 -0
- hydpy/models/sw1d/sw1d_senders.py +11 -0
- hydpy/models/sw1d/sw1d_states.py +23 -0
- hydpy/models/sw1d_channel.py +2051 -0
- hydpy/models/sw1d_gate_out.py +599 -0
- hydpy/models/sw1d_lias.py +105 -0
- hydpy/models/sw1d_lias_sluice.py +531 -0
- hydpy/models/sw1d_network.py +1219 -0
- hydpy/models/sw1d_pump.py +448 -0
- hydpy/models/sw1d_q_in.py +79 -0
- hydpy/models/sw1d_q_out.py +81 -0
- hydpy/models/sw1d_storage.py +78 -0
- hydpy/models/sw1d_weir_out.py +75 -0
- hydpy/models/test/__init__.py +14 -0
- hydpy/models/test/test_control.py +28 -0
- hydpy/models/test/test_fluxes.py +17 -0
- hydpy/models/test/test_model.py +201 -0
- hydpy/models/test/test_solver.py +48 -0
- hydpy/models/test/test_states.py +17 -0
- hydpy/models/test_discontinous.py +46 -0
- hydpy/models/test_stiff0d.py +47 -0
- hydpy/models/test_stiff1d.py +42 -0
- hydpy/models/whmod/__init__.py +21 -0
- hydpy/models/whmod/whmod_constants.py +77 -0
- hydpy/models/whmod/whmod_control.py +333 -0
- hydpy/models/whmod/whmod_derived.py +210 -0
- hydpy/models/whmod/whmod_factors.py +9 -0
- hydpy/models/whmod/whmod_fluxes.py +105 -0
- hydpy/models/whmod/whmod_inputs.py +15 -0
- hydpy/models/whmod/whmod_masks.py +178 -0
- hydpy/models/whmod/whmod_model.py +2091 -0
- hydpy/models/whmod/whmod_parameters.py +155 -0
- hydpy/models/whmod/whmod_sequences.py +193 -0
- hydpy/models/whmod/whmod_states.py +73 -0
- hydpy/models/whmod_rural.py +794 -0
- hydpy/models/whmod_urban.py +1011 -0
- hydpy/models/wland/__init__.py +43 -0
- hydpy/models/wland/wland_aides.py +55 -0
- hydpy/models/wland/wland_constants.py +103 -0
- hydpy/models/wland/wland_control.py +508 -0
- hydpy/models/wland/wland_derived.py +330 -0
- hydpy/models/wland/wland_factors.py +11 -0
- hydpy/models/wland/wland_fixed.py +12 -0
- hydpy/models/wland/wland_fluxes.py +166 -0
- hydpy/models/wland/wland_inputs.py +33 -0
- hydpy/models/wland/wland_masks.py +54 -0
- hydpy/models/wland/wland_model.py +3755 -0
- hydpy/models/wland/wland_outlets.py +11 -0
- hydpy/models/wland/wland_parameters.py +214 -0
- hydpy/models/wland/wland_sequences.py +108 -0
- hydpy/models/wland/wland_solver.py +45 -0
- hydpy/models/wland/wland_states.py +56 -0
- hydpy/models/wland_gd.py +888 -0
- hydpy/models/wland_wag.py +1244 -0
- hydpy/models/wq/__init__.py +14 -0
- hydpy/models/wq/wq_control.py +117 -0
- hydpy/models/wq/wq_derived.py +182 -0
- hydpy/models/wq/wq_factors.py +79 -0
- hydpy/models/wq/wq_fluxes.py +17 -0
- hydpy/models/wq/wq_model.py +1889 -0
- hydpy/models/wq_trapeze.py +168 -0
- hydpy/models/wq_trapeze_strickler.py +101 -0
- hydpy/models/wq_walrus.py +57 -0
- hydpy/py.typed +0 -0
- hydpy/tests/.coveragerc +22 -0
- hydpy/tests/__init__.py +0 -0
- hydpy/tests/check_consistency.py +32 -0
- hydpy/tests/hydpydoctestcustomize.pth +1 -0
- hydpy/tests/hydpydoctestcustomize.py +15 -0
- hydpy/tests/iotesting/__init__.py +0 -0
- hydpy/tests/run_doctests.py +233 -0
- hydpy-6.2.dev1.data/scripts/hyd.py +277 -0
- hydpy-6.2.dev1.dist-info/LICENSE +165 -0
- hydpy-6.2.dev1.dist-info/METADATA +163 -0
- hydpy-6.2.dev1.dist-info/RECORD +890 -0
- hydpy-6.2.dev1.dist-info/WHEEL +5 -0
- hydpy-6.2.dev1.dist-info/licenses_hydpy_installer.txt +42 -0
- hydpy-6.2.dev1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,119 @@
|
|
|
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 DerivedParameters derived
|
|
35
|
+
@cython.final
|
|
36
|
+
cdef class ControlParameters:
|
|
37
|
+
cdef public double[:] uh
|
|
38
|
+
cdef public double retentiontime
|
|
39
|
+
cdef public numpy.int64_t nmbstorages
|
|
40
|
+
cdef public numpy.int64_t nmbsteps
|
|
41
|
+
@cython.final
|
|
42
|
+
cdef class DerivedParameters:
|
|
43
|
+
cdef public double ksc
|
|
44
|
+
cdef public double dt
|
|
45
|
+
@cython.final
|
|
46
|
+
cdef class Sequences:
|
|
47
|
+
cdef public FluxSequences fluxes
|
|
48
|
+
cdef public StateSequences states
|
|
49
|
+
cdef public LogSequences logs
|
|
50
|
+
cdef public StateSequences old_states
|
|
51
|
+
cdef public StateSequences new_states
|
|
52
|
+
@cython.final
|
|
53
|
+
cdef class FluxSequences:
|
|
54
|
+
cdef public double inflow
|
|
55
|
+
cdef public numpy.int64_t _inflow_ndim
|
|
56
|
+
cdef public numpy.int64_t _inflow_length
|
|
57
|
+
cdef public bint _inflow_ramflag
|
|
58
|
+
cdef public double[:] _inflow_array
|
|
59
|
+
cdef public bint _inflow_diskflag_reading
|
|
60
|
+
cdef public bint _inflow_diskflag_writing
|
|
61
|
+
cdef public double[:] _inflow_ncarray
|
|
62
|
+
cdef public bint _inflow_outputflag
|
|
63
|
+
cdef double *_inflow_outputpointer
|
|
64
|
+
cdef public double outflow
|
|
65
|
+
cdef public numpy.int64_t _outflow_ndim
|
|
66
|
+
cdef public numpy.int64_t _outflow_length
|
|
67
|
+
cdef public bint _outflow_ramflag
|
|
68
|
+
cdef public double[:] _outflow_array
|
|
69
|
+
cdef public bint _outflow_diskflag_reading
|
|
70
|
+
cdef public bint _outflow_diskflag_writing
|
|
71
|
+
cdef public double[:] _outflow_ncarray
|
|
72
|
+
cdef public bint _outflow_outputflag
|
|
73
|
+
cdef double *_outflow_outputpointer
|
|
74
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
75
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
76
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
77
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
78
|
+
@cython.final
|
|
79
|
+
cdef class StateSequences:
|
|
80
|
+
cdef public double[:] sc
|
|
81
|
+
cdef public numpy.int64_t _sc_ndim
|
|
82
|
+
cdef public numpy.int64_t _sc_length
|
|
83
|
+
cdef public numpy.int64_t _sc_length_0
|
|
84
|
+
cdef public bint _sc_ramflag
|
|
85
|
+
cdef public double[:,:] _sc_array
|
|
86
|
+
cdef public bint _sc_diskflag_reading
|
|
87
|
+
cdef public bint _sc_diskflag_writing
|
|
88
|
+
cdef public double[:] _sc_ncarray
|
|
89
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
90
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
91
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
92
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
93
|
+
@cython.final
|
|
94
|
+
cdef class LogSequences:
|
|
95
|
+
cdef public double[:] quh
|
|
96
|
+
cdef public numpy.int64_t _quh_ndim
|
|
97
|
+
cdef public numpy.int64_t _quh_length
|
|
98
|
+
cdef public numpy.int64_t _quh_length_0
|
|
99
|
+
@cython.final
|
|
100
|
+
cdef class Model:
|
|
101
|
+
cdef public numpy.int64_t idx_sim
|
|
102
|
+
cdef public Parameters parameters
|
|
103
|
+
cdef public Sequences sequences
|
|
104
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
|
|
105
|
+
cpdef void reset_reuseflags(self) noexcept nogil
|
|
106
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
107
|
+
cpdef void new2old(self) noexcept nogil
|
|
108
|
+
cpdef inline void run(self) noexcept nogil
|
|
109
|
+
cpdef inline void update_inlets(self) noexcept nogil
|
|
110
|
+
cpdef inline void update_outlets(self) noexcept nogil
|
|
111
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
|
|
112
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
|
|
113
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
114
|
+
cpdef void set_inflow_v1(self, double inflow) noexcept nogil
|
|
115
|
+
cpdef void determine_outflow_v1(self) noexcept nogil
|
|
116
|
+
cpdef void determine_outflow_v2(self) noexcept nogil
|
|
117
|
+
cpdef double get_outflow_v1(self) noexcept nogil
|
|
118
|
+
cpdef void set_inflow(self, double inflow) noexcept nogil
|
|
119
|
+
cpdef double get_outflow(self) noexcept nogil
|
|
@@ -0,0 +1,174 @@
|
|
|
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 FluxSequences:
|
|
52
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
53
|
+
cdef numpy.int64_t k
|
|
54
|
+
if self._inflow_diskflag_reading:
|
|
55
|
+
self.inflow = self._inflow_ncarray[0]
|
|
56
|
+
elif self._inflow_ramflag:
|
|
57
|
+
self.inflow = self._inflow_array[idx]
|
|
58
|
+
if self._outflow_diskflag_reading:
|
|
59
|
+
self.outflow = self._outflow_ncarray[0]
|
|
60
|
+
elif self._outflow_ramflag:
|
|
61
|
+
self.outflow = self._outflow_array[idx]
|
|
62
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
63
|
+
cdef numpy.int64_t k
|
|
64
|
+
if self._inflow_diskflag_writing:
|
|
65
|
+
self._inflow_ncarray[0] = self.inflow
|
|
66
|
+
if self._inflow_ramflag:
|
|
67
|
+
self._inflow_array[idx] = self.inflow
|
|
68
|
+
if self._outflow_diskflag_writing:
|
|
69
|
+
self._outflow_ncarray[0] = self.outflow
|
|
70
|
+
if self._outflow_ramflag:
|
|
71
|
+
self._outflow_array[idx] = self.outflow
|
|
72
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
73
|
+
if name == "inflow":
|
|
74
|
+
self._inflow_outputpointer = value.p_value
|
|
75
|
+
if name == "outflow":
|
|
76
|
+
self._outflow_outputpointer = value.p_value
|
|
77
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
78
|
+
if self._inflow_outputflag:
|
|
79
|
+
self._inflow_outputpointer[0] = self.inflow
|
|
80
|
+
if self._outflow_outputflag:
|
|
81
|
+
self._outflow_outputpointer[0] = self.outflow
|
|
82
|
+
@cython.final
|
|
83
|
+
cdef class StateSequences:
|
|
84
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
85
|
+
cdef numpy.int64_t jdx0
|
|
86
|
+
cdef numpy.int64_t k
|
|
87
|
+
if self._sc_diskflag_reading:
|
|
88
|
+
k = 0
|
|
89
|
+
for jdx0 in range(self._sc_length_0):
|
|
90
|
+
self.sc[jdx0] = self._sc_ncarray[k]
|
|
91
|
+
k += 1
|
|
92
|
+
elif self._sc_ramflag:
|
|
93
|
+
for jdx0 in range(self._sc_length_0):
|
|
94
|
+
self.sc[jdx0] = self._sc_array[idx, jdx0]
|
|
95
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
96
|
+
cdef numpy.int64_t jdx0
|
|
97
|
+
cdef numpy.int64_t k
|
|
98
|
+
if self._sc_diskflag_writing:
|
|
99
|
+
k = 0
|
|
100
|
+
for jdx0 in range(self._sc_length_0):
|
|
101
|
+
self._sc_ncarray[k] = self.sc[jdx0]
|
|
102
|
+
k += 1
|
|
103
|
+
if self._sc_ramflag:
|
|
104
|
+
for jdx0 in range(self._sc_length_0):
|
|
105
|
+
self._sc_array[idx, jdx0] = self.sc[jdx0]
|
|
106
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
107
|
+
pass
|
|
108
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
109
|
+
pass
|
|
110
|
+
@cython.final
|
|
111
|
+
cdef class LogSequences:
|
|
112
|
+
pass
|
|
113
|
+
@cython.final
|
|
114
|
+
cdef class Model:
|
|
115
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
|
|
116
|
+
self.idx_sim = idx
|
|
117
|
+
self.run()
|
|
118
|
+
self.new2old()
|
|
119
|
+
self.update_outputs()
|
|
120
|
+
cpdef void reset_reuseflags(self) noexcept nogil:
|
|
121
|
+
pass
|
|
122
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
123
|
+
self.idx_sim = idx
|
|
124
|
+
self.sequences.fluxes.save_data(idx)
|
|
125
|
+
self.sequences.states.save_data(idx)
|
|
126
|
+
cpdef void new2old(self) noexcept nogil:
|
|
127
|
+
cdef numpy.int64_t jdx0
|
|
128
|
+
for jdx0 in range(self.sequences.states._sc_length_0):
|
|
129
|
+
self.sequences.old_states.sc[jdx0] = self.sequences.new_states.sc[jdx0]
|
|
130
|
+
cpdef inline void run(self) noexcept nogil:
|
|
131
|
+
pass
|
|
132
|
+
cpdef inline void update_inlets(self) noexcept nogil:
|
|
133
|
+
pass
|
|
134
|
+
cpdef inline void update_outlets(self) noexcept nogil:
|
|
135
|
+
pass
|
|
136
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
|
|
137
|
+
self.idx_sim = idx
|
|
138
|
+
pass
|
|
139
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
|
|
140
|
+
self.idx_sim = idx
|
|
141
|
+
pass
|
|
142
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
143
|
+
self.sequences.fluxes.update_outputs()
|
|
144
|
+
cpdef void set_inflow_v1(self, double inflow) noexcept nogil:
|
|
145
|
+
self.sequences.fluxes.inflow = inflow
|
|
146
|
+
cpdef void determine_outflow_v1(self) noexcept nogil:
|
|
147
|
+
cdef numpy.int64_t jdx
|
|
148
|
+
self.sequences.fluxes.outflow = self.parameters.control.uh[0] * self.sequences.fluxes.inflow + self.sequences.logs.quh[0]
|
|
149
|
+
for jdx in range(1, len(self.parameters.control.uh)):
|
|
150
|
+
self.sequences.logs.quh[jdx - 1] = self.parameters.control.uh[jdx] * self.sequences.fluxes.inflow + self.sequences.logs.quh[jdx]
|
|
151
|
+
cpdef void determine_outflow_v2(self) noexcept nogil:
|
|
152
|
+
cdef double d_q
|
|
153
|
+
cdef numpy.int64_t j
|
|
154
|
+
cdef numpy.int64_t _
|
|
155
|
+
if (self.parameters.control.nmbstorages == 0) or isinf(self.parameters.derived.ksc):
|
|
156
|
+
self.sequences.fluxes.outflow = self.sequences.fluxes.inflow
|
|
157
|
+
else:
|
|
158
|
+
self.sequences.fluxes.outflow = 0.0
|
|
159
|
+
for _ in range(self.parameters.control.nmbsteps):
|
|
160
|
+
self.sequences.states.sc[0] = self.sequences.states.sc[0] + (self.parameters.derived.dt * self.sequences.fluxes.inflow)
|
|
161
|
+
for j in range(self.parameters.control.nmbstorages - 1):
|
|
162
|
+
d_q = min(self.parameters.derived.dt * self.parameters.derived.ksc * self.sequences.states.sc[j], self.sequences.states.sc[j])
|
|
163
|
+
self.sequences.states.sc[j] = self.sequences.states.sc[j] - (d_q)
|
|
164
|
+
self.sequences.states.sc[j + 1] = self.sequences.states.sc[j + 1] + (d_q)
|
|
165
|
+
j = self.parameters.control.nmbstorages - 1
|
|
166
|
+
d_q = min(self.parameters.derived.dt * self.parameters.derived.ksc * self.sequences.states.sc[j], self.sequences.states.sc[j])
|
|
167
|
+
self.sequences.states.sc[j] = self.sequences.states.sc[j] - (d_q)
|
|
168
|
+
self.sequences.fluxes.outflow = self.sequences.fluxes.outflow + (d_q)
|
|
169
|
+
cpdef double get_outflow_v1(self) noexcept nogil:
|
|
170
|
+
return self.sequences.fluxes.outflow
|
|
171
|
+
cpdef void set_inflow(self, double inflow) noexcept nogil:
|
|
172
|
+
self.sequences.fluxes.inflow = inflow
|
|
173
|
+
cpdef double get_outflow(self) noexcept nogil:
|
|
174
|
+
return self.sequences.fluxes.outflow
|
|
Binary file
|
|
@@ -0,0 +1,111 @@
|
|
|
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
|
+
cdef public numpy.npy_bool TYPE_CHECKING = False
|
|
32
|
+
@cython.final
|
|
33
|
+
cdef class Parameters:
|
|
34
|
+
cdef public ControlParameters control
|
|
35
|
+
cdef public DerivedParameters derived
|
|
36
|
+
@cython.final
|
|
37
|
+
cdef class ControlParameters:
|
|
38
|
+
cdef public double retentiontime
|
|
39
|
+
cdef public numpy.int64_t nmbstorages
|
|
40
|
+
cdef public numpy.int64_t nmbsteps
|
|
41
|
+
@cython.final
|
|
42
|
+
cdef class DerivedParameters:
|
|
43
|
+
cdef public double ksc
|
|
44
|
+
cdef public double dt
|
|
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 inflow
|
|
54
|
+
cdef public numpy.int64_t _inflow_ndim
|
|
55
|
+
cdef public numpy.int64_t _inflow_length
|
|
56
|
+
cdef public bint _inflow_ramflag
|
|
57
|
+
cdef public double[:] _inflow_array
|
|
58
|
+
cdef public bint _inflow_diskflag_reading
|
|
59
|
+
cdef public bint _inflow_diskflag_writing
|
|
60
|
+
cdef public double[:] _inflow_ncarray
|
|
61
|
+
cdef public bint _inflow_outputflag
|
|
62
|
+
cdef double *_inflow_outputpointer
|
|
63
|
+
cdef public double outflow
|
|
64
|
+
cdef public numpy.int64_t _outflow_ndim
|
|
65
|
+
cdef public numpy.int64_t _outflow_length
|
|
66
|
+
cdef public bint _outflow_ramflag
|
|
67
|
+
cdef public double[:] _outflow_array
|
|
68
|
+
cdef public bint _outflow_diskflag_reading
|
|
69
|
+
cdef public bint _outflow_diskflag_writing
|
|
70
|
+
cdef public double[:] _outflow_ncarray
|
|
71
|
+
cdef public bint _outflow_outputflag
|
|
72
|
+
cdef double *_outflow_outputpointer
|
|
73
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
74
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
75
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
76
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
77
|
+
@cython.final
|
|
78
|
+
cdef class StateSequences:
|
|
79
|
+
cdef public double[:] sc
|
|
80
|
+
cdef public numpy.int64_t _sc_ndim
|
|
81
|
+
cdef public numpy.int64_t _sc_length
|
|
82
|
+
cdef public numpy.int64_t _sc_length_0
|
|
83
|
+
cdef public bint _sc_ramflag
|
|
84
|
+
cdef public double[:,:] _sc_array
|
|
85
|
+
cdef public bint _sc_diskflag_reading
|
|
86
|
+
cdef public bint _sc_diskflag_writing
|
|
87
|
+
cdef public double[:] _sc_ncarray
|
|
88
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
89
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
90
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
91
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
92
|
+
@cython.final
|
|
93
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
94
|
+
cdef public Parameters parameters
|
|
95
|
+
cdef public Sequences sequences
|
|
96
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
|
|
97
|
+
cpdef void reset_reuseflags(self) noexcept nogil
|
|
98
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
99
|
+
cpdef void new2old(self) noexcept nogil
|
|
100
|
+
cpdef inline void run(self) noexcept nogil
|
|
101
|
+
cpdef inline void update_inlets(self) noexcept nogil
|
|
102
|
+
cpdef inline void update_outlets(self) noexcept nogil
|
|
103
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
|
|
104
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
|
|
105
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
106
|
+
cpdef void set_inflow_v1(self, double inflow) noexcept nogil
|
|
107
|
+
cpdef void determine_outflow_v2(self) noexcept nogil
|
|
108
|
+
cpdef double get_outflow_v1(self) noexcept nogil
|
|
109
|
+
cpdef void set_inflow(self, double inflow) noexcept nogil
|
|
110
|
+
cpdef void determine_outflow(self) noexcept nogil
|
|
111
|
+
cpdef double get_outflow(self) noexcept nogil
|
|
@@ -0,0 +1,185 @@
|
|
|
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
|
+
cdef public numpy.npy_bool TYPE_CHECKING = False
|
|
39
|
+
@cython.final
|
|
40
|
+
cdef class Parameters:
|
|
41
|
+
pass
|
|
42
|
+
@cython.final
|
|
43
|
+
cdef class ControlParameters:
|
|
44
|
+
pass
|
|
45
|
+
@cython.final
|
|
46
|
+
cdef class DerivedParameters:
|
|
47
|
+
pass
|
|
48
|
+
@cython.final
|
|
49
|
+
cdef class Sequences:
|
|
50
|
+
pass
|
|
51
|
+
@cython.final
|
|
52
|
+
cdef class FluxSequences:
|
|
53
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
54
|
+
cdef numpy.int64_t k
|
|
55
|
+
if self._inflow_diskflag_reading:
|
|
56
|
+
self.inflow = self._inflow_ncarray[0]
|
|
57
|
+
elif self._inflow_ramflag:
|
|
58
|
+
self.inflow = self._inflow_array[idx]
|
|
59
|
+
if self._outflow_diskflag_reading:
|
|
60
|
+
self.outflow = self._outflow_ncarray[0]
|
|
61
|
+
elif self._outflow_ramflag:
|
|
62
|
+
self.outflow = self._outflow_array[idx]
|
|
63
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
64
|
+
cdef numpy.int64_t k
|
|
65
|
+
if self._inflow_diskflag_writing:
|
|
66
|
+
self._inflow_ncarray[0] = self.inflow
|
|
67
|
+
if self._inflow_ramflag:
|
|
68
|
+
self._inflow_array[idx] = self.inflow
|
|
69
|
+
if self._outflow_diskflag_writing:
|
|
70
|
+
self._outflow_ncarray[0] = self.outflow
|
|
71
|
+
if self._outflow_ramflag:
|
|
72
|
+
self._outflow_array[idx] = self.outflow
|
|
73
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
74
|
+
if name == "inflow":
|
|
75
|
+
self._inflow_outputpointer = value.p_value
|
|
76
|
+
if name == "outflow":
|
|
77
|
+
self._outflow_outputpointer = value.p_value
|
|
78
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
79
|
+
if self._inflow_outputflag:
|
|
80
|
+
self._inflow_outputpointer[0] = self.inflow
|
|
81
|
+
if self._outflow_outputflag:
|
|
82
|
+
self._outflow_outputpointer[0] = self.outflow
|
|
83
|
+
@cython.final
|
|
84
|
+
cdef class StateSequences:
|
|
85
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
86
|
+
cdef numpy.int64_t jdx0
|
|
87
|
+
cdef numpy.int64_t k
|
|
88
|
+
if self._sc_diskflag_reading:
|
|
89
|
+
k = 0
|
|
90
|
+
for jdx0 in range(self._sc_length_0):
|
|
91
|
+
self.sc[jdx0] = self._sc_ncarray[k]
|
|
92
|
+
k += 1
|
|
93
|
+
elif self._sc_ramflag:
|
|
94
|
+
for jdx0 in range(self._sc_length_0):
|
|
95
|
+
self.sc[jdx0] = self._sc_array[idx, jdx0]
|
|
96
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
97
|
+
cdef numpy.int64_t jdx0
|
|
98
|
+
cdef numpy.int64_t k
|
|
99
|
+
if self._sc_diskflag_writing:
|
|
100
|
+
k = 0
|
|
101
|
+
for jdx0 in range(self._sc_length_0):
|
|
102
|
+
self._sc_ncarray[k] = self.sc[jdx0]
|
|
103
|
+
k += 1
|
|
104
|
+
if self._sc_ramflag:
|
|
105
|
+
for jdx0 in range(self._sc_length_0):
|
|
106
|
+
self._sc_array[idx, jdx0] = self.sc[jdx0]
|
|
107
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
108
|
+
pass
|
|
109
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
110
|
+
pass
|
|
111
|
+
@cython.final
|
|
112
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
113
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
|
|
114
|
+
self.idx_sim = idx
|
|
115
|
+
self.run()
|
|
116
|
+
self.new2old()
|
|
117
|
+
self.update_outputs()
|
|
118
|
+
cpdef void reset_reuseflags(self) noexcept nogil:
|
|
119
|
+
pass
|
|
120
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
121
|
+
self.idx_sim = idx
|
|
122
|
+
self.sequences.fluxes.save_data(idx)
|
|
123
|
+
self.sequences.states.save_data(idx)
|
|
124
|
+
cpdef void new2old(self) noexcept nogil:
|
|
125
|
+
cdef numpy.int64_t jdx0
|
|
126
|
+
for jdx0 in range(self.sequences.states._sc_length_0):
|
|
127
|
+
self.sequences.old_states.sc[jdx0] = self.sequences.new_states.sc[jdx0]
|
|
128
|
+
cpdef inline void run(self) noexcept nogil:
|
|
129
|
+
pass
|
|
130
|
+
cpdef inline void update_inlets(self) noexcept nogil:
|
|
131
|
+
pass
|
|
132
|
+
cpdef inline void update_outlets(self) noexcept nogil:
|
|
133
|
+
pass
|
|
134
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
|
|
135
|
+
self.idx_sim = idx
|
|
136
|
+
pass
|
|
137
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
|
|
138
|
+
self.idx_sim = idx
|
|
139
|
+
pass
|
|
140
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
141
|
+
self.sequences.fluxes.update_outputs()
|
|
142
|
+
cpdef void set_inflow_v1(self, double inflow) noexcept nogil:
|
|
143
|
+
self.sequences.fluxes.inflow = inflow
|
|
144
|
+
cpdef void determine_outflow_v2(self) noexcept nogil:
|
|
145
|
+
cdef double d_q
|
|
146
|
+
cdef numpy.int64_t j
|
|
147
|
+
cdef numpy.int64_t _
|
|
148
|
+
if (self.parameters.control.nmbstorages == 0) or isinf(self.parameters.derived.ksc):
|
|
149
|
+
self.sequences.fluxes.outflow = self.sequences.fluxes.inflow
|
|
150
|
+
else:
|
|
151
|
+
self.sequences.fluxes.outflow = 0.0
|
|
152
|
+
for _ in range(self.parameters.control.nmbsteps):
|
|
153
|
+
self.sequences.states.sc[0] = self.sequences.states.sc[0] + (self.parameters.derived.dt * self.sequences.fluxes.inflow)
|
|
154
|
+
for j in range(self.parameters.control.nmbstorages - 1):
|
|
155
|
+
d_q = min(self.parameters.derived.dt * self.parameters.derived.ksc * self.sequences.states.sc[j], self.sequences.states.sc[j])
|
|
156
|
+
self.sequences.states.sc[j] = self.sequences.states.sc[j] - (d_q)
|
|
157
|
+
self.sequences.states.sc[j + 1] = self.sequences.states.sc[j + 1] + (d_q)
|
|
158
|
+
j = self.parameters.control.nmbstorages - 1
|
|
159
|
+
d_q = min(self.parameters.derived.dt * self.parameters.derived.ksc * self.sequences.states.sc[j], self.sequences.states.sc[j])
|
|
160
|
+
self.sequences.states.sc[j] = self.sequences.states.sc[j] - (d_q)
|
|
161
|
+
self.sequences.fluxes.outflow = self.sequences.fluxes.outflow + (d_q)
|
|
162
|
+
cpdef double get_outflow_v1(self) noexcept nogil:
|
|
163
|
+
return self.sequences.fluxes.outflow
|
|
164
|
+
cpdef void set_inflow(self, double inflow) noexcept nogil:
|
|
165
|
+
self.sequences.fluxes.inflow = inflow
|
|
166
|
+
cpdef void determine_outflow(self) noexcept nogil:
|
|
167
|
+
cdef double d_q
|
|
168
|
+
cdef numpy.int64_t j
|
|
169
|
+
cdef numpy.int64_t _
|
|
170
|
+
if (self.parameters.control.nmbstorages == 0) or isinf(self.parameters.derived.ksc):
|
|
171
|
+
self.sequences.fluxes.outflow = self.sequences.fluxes.inflow
|
|
172
|
+
else:
|
|
173
|
+
self.sequences.fluxes.outflow = 0.0
|
|
174
|
+
for _ in range(self.parameters.control.nmbsteps):
|
|
175
|
+
self.sequences.states.sc[0] = self.sequences.states.sc[0] + (self.parameters.derived.dt * self.sequences.fluxes.inflow)
|
|
176
|
+
for j in range(self.parameters.control.nmbstorages - 1):
|
|
177
|
+
d_q = min(self.parameters.derived.dt * self.parameters.derived.ksc * self.sequences.states.sc[j], self.sequences.states.sc[j])
|
|
178
|
+
self.sequences.states.sc[j] = self.sequences.states.sc[j] - (d_q)
|
|
179
|
+
self.sequences.states.sc[j + 1] = self.sequences.states.sc[j + 1] + (d_q)
|
|
180
|
+
j = self.parameters.control.nmbstorages - 1
|
|
181
|
+
d_q = min(self.parameters.derived.dt * self.parameters.derived.ksc * self.sequences.states.sc[j], self.sequences.states.sc[j])
|
|
182
|
+
self.sequences.states.sc[j] = self.sequences.states.sc[j] - (d_q)
|
|
183
|
+
self.sequences.fluxes.outflow = self.sequences.fluxes.outflow + (d_q)
|
|
184
|
+
cpdef double get_outflow(self) noexcept nogil:
|
|
185
|
+
return self.sequences.fluxes.outflow
|
|
Binary file
|
|
@@ -0,0 +1,92 @@
|
|
|
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
|
+
cdef public numpy.npy_bool TYPE_CHECKING = False
|
|
32
|
+
@cython.final
|
|
33
|
+
cdef class Parameters:
|
|
34
|
+
cdef public ControlParameters control
|
|
35
|
+
@cython.final
|
|
36
|
+
cdef class ControlParameters:
|
|
37
|
+
cdef public double[:] uh
|
|
38
|
+
@cython.final
|
|
39
|
+
cdef class Sequences:
|
|
40
|
+
cdef public FluxSequences fluxes
|
|
41
|
+
cdef public LogSequences logs
|
|
42
|
+
@cython.final
|
|
43
|
+
cdef class FluxSequences:
|
|
44
|
+
cdef public double inflow
|
|
45
|
+
cdef public numpy.int64_t _inflow_ndim
|
|
46
|
+
cdef public numpy.int64_t _inflow_length
|
|
47
|
+
cdef public bint _inflow_ramflag
|
|
48
|
+
cdef public double[:] _inflow_array
|
|
49
|
+
cdef public bint _inflow_diskflag_reading
|
|
50
|
+
cdef public bint _inflow_diskflag_writing
|
|
51
|
+
cdef public double[:] _inflow_ncarray
|
|
52
|
+
cdef public bint _inflow_outputflag
|
|
53
|
+
cdef double *_inflow_outputpointer
|
|
54
|
+
cdef public double outflow
|
|
55
|
+
cdef public numpy.int64_t _outflow_ndim
|
|
56
|
+
cdef public numpy.int64_t _outflow_length
|
|
57
|
+
cdef public bint _outflow_ramflag
|
|
58
|
+
cdef public double[:] _outflow_array
|
|
59
|
+
cdef public bint _outflow_diskflag_reading
|
|
60
|
+
cdef public bint _outflow_diskflag_writing
|
|
61
|
+
cdef public double[:] _outflow_ncarray
|
|
62
|
+
cdef public bint _outflow_outputflag
|
|
63
|
+
cdef double *_outflow_outputpointer
|
|
64
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
65
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
66
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
67
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
68
|
+
@cython.final
|
|
69
|
+
cdef class LogSequences:
|
|
70
|
+
cdef public double[:] quh
|
|
71
|
+
cdef public numpy.int64_t _quh_ndim
|
|
72
|
+
cdef public numpy.int64_t _quh_length
|
|
73
|
+
cdef public numpy.int64_t _quh_length_0
|
|
74
|
+
@cython.final
|
|
75
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
76
|
+
cdef public Parameters parameters
|
|
77
|
+
cdef public Sequences sequences
|
|
78
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
|
|
79
|
+
cpdef void reset_reuseflags(self) noexcept nogil
|
|
80
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
81
|
+
cpdef inline void run(self) noexcept nogil
|
|
82
|
+
cpdef inline void update_inlets(self) noexcept nogil
|
|
83
|
+
cpdef inline void update_outlets(self) noexcept nogil
|
|
84
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
|
|
85
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
|
|
86
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
87
|
+
cpdef void set_inflow_v1(self, double inflow) noexcept nogil
|
|
88
|
+
cpdef void determine_outflow_v1(self) noexcept nogil
|
|
89
|
+
cpdef double get_outflow_v1(self) noexcept nogil
|
|
90
|
+
cpdef void set_inflow(self, double inflow) noexcept nogil
|
|
91
|
+
cpdef void determine_outflow(self) noexcept nogil
|
|
92
|
+
cpdef double get_outflow(self) noexcept nogil
|