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,193 @@
|
|
|
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
|
+
@cython.final
|
|
35
|
+
cdef class ControlParameters:
|
|
36
|
+
cdef public double length
|
|
37
|
+
@cython.final
|
|
38
|
+
cdef class Sequences:
|
|
39
|
+
cdef public InletSequences inlets
|
|
40
|
+
cdef public FactorSequences factors
|
|
41
|
+
cdef public FluxSequences fluxes
|
|
42
|
+
cdef public StateSequences states
|
|
43
|
+
cdef public SenderSequences senders
|
|
44
|
+
cdef public StateSequences old_states
|
|
45
|
+
cdef public StateSequences new_states
|
|
46
|
+
@cython.final
|
|
47
|
+
cdef class InletSequences:
|
|
48
|
+
cdef double **latq
|
|
49
|
+
cdef public numpy.int64_t len_latq
|
|
50
|
+
cdef public numpy.int64_t[:] _latq_ready
|
|
51
|
+
cdef public numpy.int64_t _latq_ndim
|
|
52
|
+
cdef public numpy.int64_t _latq_length
|
|
53
|
+
cdef public numpy.int64_t _latq_length_0
|
|
54
|
+
cpdef inline alloc(self, name, numpy.int64_t length)
|
|
55
|
+
cpdef inline dealloc(self, name)
|
|
56
|
+
cpdef inline set_pointer1d(self, str name, pointerutils.Double value, numpy.int64_t idx)
|
|
57
|
+
cpdef get_value(self, str name)
|
|
58
|
+
cpdef set_value(self, str name, value)
|
|
59
|
+
@cython.final
|
|
60
|
+
cdef class FactorSequences:
|
|
61
|
+
cdef public double timestep
|
|
62
|
+
cdef public numpy.int64_t _timestep_ndim
|
|
63
|
+
cdef public numpy.int64_t _timestep_length
|
|
64
|
+
cdef public bint _timestep_ramflag
|
|
65
|
+
cdef public double[:] _timestep_array
|
|
66
|
+
cdef public bint _timestep_diskflag_reading
|
|
67
|
+
cdef public bint _timestep_diskflag_writing
|
|
68
|
+
cdef public double[:] _timestep_ncarray
|
|
69
|
+
cdef public bint _timestep_outputflag
|
|
70
|
+
cdef double *_timestep_outputpointer
|
|
71
|
+
cdef public double waterdepth
|
|
72
|
+
cdef public numpy.int64_t _waterdepth_ndim
|
|
73
|
+
cdef public numpy.int64_t _waterdepth_length
|
|
74
|
+
cdef public bint _waterdepth_ramflag
|
|
75
|
+
cdef public double[:] _waterdepth_array
|
|
76
|
+
cdef public bint _waterdepth_diskflag_reading
|
|
77
|
+
cdef public bint _waterdepth_diskflag_writing
|
|
78
|
+
cdef public double[:] _waterdepth_ncarray
|
|
79
|
+
cdef public bint _waterdepth_outputflag
|
|
80
|
+
cdef double *_waterdepth_outputpointer
|
|
81
|
+
cdef public double waterlevel
|
|
82
|
+
cdef public numpy.int64_t _waterlevel_ndim
|
|
83
|
+
cdef public numpy.int64_t _waterlevel_length
|
|
84
|
+
cdef public bint _waterlevel_ramflag
|
|
85
|
+
cdef public double[:] _waterlevel_array
|
|
86
|
+
cdef public bint _waterlevel_diskflag_reading
|
|
87
|
+
cdef public bint _waterlevel_diskflag_writing
|
|
88
|
+
cdef public double[:] _waterlevel_ncarray
|
|
89
|
+
cdef public bint _waterlevel_outputflag
|
|
90
|
+
cdef double *_waterlevel_outputpointer
|
|
91
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
92
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
93
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
94
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
95
|
+
@cython.final
|
|
96
|
+
cdef class FluxSequences:
|
|
97
|
+
cdef public double lateralflow
|
|
98
|
+
cdef public numpy.int64_t _lateralflow_ndim
|
|
99
|
+
cdef public numpy.int64_t _lateralflow_length
|
|
100
|
+
cdef public bint _lateralflow_ramflag
|
|
101
|
+
cdef public double[:] _lateralflow_array
|
|
102
|
+
cdef public bint _lateralflow_diskflag_reading
|
|
103
|
+
cdef public bint _lateralflow_diskflag_writing
|
|
104
|
+
cdef public double[:] _lateralflow_ncarray
|
|
105
|
+
cdef public bint _lateralflow_outputflag
|
|
106
|
+
cdef double *_lateralflow_outputpointer
|
|
107
|
+
cdef public double netinflow
|
|
108
|
+
cdef public numpy.int64_t _netinflow_ndim
|
|
109
|
+
cdef public numpy.int64_t _netinflow_length
|
|
110
|
+
cdef public bint _netinflow_ramflag
|
|
111
|
+
cdef public double[:] _netinflow_array
|
|
112
|
+
cdef public bint _netinflow_diskflag_reading
|
|
113
|
+
cdef public bint _netinflow_diskflag_writing
|
|
114
|
+
cdef public double[:] _netinflow_ncarray
|
|
115
|
+
cdef public bint _netinflow_outputflag
|
|
116
|
+
cdef double *_netinflow_outputpointer
|
|
117
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
118
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
119
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
120
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
121
|
+
@cython.final
|
|
122
|
+
cdef class StateSequences:
|
|
123
|
+
cdef public double watervolume
|
|
124
|
+
cdef public numpy.int64_t _watervolume_ndim
|
|
125
|
+
cdef public numpy.int64_t _watervolume_length
|
|
126
|
+
cdef public bint _watervolume_ramflag
|
|
127
|
+
cdef public double[:] _watervolume_array
|
|
128
|
+
cdef public bint _watervolume_diskflag_reading
|
|
129
|
+
cdef public bint _watervolume_diskflag_writing
|
|
130
|
+
cdef public double[:] _watervolume_ncarray
|
|
131
|
+
cdef public bint _watervolume_outputflag
|
|
132
|
+
cdef double *_watervolume_outputpointer
|
|
133
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
134
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
135
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
136
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
137
|
+
@cython.final
|
|
138
|
+
cdef class SenderSequences:
|
|
139
|
+
cdef double **waterlevel
|
|
140
|
+
cdef public numpy.int64_t len_waterlevel
|
|
141
|
+
cdef public numpy.int64_t[:] _waterlevel_ready
|
|
142
|
+
cdef public numpy.int64_t _waterlevel_ndim
|
|
143
|
+
cdef public numpy.int64_t _waterlevel_length
|
|
144
|
+
cdef public numpy.int64_t _waterlevel_length_0
|
|
145
|
+
cpdef inline alloc(self, name, numpy.int64_t length)
|
|
146
|
+
cpdef inline dealloc(self, name)
|
|
147
|
+
cpdef inline set_pointer1d(self, str name, pointerutils.Double value, numpy.int64_t idx)
|
|
148
|
+
cpdef get_value(self, str name)
|
|
149
|
+
cpdef set_value(self, str name, value)
|
|
150
|
+
@cython.final
|
|
151
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
152
|
+
cdef public Parameters parameters
|
|
153
|
+
cdef public Sequences sequences
|
|
154
|
+
cdef public masterinterface.MasterInterface crosssection
|
|
155
|
+
cdef public numpy.npy_bool crosssection_is_mainmodel
|
|
156
|
+
cdef public numpy.int64_t crosssection_typeid
|
|
157
|
+
cdef public interfaceutils.SubmodelsProperty routingmodelsdownstream
|
|
158
|
+
cdef public interfaceutils.SubmodelsProperty routingmodelsupstream
|
|
159
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
|
|
160
|
+
cpdef void reset_reuseflags(self) noexcept nogil
|
|
161
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
162
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
163
|
+
cpdef void new2old(self) noexcept nogil
|
|
164
|
+
cpdef inline void run(self) noexcept nogil
|
|
165
|
+
cpdef inline void update_inlets(self) noexcept nogil
|
|
166
|
+
cpdef inline void update_outlets(self) noexcept nogil
|
|
167
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
|
|
168
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
|
|
169
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
170
|
+
cpdef double get_watervolume_v1(self) noexcept nogil
|
|
171
|
+
cpdef double get_waterlevel_v1(self) noexcept nogil
|
|
172
|
+
cpdef void set_timestep_v1(self, double timestep) noexcept nogil
|
|
173
|
+
cpdef inline void pick_lateralflow_v1(self) noexcept nogil
|
|
174
|
+
cpdef inline void calc_netinflow_v1(self) noexcept nogil
|
|
175
|
+
cpdef inline void update_watervolume_v1(self) noexcept nogil
|
|
176
|
+
cpdef inline void calc_waterdepth_waterlevel_v1(self) noexcept nogil
|
|
177
|
+
cpdef inline void calc_waterdepth_waterlevel_crosssectionmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
178
|
+
cpdef inline void pass_waterlevel_v1(self) noexcept nogil
|
|
179
|
+
cpdef double get_watervolume(self) noexcept nogil
|
|
180
|
+
cpdef double get_waterlevel(self) noexcept nogil
|
|
181
|
+
cpdef void set_timestep(self, double timestep) noexcept nogil
|
|
182
|
+
cpdef inline void pick_lateralflow(self) noexcept nogil
|
|
183
|
+
cpdef inline void calc_netinflow(self) noexcept nogil
|
|
184
|
+
cpdef inline void update_watervolume(self) noexcept nogil
|
|
185
|
+
cpdef inline void calc_waterdepth_waterlevel(self) noexcept nogil
|
|
186
|
+
cpdef inline void calc_waterdepth_waterlevel_crosssectionmodel(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
187
|
+
cpdef inline void pass_waterlevel(self) noexcept nogil
|
|
188
|
+
cpdef void perform_preprocessing_v3(self) noexcept nogil
|
|
189
|
+
cpdef void update_storage_v1(self) noexcept nogil
|
|
190
|
+
cpdef void perform_postprocessing_v3(self) noexcept nogil
|
|
191
|
+
cpdef void perform_preprocessing(self) noexcept nogil
|
|
192
|
+
cpdef void update_storage(self) noexcept nogil
|
|
193
|
+
cpdef void perform_postprocessing(self) noexcept nogil
|
|
@@ -0,0 +1,349 @@
|
|
|
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 Sequences:
|
|
46
|
+
pass
|
|
47
|
+
@cython.final
|
|
48
|
+
cdef class InletSequences:
|
|
49
|
+
cpdef inline alloc(self, name, numpy.int64_t length):
|
|
50
|
+
if name == "latq":
|
|
51
|
+
self._latq_length_0 = length
|
|
52
|
+
self._latq_ready = numpy.full(length, 0, dtype=numpy.int64)
|
|
53
|
+
self.latq = <double**> PyMem_Malloc(length * sizeof(double*))
|
|
54
|
+
cpdef inline dealloc(self, name):
|
|
55
|
+
if name == "latq":
|
|
56
|
+
PyMem_Free(self.latq)
|
|
57
|
+
cpdef inline set_pointer1d(self, str name, pointerutils.Double value, numpy.int64_t idx):
|
|
58
|
+
cdef pointerutils.PDouble pointer = pointerutils.PDouble(value)
|
|
59
|
+
if name == "latq":
|
|
60
|
+
self.latq[idx] = pointer.p_value
|
|
61
|
+
self._latq_ready[idx] = 1
|
|
62
|
+
cpdef get_value(self, str name):
|
|
63
|
+
cdef numpy.int64_t idx
|
|
64
|
+
if name == "latq":
|
|
65
|
+
values = numpy.empty(self.len_latq)
|
|
66
|
+
for idx in range(self.len_latq):
|
|
67
|
+
pointerutils.check0(self._latq_length_0)
|
|
68
|
+
if self._latq_ready[idx] == 0:
|
|
69
|
+
pointerutils.check1(self._latq_length_0, idx)
|
|
70
|
+
pointerutils.check2(self._latq_ready, idx)
|
|
71
|
+
values[idx] = self.latq[idx][0]
|
|
72
|
+
return values
|
|
73
|
+
cpdef set_value(self, str name, value):
|
|
74
|
+
if name == "latq":
|
|
75
|
+
for idx in range(self.len_latq):
|
|
76
|
+
pointerutils.check0(self._latq_length_0)
|
|
77
|
+
if self._latq_ready[idx] == 0:
|
|
78
|
+
pointerutils.check1(self._latq_length_0, idx)
|
|
79
|
+
pointerutils.check2(self._latq_ready, idx)
|
|
80
|
+
self.latq[idx][0] = value[idx]
|
|
81
|
+
@cython.final
|
|
82
|
+
cdef class FactorSequences:
|
|
83
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
84
|
+
cdef numpy.int64_t k
|
|
85
|
+
if self._timestep_diskflag_reading:
|
|
86
|
+
self.timestep = self._timestep_ncarray[0]
|
|
87
|
+
elif self._timestep_ramflag:
|
|
88
|
+
self.timestep = self._timestep_array[idx]
|
|
89
|
+
if self._waterdepth_diskflag_reading:
|
|
90
|
+
self.waterdepth = self._waterdepth_ncarray[0]
|
|
91
|
+
elif self._waterdepth_ramflag:
|
|
92
|
+
self.waterdepth = self._waterdepth_array[idx]
|
|
93
|
+
if self._waterlevel_diskflag_reading:
|
|
94
|
+
self.waterlevel = self._waterlevel_ncarray[0]
|
|
95
|
+
elif self._waterlevel_ramflag:
|
|
96
|
+
self.waterlevel = self._waterlevel_array[idx]
|
|
97
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
98
|
+
cdef numpy.int64_t k
|
|
99
|
+
if self._timestep_diskflag_writing:
|
|
100
|
+
self._timestep_ncarray[0] = self.timestep
|
|
101
|
+
if self._timestep_ramflag:
|
|
102
|
+
self._timestep_array[idx] = self.timestep
|
|
103
|
+
if self._waterdepth_diskflag_writing:
|
|
104
|
+
self._waterdepth_ncarray[0] = self.waterdepth
|
|
105
|
+
if self._waterdepth_ramflag:
|
|
106
|
+
self._waterdepth_array[idx] = self.waterdepth
|
|
107
|
+
if self._waterlevel_diskflag_writing:
|
|
108
|
+
self._waterlevel_ncarray[0] = self.waterlevel
|
|
109
|
+
if self._waterlevel_ramflag:
|
|
110
|
+
self._waterlevel_array[idx] = self.waterlevel
|
|
111
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
112
|
+
if name == "timestep":
|
|
113
|
+
self._timestep_outputpointer = value.p_value
|
|
114
|
+
if name == "waterdepth":
|
|
115
|
+
self._waterdepth_outputpointer = value.p_value
|
|
116
|
+
if name == "waterlevel":
|
|
117
|
+
self._waterlevel_outputpointer = value.p_value
|
|
118
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
119
|
+
if self._timestep_outputflag:
|
|
120
|
+
self._timestep_outputpointer[0] = self.timestep
|
|
121
|
+
if self._waterdepth_outputflag:
|
|
122
|
+
self._waterdepth_outputpointer[0] = self.waterdepth
|
|
123
|
+
if self._waterlevel_outputflag:
|
|
124
|
+
self._waterlevel_outputpointer[0] = self.waterlevel
|
|
125
|
+
@cython.final
|
|
126
|
+
cdef class FluxSequences:
|
|
127
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
128
|
+
cdef numpy.int64_t k
|
|
129
|
+
if self._lateralflow_diskflag_reading:
|
|
130
|
+
self.lateralflow = self._lateralflow_ncarray[0]
|
|
131
|
+
elif self._lateralflow_ramflag:
|
|
132
|
+
self.lateralflow = self._lateralflow_array[idx]
|
|
133
|
+
if self._netinflow_diskflag_reading:
|
|
134
|
+
self.netinflow = self._netinflow_ncarray[0]
|
|
135
|
+
elif self._netinflow_ramflag:
|
|
136
|
+
self.netinflow = self._netinflow_array[idx]
|
|
137
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
138
|
+
cdef numpy.int64_t k
|
|
139
|
+
if self._lateralflow_diskflag_writing:
|
|
140
|
+
self._lateralflow_ncarray[0] = self.lateralflow
|
|
141
|
+
if self._lateralflow_ramflag:
|
|
142
|
+
self._lateralflow_array[idx] = self.lateralflow
|
|
143
|
+
if self._netinflow_diskflag_writing:
|
|
144
|
+
self._netinflow_ncarray[0] = self.netinflow
|
|
145
|
+
if self._netinflow_ramflag:
|
|
146
|
+
self._netinflow_array[idx] = self.netinflow
|
|
147
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
148
|
+
if name == "lateralflow":
|
|
149
|
+
self._lateralflow_outputpointer = value.p_value
|
|
150
|
+
if name == "netinflow":
|
|
151
|
+
self._netinflow_outputpointer = value.p_value
|
|
152
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
153
|
+
if self._lateralflow_outputflag:
|
|
154
|
+
self._lateralflow_outputpointer[0] = self.lateralflow
|
|
155
|
+
if self._netinflow_outputflag:
|
|
156
|
+
self._netinflow_outputpointer[0] = self.netinflow
|
|
157
|
+
@cython.final
|
|
158
|
+
cdef class StateSequences:
|
|
159
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
160
|
+
cdef numpy.int64_t k
|
|
161
|
+
if self._watervolume_diskflag_reading:
|
|
162
|
+
self.watervolume = self._watervolume_ncarray[0]
|
|
163
|
+
elif self._watervolume_ramflag:
|
|
164
|
+
self.watervolume = self._watervolume_array[idx]
|
|
165
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
166
|
+
cdef numpy.int64_t k
|
|
167
|
+
if self._watervolume_diskflag_writing:
|
|
168
|
+
self._watervolume_ncarray[0] = self.watervolume
|
|
169
|
+
if self._watervolume_ramflag:
|
|
170
|
+
self._watervolume_array[idx] = self.watervolume
|
|
171
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
172
|
+
if name == "watervolume":
|
|
173
|
+
self._watervolume_outputpointer = value.p_value
|
|
174
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
175
|
+
if self._watervolume_outputflag:
|
|
176
|
+
self._watervolume_outputpointer[0] = self.watervolume
|
|
177
|
+
@cython.final
|
|
178
|
+
cdef class SenderSequences:
|
|
179
|
+
cpdef inline alloc(self, name, numpy.int64_t length):
|
|
180
|
+
if name == "waterlevel":
|
|
181
|
+
self._waterlevel_length_0 = length
|
|
182
|
+
self._waterlevel_ready = numpy.full(length, 0, dtype=numpy.int64)
|
|
183
|
+
self.waterlevel = <double**> PyMem_Malloc(length * sizeof(double*))
|
|
184
|
+
cpdef inline dealloc(self, name):
|
|
185
|
+
if name == "waterlevel":
|
|
186
|
+
PyMem_Free(self.waterlevel)
|
|
187
|
+
cpdef inline set_pointer1d(self, str name, pointerutils.Double value, numpy.int64_t idx):
|
|
188
|
+
cdef pointerutils.PDouble pointer = pointerutils.PDouble(value)
|
|
189
|
+
if name == "waterlevel":
|
|
190
|
+
self.waterlevel[idx] = pointer.p_value
|
|
191
|
+
self._waterlevel_ready[idx] = 1
|
|
192
|
+
cpdef get_value(self, str name):
|
|
193
|
+
cdef numpy.int64_t idx
|
|
194
|
+
if name == "waterlevel":
|
|
195
|
+
values = numpy.empty(self.len_waterlevel)
|
|
196
|
+
for idx in range(self.len_waterlevel):
|
|
197
|
+
pointerutils.check0(self._waterlevel_length_0)
|
|
198
|
+
if self._waterlevel_ready[idx] == 0:
|
|
199
|
+
pointerutils.check1(self._waterlevel_length_0, idx)
|
|
200
|
+
pointerutils.check2(self._waterlevel_ready, idx)
|
|
201
|
+
values[idx] = self.waterlevel[idx][0]
|
|
202
|
+
return values
|
|
203
|
+
cpdef set_value(self, str name, value):
|
|
204
|
+
if name == "waterlevel":
|
|
205
|
+
for idx in range(self.len_waterlevel):
|
|
206
|
+
pointerutils.check0(self._waterlevel_length_0)
|
|
207
|
+
if self._waterlevel_ready[idx] == 0:
|
|
208
|
+
pointerutils.check1(self._waterlevel_length_0, idx)
|
|
209
|
+
pointerutils.check2(self._waterlevel_ready, idx)
|
|
210
|
+
self.waterlevel[idx][0] = value[idx]
|
|
211
|
+
@cython.final
|
|
212
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
213
|
+
def __init__(self):
|
|
214
|
+
super().__init__()
|
|
215
|
+
self.crosssection = None
|
|
216
|
+
self.crosssection_is_mainmodel = False
|
|
217
|
+
self.routingmodelsdownstream = interfaceutils.SubmodelsProperty()
|
|
218
|
+
self.routingmodelsupstream = interfaceutils.SubmodelsProperty()
|
|
219
|
+
def get_crosssection(self) -> masterinterface.MasterInterface | None:
|
|
220
|
+
return self.crosssection
|
|
221
|
+
def set_crosssection(self, crosssection: masterinterface.MasterInterface | None) -> None:
|
|
222
|
+
self.crosssection = crosssection
|
|
223
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
|
|
224
|
+
self.idx_sim = idx
|
|
225
|
+
self.reset_reuseflags()
|
|
226
|
+
self.load_data(idx)
|
|
227
|
+
self.run()
|
|
228
|
+
self.new2old()
|
|
229
|
+
self.update_outputs()
|
|
230
|
+
cpdef void reset_reuseflags(self) noexcept nogil:
|
|
231
|
+
if (self.crosssection is not None) and not self.crosssection_is_mainmodel:
|
|
232
|
+
self.crosssection.reset_reuseflags()
|
|
233
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
234
|
+
self.idx_sim = idx
|
|
235
|
+
if (self.crosssection is not None) and not self.crosssection_is_mainmodel:
|
|
236
|
+
self.crosssection.load_data(idx)
|
|
237
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
238
|
+
self.idx_sim = idx
|
|
239
|
+
self.sequences.factors.save_data(idx)
|
|
240
|
+
self.sequences.fluxes.save_data(idx)
|
|
241
|
+
self.sequences.states.save_data(idx)
|
|
242
|
+
if (self.crosssection is not None) and not self.crosssection_is_mainmodel:
|
|
243
|
+
self.crosssection.save_data(idx)
|
|
244
|
+
cpdef void new2old(self) noexcept nogil:
|
|
245
|
+
self.sequences.old_states.watervolume = self.sequences.new_states.watervolume
|
|
246
|
+
if (self.crosssection is not None) and not self.crosssection_is_mainmodel:
|
|
247
|
+
self.crosssection.new2old()
|
|
248
|
+
cpdef inline void run(self) noexcept nogil:
|
|
249
|
+
pass
|
|
250
|
+
cpdef inline void update_inlets(self) noexcept nogil:
|
|
251
|
+
pass
|
|
252
|
+
cpdef inline void update_outlets(self) noexcept nogil:
|
|
253
|
+
pass
|
|
254
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
|
|
255
|
+
self.idx_sim = idx
|
|
256
|
+
pass
|
|
257
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
|
|
258
|
+
self.idx_sim = idx
|
|
259
|
+
pass
|
|
260
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
261
|
+
self.sequences.factors.update_outputs()
|
|
262
|
+
self.sequences.fluxes.update_outputs()
|
|
263
|
+
self.sequences.states.update_outputs()
|
|
264
|
+
cpdef double get_watervolume_v1(self) noexcept nogil:
|
|
265
|
+
return self.sequences.states.watervolume
|
|
266
|
+
cpdef double get_waterlevel_v1(self) noexcept nogil:
|
|
267
|
+
return self.sequences.factors.waterlevel
|
|
268
|
+
cpdef void set_timestep_v1(self, double timestep) noexcept nogil:
|
|
269
|
+
self.sequences.factors.timestep = timestep
|
|
270
|
+
cpdef inline void pick_lateralflow_v1(self) noexcept nogil:
|
|
271
|
+
cdef numpy.int64_t i
|
|
272
|
+
self.sequences.fluxes.lateralflow = 0.0
|
|
273
|
+
for i in range(self.sequences.inlets.len_latq):
|
|
274
|
+
self.sequences.fluxes.lateralflow = self.sequences.fluxes.lateralflow + (self.sequences.inlets.latq[i][0])
|
|
275
|
+
cpdef inline void calc_netinflow_v1(self) noexcept nogil:
|
|
276
|
+
cdef numpy.int64_t i
|
|
277
|
+
self.sequences.fluxes.netinflow = self.sequences.fluxes.lateralflow
|
|
278
|
+
for i in range(self.routingmodelsupstream.number):
|
|
279
|
+
if self.routingmodelsupstream.typeids[i] in (1, 2):
|
|
280
|
+
self.sequences.fluxes.netinflow = self.sequences.fluxes.netinflow + ((<masterinterface.MasterInterface>self.routingmodelsupstream.submodels[i]).get_discharge())
|
|
281
|
+
for i in range(self.routingmodelsdownstream.number):
|
|
282
|
+
if self.routingmodelsdownstream.typeids[i] in (2, 3):
|
|
283
|
+
self.sequences.fluxes.netinflow = self.sequences.fluxes.netinflow - ((<masterinterface.MasterInterface>self.routingmodelsdownstream.submodels[i]).get_discharge())
|
|
284
|
+
self.sequences.fluxes.netinflow = self.sequences.fluxes.netinflow * (self.sequences.factors.timestep / 1e3)
|
|
285
|
+
cpdef inline void update_watervolume_v1(self) noexcept nogil:
|
|
286
|
+
self.sequences.states.watervolume = self.sequences.states.watervolume + (self.sequences.fluxes.netinflow)
|
|
287
|
+
cpdef inline void calc_waterdepth_waterlevel_v1(self) noexcept nogil:
|
|
288
|
+
if self.crosssection_typeid == 2:
|
|
289
|
+
self.calc_waterdepth_waterlevel_crosssectionmodel_v2( (<masterinterface.MasterInterface>self.crosssection) )
|
|
290
|
+
cpdef inline void calc_waterdepth_waterlevel_crosssectionmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
291
|
+
submodel.use_wettedarea(self.sequences.states.watervolume / self.parameters.control.length)
|
|
292
|
+
self.sequences.factors.waterdepth = submodel.get_waterdepth()
|
|
293
|
+
self.sequences.factors.waterlevel = submodel.get_waterlevel()
|
|
294
|
+
cpdef inline void pass_waterlevel_v1(self) noexcept nogil:
|
|
295
|
+
cdef numpy.int64_t i
|
|
296
|
+
for i in range(self.sequences.senders.len_waterlevel):
|
|
297
|
+
self.sequences.senders.waterlevel[i][0] = self.sequences.factors.waterlevel
|
|
298
|
+
cpdef double get_watervolume(self) noexcept nogil:
|
|
299
|
+
return self.sequences.states.watervolume
|
|
300
|
+
cpdef double get_waterlevel(self) noexcept nogil:
|
|
301
|
+
return self.sequences.factors.waterlevel
|
|
302
|
+
cpdef void set_timestep(self, double timestep) noexcept nogil:
|
|
303
|
+
self.sequences.factors.timestep = timestep
|
|
304
|
+
cpdef inline void pick_lateralflow(self) noexcept nogil:
|
|
305
|
+
cdef numpy.int64_t i
|
|
306
|
+
self.sequences.fluxes.lateralflow = 0.0
|
|
307
|
+
for i in range(self.sequences.inlets.len_latq):
|
|
308
|
+
self.sequences.fluxes.lateralflow = self.sequences.fluxes.lateralflow + (self.sequences.inlets.latq[i][0])
|
|
309
|
+
cpdef inline void calc_netinflow(self) noexcept nogil:
|
|
310
|
+
cdef numpy.int64_t i
|
|
311
|
+
self.sequences.fluxes.netinflow = self.sequences.fluxes.lateralflow
|
|
312
|
+
for i in range(self.routingmodelsupstream.number):
|
|
313
|
+
if self.routingmodelsupstream.typeids[i] in (1, 2):
|
|
314
|
+
self.sequences.fluxes.netinflow = self.sequences.fluxes.netinflow + ((<masterinterface.MasterInterface>self.routingmodelsupstream.submodels[i]).get_discharge())
|
|
315
|
+
for i in range(self.routingmodelsdownstream.number):
|
|
316
|
+
if self.routingmodelsdownstream.typeids[i] in (2, 3):
|
|
317
|
+
self.sequences.fluxes.netinflow = self.sequences.fluxes.netinflow - ((<masterinterface.MasterInterface>self.routingmodelsdownstream.submodels[i]).get_discharge())
|
|
318
|
+
self.sequences.fluxes.netinflow = self.sequences.fluxes.netinflow * (self.sequences.factors.timestep / 1e3)
|
|
319
|
+
cpdef inline void update_watervolume(self) noexcept nogil:
|
|
320
|
+
self.sequences.states.watervolume = self.sequences.states.watervolume + (self.sequences.fluxes.netinflow)
|
|
321
|
+
cpdef inline void calc_waterdepth_waterlevel(self) noexcept nogil:
|
|
322
|
+
if self.crosssection_typeid == 2:
|
|
323
|
+
self.calc_waterdepth_waterlevel_crosssectionmodel_v2( (<masterinterface.MasterInterface>self.crosssection) )
|
|
324
|
+
cpdef inline void calc_waterdepth_waterlevel_crosssectionmodel(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
325
|
+
submodel.use_wettedarea(self.sequences.states.watervolume / self.parameters.control.length)
|
|
326
|
+
self.sequences.factors.waterdepth = submodel.get_waterdepth()
|
|
327
|
+
self.sequences.factors.waterlevel = submodel.get_waterlevel()
|
|
328
|
+
cpdef inline void pass_waterlevel(self) noexcept nogil:
|
|
329
|
+
cdef numpy.int64_t i
|
|
330
|
+
for i in range(self.sequences.senders.len_waterlevel):
|
|
331
|
+
self.sequences.senders.waterlevel[i][0] = self.sequences.factors.waterlevel
|
|
332
|
+
cpdef void perform_preprocessing_v3(self) noexcept nogil:
|
|
333
|
+
self.pick_lateralflow_v1()
|
|
334
|
+
self.calc_waterdepth_waterlevel_v1()
|
|
335
|
+
cpdef void update_storage_v1(self) noexcept nogil:
|
|
336
|
+
self.calc_netinflow_v1()
|
|
337
|
+
self.update_watervolume_v1()
|
|
338
|
+
self.calc_waterdepth_waterlevel_v1()
|
|
339
|
+
cpdef void perform_postprocessing_v3(self) noexcept nogil:
|
|
340
|
+
self.pass_waterlevel_v1()
|
|
341
|
+
cpdef void perform_preprocessing(self) noexcept nogil:
|
|
342
|
+
self.pick_lateralflow_v1()
|
|
343
|
+
self.calc_waterdepth_waterlevel_v1()
|
|
344
|
+
cpdef void update_storage(self) noexcept nogil:
|
|
345
|
+
self.calc_netinflow_v1()
|
|
346
|
+
self.update_watervolume_v1()
|
|
347
|
+
self.calc_waterdepth_waterlevel_v1()
|
|
348
|
+
cpdef void perform_postprocessing(self) noexcept nogil:
|
|
349
|
+
self.pass_waterlevel_v1()
|
|
Binary file
|