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
hydpy/models/dam_v001.py
ADDED
|
@@ -0,0 +1,1127 @@
|
|
|
1
|
+
# pylint: disable=line-too-long, unused-wildcard-import
|
|
2
|
+
"""
|
|
3
|
+
|dam_v001| is supposed to represent a dam with an "active" low water control scheme and
|
|
4
|
+
a "passive" high water control scheme.
|
|
5
|
+
|
|
6
|
+
During low flow conditions, |dam_v001| tries to increase low runoff values immediately
|
|
7
|
+
downstream the of dam and at a more remote location in the downstream river channel.
|
|
8
|
+
The latter requires that |dam_v001| receives information from downstream via a
|
|
9
|
+
"receiver node". To achieve reliable drought control, |dam_v001| stores some low-flow
|
|
10
|
+
related information for several simulation steps.
|
|
11
|
+
|
|
12
|
+
During high flow conditions, |dam_v001| is controlled by two relationships: one between
|
|
13
|
+
water volume and water level, and the other between discharge and water level. While
|
|
14
|
+
the first one is stationary, the second one can vary seasonally. In both cases, one
|
|
15
|
+
defines these relationships via interpolators. See the documentation on the classes
|
|
16
|
+
|PPoly| and |ANN|, which explains how to configure stepwise linear, spline, or neural
|
|
17
|
+
network-based interpolations.
|
|
18
|
+
|
|
19
|
+
|dam_v001| solves its differential equation with an adaptive Runge-Kutta method that
|
|
20
|
+
only works well on continuous equations. Hence, we defined most threshold-based
|
|
21
|
+
low-flow equations in a "smoothable" manner. However, defining realistic and
|
|
22
|
+
computationally efficient configurations of the related smoothing parameters requires
|
|
23
|
+
some experience. Therefore, it seems advisable to investigate the functioning of each
|
|
24
|
+
new model parameterisation on several synthetic or measured drought events.
|
|
25
|
+
|
|
26
|
+
The applied solver is an explicit Runge-Kutta method unsuitable for stiff initial value
|
|
27
|
+
problems. Its adaptive order and stepsize control prevent inaccurate results caused by
|
|
28
|
+
stability issues. But for very responsive dams, increased computation times are
|
|
29
|
+
possible. We come back to this point at the end of this section.
|
|
30
|
+
|
|
31
|
+
By default, |dam_v001| neither takes precipitation nor evaporation into account, but
|
|
32
|
+
you can add submodels that comply with the |PrecipModel_V2| or |PETModel_V1| interface
|
|
33
|
+
that supply this information.
|
|
34
|
+
|
|
35
|
+
Integration tests
|
|
36
|
+
=================
|
|
37
|
+
|
|
38
|
+
.. how_to_understand_integration_tests::
|
|
39
|
+
|
|
40
|
+
We perform all of the following examples over 20 days:
|
|
41
|
+
|
|
42
|
+
>>> from hydpy import pub
|
|
43
|
+
>>> pub.timegrids = "01.01.2000", "21.01.2000", "1d"
|
|
44
|
+
|
|
45
|
+
The first examples demonstrate how |dam_v001| reduces drought events at a cross-section
|
|
46
|
+
far downstream under different configurations. In real cases, this requires taking the
|
|
47
|
+
travel time of the released water into account. Therefore, we will use the
|
|
48
|
+
|arma_rimorido| application model to route the dam's outflow to the cross-section under
|
|
49
|
+
investigation. Furthermore, we add some "natural" discharge to the cross-section,
|
|
50
|
+
reflecting the influence of the subcatchment between the dam and the cross-section.
|
|
51
|
+
|
|
52
|
+
We define four |Node| objects:
|
|
53
|
+
|
|
54
|
+
* Node 'inflow' passes the inflow into the dam.
|
|
55
|
+
* Node 'natural' handles the subcatchment's additional discharge.
|
|
56
|
+
* Node 'outflow' receives the dam's (unmodified) outflow.
|
|
57
|
+
* Node 'remote' receives the dam's routed outflow and the subcatchment's additional
|
|
58
|
+
discharge.
|
|
59
|
+
|
|
60
|
+
>>> from hydpy import Node
|
|
61
|
+
>>> inflow = Node("inflow")
|
|
62
|
+
>>> outflow = Node("outflow")
|
|
63
|
+
>>> natural = Node("natural")
|
|
64
|
+
>>> remote = Node("remote")
|
|
65
|
+
|
|
66
|
+
We use these nodes to connect the following three elements:
|
|
67
|
+
|
|
68
|
+
* Element `dam` handles the tested |dam_v001| model instance.
|
|
69
|
+
* Element `stream1` uses one |arma_rimorido| model instance to route the dam's outflow
|
|
70
|
+
with significant delay.
|
|
71
|
+
* Element `stream2` uses another |arma_rimorido| model instance to pass the
|
|
72
|
+
subcatchment's additional discharge without delay.
|
|
73
|
+
|
|
74
|
+
>>> from hydpy import Element
|
|
75
|
+
>>> dam = Element("dam", inlets=inflow, outlets=outflow, receivers=remote)
|
|
76
|
+
>>> stream1 = Element("stream1", inlets=outflow, outlets=remote)
|
|
77
|
+
>>> stream2 = Element("stream2", inlets=natural, outlets=remote)
|
|
78
|
+
|
|
79
|
+
Next, we prepare the three model instances. We begin with the `stream2` model.
|
|
80
|
+
Setting the |arma_control.Responses| parameter in the following manner defines a pure
|
|
81
|
+
Moving Average model that neither results in translation nor retention:
|
|
82
|
+
|
|
83
|
+
>>> from hydpy import prepare_model
|
|
84
|
+
>>> stream2.model = prepare_model("arma_rimorido")
|
|
85
|
+
>>> stream2.model.parameters.control.responses(((), (1.0,)))
|
|
86
|
+
>>> stream2.model.parameters.update()
|
|
87
|
+
|
|
88
|
+
`stream2` also works like a pure Moving Average model but causes a time delay of
|
|
89
|
+
1.8 days:
|
|
90
|
+
|
|
91
|
+
>>> stream1.model = prepare_model("arma_rimorido")
|
|
92
|
+
>>> stream1.model.parameters.control.responses(((), (0.2, 0.4, 0.3, 0.1)))
|
|
93
|
+
>>> stream1.model.parameters.update()
|
|
94
|
+
|
|
95
|
+
Last but not least, we initialise the |dam_v001| instance and hand it to its element
|
|
96
|
+
(we will define distinct parameter sets for the examples below):
|
|
97
|
+
|
|
98
|
+
>>> from hydpy.models.dam_v001 import *
|
|
99
|
+
>>> parameterstep("1d")
|
|
100
|
+
>>> dam.model = model
|
|
101
|
+
|
|
102
|
+
The |IntegrationTest| object `test` serves to execute the following examples
|
|
103
|
+
conveniently:
|
|
104
|
+
|
|
105
|
+
>>> from hydpy import IntegrationTest
|
|
106
|
+
>>> test = IntegrationTest(dam)
|
|
107
|
+
>>> test.inits=((states.watervolume, 0.0),
|
|
108
|
+
... (logs.loggedadjustedevaporation, 0.0),
|
|
109
|
+
... (logs.loggedtotalremotedischarge, 1.9),
|
|
110
|
+
... (logs.loggedoutflow, 0.0),
|
|
111
|
+
... (stream1.model.sequences.logs.login, 0.0))
|
|
112
|
+
>>> test.dateformat = "%d.%m."
|
|
113
|
+
>>> test.plotting_options.axis1 = fluxes.inflow, fluxes.outflow
|
|
114
|
+
>>> test.plotting_options.axis2 = states.watervolume
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
Next, we create a drought event. The natural discharge of the subcatchment decreases
|
|
118
|
+
for nine days, stays at a constant level of 1 m³/s for four days, and increases again:
|
|
119
|
+
|
|
120
|
+
>>> natural.sequences.sim.series = [1.8, 1.7, 1.6, 1.5, 1.4, 1.3, 1.2, 1.1, 1.0, 1.0,
|
|
121
|
+
... 1.0, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8]
|
|
122
|
+
|
|
123
|
+
The inflow into the dam remains constant for the whole simulation period:
|
|
124
|
+
|
|
125
|
+
>>> inflow.sequences.sim.series = 1.0
|
|
126
|
+
|
|
127
|
+
For the sake of simplicity, we define a linear relationship between the stored water
|
|
128
|
+
volume and the water level. One can accomplish this most easily via method
|
|
129
|
+
|PPoly.from_data| of class |PPoly|:
|
|
130
|
+
|
|
131
|
+
>>> watervolume2waterlevel(PPoly.from_data(xs=[0.0, 1.0], ys=[0.0, 0.25]))
|
|
132
|
+
|
|
133
|
+
The following figure confirms the linearity of the defined relationship:
|
|
134
|
+
|
|
135
|
+
>>> figure = watervolume2waterlevel.plot(0.0, 100.0)
|
|
136
|
+
>>> from hydpy.core.testtools import save_autofig
|
|
137
|
+
>>> save_autofig("dam_v001_watervolume2waterlevel.png", figure=figure)
|
|
138
|
+
|
|
139
|
+
.. image:: dam_v001_watervolume2waterlevel.png
|
|
140
|
+
:width: 400
|
|
141
|
+
|
|
142
|
+
To focus on the drought-related algorithms only, we turn off the flood-related
|
|
143
|
+
processes. Therefore, we let parameter |WaterLevel2FloodDischarge| return zero for all
|
|
144
|
+
possible input values:
|
|
145
|
+
|
|
146
|
+
>>> waterlevel2flooddischarge(PPoly.from_data(xs=[0.0], ys=[0.0]))
|
|
147
|
+
>>> figure = waterlevel2flooddischarge.plot(0.0, 25.0)
|
|
148
|
+
>>> save_autofig("dam_v001_waterlevel2flooddischarge_1.png", figure=figure)
|
|
149
|
+
|
|
150
|
+
.. image:: dam_v001_waterlevel2flooddischarge_1.png
|
|
151
|
+
:width: 400
|
|
152
|
+
|
|
153
|
+
The exact values of the following parameters are relevant only for those examples where
|
|
154
|
+
we take precipitation or evaporation into account. Please see the documentation on the
|
|
155
|
+
simple lake model |dam_llake|, which discusses these parameters in detail:
|
|
156
|
+
|
|
157
|
+
>>> surfacearea(1.44)
|
|
158
|
+
>>> correctionprecipitation(1.2)
|
|
159
|
+
>>> correctionevaporation(1.2)
|
|
160
|
+
>>> weightevaporation(0.8)
|
|
161
|
+
>>> thresholdevaporation(0.0)
|
|
162
|
+
>>> toleranceevaporation(0.001)
|
|
163
|
+
|
|
164
|
+
We must define the catchment area draining into the dam. |dam_v001| requires this
|
|
165
|
+
information to adjust the numerical local truncation error. For a catchment area of
|
|
166
|
+
86.4 km², the general local truncation error (in mm per simulation step) is identical
|
|
167
|
+
to the applied site-specific local truncation error (in m³/s):
|
|
168
|
+
|
|
169
|
+
>>> catchmentarea(86.4)
|
|
170
|
+
>>> from hydpy import round_
|
|
171
|
+
>>> round_(solver.abserrormax.INIT)
|
|
172
|
+
0.0001
|
|
173
|
+
>>> derived.seconds.update()
|
|
174
|
+
>>> solver.abserrormax.update()
|
|
175
|
+
>>> solver.abserrormax
|
|
176
|
+
abserrormax(0.0001)
|
|
177
|
+
|
|
178
|
+
If you require higher accuracy or can live with lower accuracy, override this default
|
|
179
|
+
mechanism by setting any other tolerance value (possible within any control file; see
|
|
180
|
+
the :ref:`dam_v001_accuracy_drought` and the :ref:`dam_v001_accuracy_flood` examples
|
|
181
|
+
for further information).
|
|
182
|
+
|
|
183
|
+
We enable the |RestrictTargetedRelease| option flag in the following examples if not
|
|
184
|
+
stated otherwise:
|
|
185
|
+
|
|
186
|
+
>>> restricttargetedrelease(True)
|
|
187
|
+
|
|
188
|
+
.. _dam_v001_no_outflow:
|
|
189
|
+
|
|
190
|
+
no outflow
|
|
191
|
+
__________
|
|
192
|
+
|
|
193
|
+
We temporarily turn off the drought-related functionalities to confirm the proper
|
|
194
|
+
arrangement of the whole scenario.
|
|
195
|
+
|
|
196
|
+
>>> nmblogentries(1)
|
|
197
|
+
>>> remotedischargeminimum(0.0)
|
|
198
|
+
>>> remotedischargesafety(0.0)
|
|
199
|
+
>>> neardischargeminimumthreshold(0.0)
|
|
200
|
+
>>> neardischargeminimumtolerance(0.0)
|
|
201
|
+
>>> waterlevelminimumthreshold(0.0)
|
|
202
|
+
>>> waterlevelminimumtolerance(0.0)
|
|
203
|
+
|
|
204
|
+
The following table confirms that |dam_v001| does not release any discharge (the column
|
|
205
|
+
"outflow" contains zero values only). Hence, the downstream cross-section's discharge
|
|
206
|
+
(column "remote") and the subcatchment's discharge (column "natural") are identical:
|
|
207
|
+
|
|
208
|
+
.. integration-test::
|
|
209
|
+
|
|
210
|
+
>>> test("dam_v001_no_outflow")
|
|
211
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
212
|
+
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
213
|
+
| 01.01. | 0.0216 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.8 | 1.9 | 0.0 | -1.9 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0864 | 1.0 | 1.8 | 0.0 | 1.8 |
|
|
214
|
+
| 02.01. | 0.0432 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7 | 1.8 | 0.0 | -1.8 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1728 | 1.0 | 1.7 | 0.0 | 1.7 |
|
|
215
|
+
| 03.01. | 0.0648 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.7 | 0.0 | -1.7 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.2592 | 1.0 | 1.6 | 0.0 | 1.6 |
|
|
216
|
+
| 04.01. | 0.0864 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.5 | 1.6 | 0.0 | -1.6 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.3456 | 1.0 | 1.5 | 0.0 | 1.5 |
|
|
217
|
+
| 05.01. | 0.108 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.4 | 1.5 | 0.0 | -1.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.432 | 1.0 | 1.4 | 0.0 | 1.4 |
|
|
218
|
+
| 06.01. | 0.1296 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.3 | 1.4 | 0.0 | -1.4 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.5184 | 1.0 | 1.3 | 0.0 | 1.3 |
|
|
219
|
+
| 07.01. | 0.1512 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.2 | 1.3 | 0.0 | -1.3 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.6048 | 1.0 | 1.2 | 0.0 | 1.2 |
|
|
220
|
+
| 08.01. | 0.1728 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.1 | 1.2 | 0.0 | -1.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.6912 | 1.0 | 1.1 | 0.0 | 1.1 |
|
|
221
|
+
| 09.01. | 0.1944 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 1.1 | 0.0 | -1.1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.7776 | 1.0 | 1.0 | 0.0 | 1.0 |
|
|
222
|
+
| 10.01. | 0.216 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.864 | 1.0 | 1.0 | 0.0 | 1.0 |
|
|
223
|
+
| 11.01. | 0.2376 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.9504 | 1.0 | 1.0 | 0.0 | 1.0 |
|
|
224
|
+
| 12.01. | 0.2592 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0368 | 1.0 | 1.0 | 0.0 | 1.0 |
|
|
225
|
+
| 13.01. | 0.2808 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.1 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.1232 | 1.0 | 1.1 | 0.0 | 1.1 |
|
|
226
|
+
| 14.01. | 0.3024 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.2 | 1.1 | 0.0 | -1.1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.2096 | 1.0 | 1.2 | 0.0 | 1.2 |
|
|
227
|
+
| 15.01. | 0.324 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.3 | 1.2 | 0.0 | -1.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.296 | 1.0 | 1.3 | 0.0 | 1.3 |
|
|
228
|
+
| 16.01. | 0.3456 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.4 | 1.3 | 0.0 | -1.3 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.3824 | 1.0 | 1.4 | 0.0 | 1.4 |
|
|
229
|
+
| 17.01. | 0.3672 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.5 | 1.4 | 0.0 | -1.4 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.4688 | 1.0 | 1.5 | 0.0 | 1.5 |
|
|
230
|
+
| 18.01. | 0.3888 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.5 | 0.0 | -1.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.5552 | 1.0 | 1.6 | 0.0 | 1.6 |
|
|
231
|
+
| 19.01. | 0.4104 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7 | 1.6 | 0.0 | -1.6 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.6416 | 1.0 | 1.7 | 0.0 | 1.7 |
|
|
232
|
+
| 20.01. | 0.432 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.8 | 1.7 | 0.0 | -1.7 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.728 | 1.0 | 1.8 | 0.0 | 1.8 |
|
|
233
|
+
|
|
234
|
+
.. _dam_v001_exact_remote_minimum:
|
|
235
|
+
|
|
236
|
+
exact remote minimum
|
|
237
|
+
____________________
|
|
238
|
+
|
|
239
|
+
Now, we set the discharge to be not undercut at the cross-section downstream to
|
|
240
|
+
1.4 m³/s:
|
|
241
|
+
|
|
242
|
+
>>> remotedischargeminimum(1.4)
|
|
243
|
+
|
|
244
|
+
Principally, the dam model attenuates the drought. However, it is not very successful
|
|
245
|
+
in doing so. In the event's first half, the cross-section's lowest discharge increases
|
|
246
|
+
from 1.0 m³/s to approximately 1.2 m³/s, which is still below the threshold value of
|
|
247
|
+
1.4 m³/s. Furthermore, in the event's second half, |dam_v001| works too eagerly,
|
|
248
|
+
resulting in a discharge of approximately 1.6 m³/s instead of 1.4 m³/s on January 12:
|
|
249
|
+
|
|
250
|
+
.. integration-test::
|
|
251
|
+
|
|
252
|
+
>>> test("dam_v001_exact_remote_minimum")
|
|
253
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
254
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
255
|
+
| 01.01. | 0.0216 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.8 | 1.9 | 0.0 | -0.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0864 | 1.0 | 1.8 | 0.0 | 1.8 |
|
|
256
|
+
| 02.01. | 0.0432 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7 | 1.8 | 0.0 | -0.4 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1728 | 1.0 | 1.7 | 0.0 | 1.7 |
|
|
257
|
+
| 03.01. | 0.0648 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.7 | 0.0 | -0.3 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.2592 | 1.0 | 1.6 | 0.0 | 1.6 |
|
|
258
|
+
| 04.01. | 0.0864 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.5 | 1.6 | 0.0 | -0.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.3456 | 1.0 | 1.5 | 0.0 | 1.5 |
|
|
259
|
+
| 05.01. | 0.108 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.4 | 1.5 | 0.0 | -0.1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.432 | 1.0 | 1.4 | 0.0 | 1.4 |
|
|
260
|
+
| 06.01. | 0.1296 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.3 | 1.4 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.5184 | 1.0 | 1.3 | 0.0 | 1.3 |
|
|
261
|
+
| 07.01. | 0.14904 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.22 | 1.3 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.0 | 0.1 | 0.59616 | 1.0 | 1.2 | 0.1 | 1.22 |
|
|
262
|
+
| 08.01. | 0.164592 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.196 | 1.12 | 0.28 | 0.18 | 0.28 | 0.28 | 0.28 | 0.28 | 0.0 | 0.28 | 0.658368 | 1.0 | 1.1 | 0.28 | 1.196 |
|
|
263
|
+
| 09.01. | 0.175738 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.2388 | 0.916 | 0.484 | 0.204 | 0.484 | 0.484 | 0.484 | 0.484 | 0.0 | 0.484 | 0.70295 | 1.0 | 1.0 | 0.484 | 1.2388 |
|
|
264
|
+
| 10.01. | 0.183401 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.41664 | 0.7548 | 0.6452 | 0.1612 | 0.6452 | 0.6452 | 0.6452 | 0.6452 | 0.0 | 0.6452 | 0.733605 | 1.0 | 1.0 | 0.6452 | 1.41664 |
|
|
265
|
+
| 11.01. | 0.191424 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.556992 | 0.77144 | 0.62856 | -0.01664 | 0.62856 | 0.62856 | 0.62856 | 0.62856 | 0.0 | 0.62856 | 0.765698 | 1.0 | 1.0 | 0.62856 | 1.556992 |
|
|
266
|
+
| 12.01. | 0.202839 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.587698 | 0.928432 | 0.471568 | -0.156992 | 0.471568 | 0.471568 | 0.471568 | 0.471568 | 0.0 | 0.471568 | 0.811354 | 1.0 | 1.0 | 0.471568 | 1.587698 |
|
|
267
|
+
| 13.01. | 0.218307 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.598489 | 1.11613 | 0.28387 | -0.187698 | 0.28387 | 0.28387 | 0.28387 | 0.28387 | 0.0 | 0.28387 | 0.873228 | 1.0 | 1.1 | 0.28387 | 1.598489 |
|
|
268
|
+
| 14.01. | 0.238063 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.534951 | 1.314619 | 0.085381 | -0.198489 | 0.085381 | 0.085381 | 0.085381 | 0.085381 | 0.0 | 0.085381 | 0.952251 | 1.0 | 1.2 | 0.085381 | 1.534951 |
|
|
269
|
+
| 15.01. | 0.259663 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.46647 | 1.44957 | 0.0 | -0.134951 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.038651 | 1.0 | 1.3 | 0.0 | 1.46647 |
|
|
270
|
+
| 16.01. | 0.281263 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.454001 | 1.46647 | 0.0 | -0.06647 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.125051 | 1.0 | 1.4 | 0.0 | 1.454001 |
|
|
271
|
+
| 17.01. | 0.302863 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.508538 | 1.454001 | 0.0 | -0.054001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.211451 | 1.0 | 1.5 | 0.0 | 1.508538 |
|
|
272
|
+
| 18.01. | 0.324463 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.508538 | 0.0 | -0.108538 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.297851 | 1.0 | 1.6 | 0.0 | 1.6 |
|
|
273
|
+
| 19.01. | 0.346063 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7 | 1.6 | 0.0 | -0.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.384251 | 1.0 | 1.7 | 0.0 | 1.7 |
|
|
274
|
+
| 20.01. | 0.367663 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.8 | 1.7 | 0.0 | -0.3 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.470651 | 1.0 | 1.8 | 0.0 | 1.8 |
|
|
275
|
+
|
|
276
|
+
.. _dam_v001_increased_remote_minimum:
|
|
277
|
+
|
|
278
|
+
increased remote minimum
|
|
279
|
+
________________________
|
|
280
|
+
|
|
281
|
+
The qualified success in the example above is partly due to the time delay of the
|
|
282
|
+
information flow from the cross-section to the dam, but the more important factor is
|
|
283
|
+
the travel time of the released discharge. A simple strategy to increase reliability
|
|
284
|
+
is to set a higher value for parameter |RemoteDischargeMinimum|. When defining a value
|
|
285
|
+
of 1.6 m/s, only minor violations of the actual threshold value remain:
|
|
286
|
+
|
|
287
|
+
.. integration-test::
|
|
288
|
+
|
|
289
|
+
>>> remotedischargeminimum(1.6)
|
|
290
|
+
>>> test("dam_v001_increased_remote_minimum")
|
|
291
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
292
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
293
|
+
| 01.01. | 0.0216 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.8 | 1.9 | 0.0 | -0.3 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0864 | 1.0 | 1.8 | 0.0 | 1.8 |
|
|
294
|
+
| 02.01. | 0.0432 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7 | 1.8 | 0.0 | -0.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1728 | 1.0 | 1.7 | 0.0 | 1.7 |
|
|
295
|
+
| 03.01. | 0.0648 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.7 | 0.0 | -0.1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.2592 | 1.0 | 1.6 | 0.0 | 1.6 |
|
|
296
|
+
| 04.01. | 0.0864 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.5 | 1.6 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.3456 | 1.0 | 1.5 | 0.0 | 1.5 |
|
|
297
|
+
| 05.01. | 0.10584 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.42 | 1.5 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.0 | 0.1 | 0.42336 | 1.0 | 1.4 | 0.1 | 1.42 |
|
|
298
|
+
| 06.01. | 0.121392 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.396 | 1.32 | 0.28 | 0.18 | 0.28 | 0.28 | 0.28 | 0.28 | 0.0 | 0.28 | 0.485568 | 1.0 | 1.3 | 0.28 | 1.396 |
|
|
299
|
+
| 07.01. | 0.132538 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.4388 | 1.116 | 0.484 | 0.204 | 0.484 | 0.484 | 0.484 | 0.484 | 0.0 | 0.484 | 0.53015 | 1.0 | 1.2 | 0.484 | 1.4388 |
|
|
300
|
+
| 08.01. | 0.140201 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.51664 | 0.9548 | 0.6452 | 0.1612 | 0.6452 | 0.6452 | 0.6452 | 0.6452 | 0.0 | 0.6452 | 0.560805 | 1.0 | 1.1 | 0.6452 | 1.51664 |
|
|
301
|
+
| 09.01. | 0.146064 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.576992 | 0.87144 | 0.72856 | 0.08336 | 0.72856 | 0.72856 | 0.72856 | 0.72856 | 0.0 | 0.72856 | 0.584258 | 1.0 | 1.0 | 0.72856 | 1.576992 |
|
|
302
|
+
| 10.01. | 0.151431 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.683698 | 0.848432 | 0.751568 | 0.023008 | 0.751568 | 0.751568 | 0.751568 | 0.751568 | 0.0 | 0.751568 | 0.605722 | 1.0 | 1.0 | 0.751568 | 1.683698 |
|
|
303
|
+
| 11.01. | 0.158605 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.717289 | 0.93213 | 0.66787 | -0.083698 | 0.66787 | 0.66787 | 0.66787 | 0.66787 | 0.0 | 0.66787 | 0.634418 | 1.0 | 1.0 | 0.66787 | 1.717289 |
|
|
304
|
+
| 12.01. | 0.168312 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.675591 | 1.049419 | 0.550581 | -0.117289 | 0.550581 | 0.550581 | 0.550581 | 0.550581 | 0.0 | 0.550581 | 0.673248 | 1.0 | 1.0 | 0.550581 | 1.675591 |
|
|
305
|
+
| 13.01. | 0.179652 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.690748 | 1.12501 | 0.47499 | -0.075591 | 0.47499 | 0.47499 | 0.47499 | 0.47499 | 0.0 | 0.47499 | 0.718609 | 1.0 | 1.1 | 0.47499 | 1.690748 |
|
|
306
|
+
| 14.01. | 0.192953 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.698806 | 1.215758 | 0.384242 | -0.090748 | 0.384242 | 0.384242 | 0.384242 | 0.384242 | 0.0 | 0.384242 | 0.77181 | 1.0 | 1.2 | 0.384242 | 1.698806 |
|
|
307
|
+
| 15.01. | 0.208387 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.708339 | 1.314564 | 0.285436 | -0.098806 | 0.285436 | 0.285436 | 0.285436 | 0.285436 | 0.0 | 0.285436 | 0.833549 | 1.0 | 1.3 | 0.285436 | 1.708339 |
|
|
308
|
+
| 16.01. | 0.226162 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.712365 | 1.422903 | 0.177097 | -0.108339 | 0.177097 | 0.177097 | 0.177097 | 0.177097 | 0.0 | 0.177097 | 0.904647 | 1.0 | 1.4 | 0.177097 | 1.712365 |
|
|
309
|
+
| 17.01. | 0.246364 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.70784 | 1.535269 | 0.064731 | -0.112365 | 0.064731 | 0.064731 | 0.064731 | 0.064731 | 0.0 | 0.064731 | 0.985455 | 1.0 | 1.5 | 0.064731 | 1.70784 |
|
|
310
|
+
| 18.01. | 0.267964 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.707565 | 1.643109 | 0.0 | -0.10784 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.071855 | 1.0 | 1.6 | 0.0 | 1.707565 |
|
|
311
|
+
| 19.01. | 0.289564 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.737129 | 1.707565 | 0.0 | -0.107565 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.158255 | 1.0 | 1.7 | 0.0 | 1.737129 |
|
|
312
|
+
| 20.01. | 0.311164 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.806473 | 1.737129 | 0.0 | -0.137129 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.244655 | 1.0 | 1.8 | 0.0 | 1.806473 |
|
|
313
|
+
|
|
314
|
+
.. _dam_v001_remote_safety:
|
|
315
|
+
|
|
316
|
+
remote safety
|
|
317
|
+
_____________
|
|
318
|
+
|
|
319
|
+
While increasing parameter |RemoteDischargeMinimum| is always possible, it is often
|
|
320
|
+
advisable to modify parameter |RemoteDischargeSafety| instead:
|
|
321
|
+
|
|
322
|
+
>>> remotedischargeminimum(1.4)
|
|
323
|
+
>>> remotedischargesafety(0.5)
|
|
324
|
+
|
|
325
|
+
For the new configuration, the cross-section's discharge exceeds the threshold value at
|
|
326
|
+
each simulation time step. Additionally, the dam's final storage content is about 4 %
|
|
327
|
+
higher than in the last example, indicating more efficient water usage:
|
|
328
|
+
|
|
329
|
+
.. integration-test::
|
|
330
|
+
|
|
331
|
+
>>> test("dam_v001_remote_safety")
|
|
332
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
333
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
334
|
+
| 01.01. | 0.021495 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.800975 | 1.9 | 0.0 | -0.5 | 0.005 | 0.005 | 0.005 | 0.004875 | 0.0 | 0.004875 | 0.085979 | 1.0 | 1.8 | 0.004875 | 1.800975 |
|
|
335
|
+
| 02.01. | 0.04283 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.704398 | 1.7961 | 0.0 | -0.400975 | 0.012241 | 0.012241 | 0.012241 | 0.012241 | 0.0 | 0.012241 | 0.171321 | 1.0 | 1.7 | 0.012241 | 1.704398 |
|
|
336
|
+
| 03.01. | 0.06381 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.612105 | 1.692157 | 0.0 | -0.304398 | 0.02873 | 0.02873 | 0.02873 | 0.02873 | 0.0 | 0.02873 | 0.255239 | 1.0 | 1.6 | 0.02873 | 1.612105 |
|
|
337
|
+
| 04.01. | 0.084064 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.528115 | 1.583375 | 0.0 | -0.212105 | 0.062315 | 0.062315 | 0.062315 | 0.062315 | 0.0 | 0.062315 | 0.336255 | 1.0 | 1.5 | 0.062315 | 1.528115 |
|
|
338
|
+
| 05.01. | 0.10312 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.458321 | 1.4658 | 0.0 | -0.128115 | 0.11776 | 0.11776 | 0.11776 | 0.11776 | 0.0 | 0.11776 | 0.41248 | 1.0 | 1.4 | 0.11776 | 1.458321 |
|
|
339
|
+
| 06.01. | 0.11945 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.417471 | 1.340561 | 0.059439 | -0.058321 | 0.244 | 0.244 | 0.244 | 0.244 | 0.0 | 0.244 | 0.477799 | 1.0 | 1.3 | 0.244 | 1.417471 |
|
|
340
|
+
| 07.01. | 0.131189 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.430459 | 1.173472 | 0.226528 | -0.017471 | 0.456501 | 0.456501 | 0.456501 | 0.456501 | 0.0 | 0.456501 | 0.524757 | 1.0 | 1.2 | 0.456501 | 1.430459 |
|
|
341
|
+
| 08.01. | 0.138938 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.495831 | 0.973959 | 0.426041 | -0.030459 | 0.641277 | 0.641277 | 0.641277 | 0.641277 | 0.0 | 0.641277 | 0.555751 | 1.0 | 1.1 | 0.641277 | 1.495831 |
|
|
342
|
+
| 09.01. | 0.145591 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.556253 | 0.854555 | 0.545445 | -0.095831 | 0.69196 | 0.69196 | 0.69196 | 0.69196 | 0.0 | 0.69196 | 0.582366 | 1.0 | 1.0 | 0.69196 | 1.556253 |
|
|
343
|
+
| 10.01. | 0.153545 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.641175 | 0.864293 | 0.535707 | -0.156253 | 0.63179 | 0.63179 | 0.63179 | 0.63179 | 0.0 | 0.63179 | 0.614179 | 1.0 | 1.0 | 0.63179 | 1.641175 |
|
|
344
|
+
| 11.01. | 0.165646 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.612383 | 1.009385 | 0.390615 | -0.241175 | 0.439756 | 0.439756 | 0.439756 | 0.439756 | 0.0 | 0.439756 | 0.662584 | 1.0 | 1.0 | 0.439756 | 1.612383 |
|
|
345
|
+
| 12.01. | 0.180992 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.492545 | 1.172627 | 0.227373 | -0.212383 | 0.289549 | 0.289549 | 0.289549 | 0.289549 | 0.0 | 0.289549 | 0.723967 | 1.0 | 1.0 | 0.289549 | 1.492545 |
|
|
346
|
+
| 13.01. | 0.195104 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.480259 | 1.202996 | 0.197004 | -0.092545 | 0.346666 | 0.346666 | 0.346666 | 0.346666 | 0.0 | 0.346666 | 0.780415 | 1.0 | 1.1 | 0.346666 | 1.480259 |
|
|
347
|
+
| 14.01. | 0.207455 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.555141 | 1.133592 | 0.266408 | -0.080259 | 0.428173 | 0.428173 | 0.428173 | 0.428173 | 0.0 | 0.428173 | 0.829821 | 1.0 | 1.2 | 0.428173 | 1.555141 |
|
|
348
|
+
| 15.01. | 0.221065 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.678206 | 1.126968 | 0.273032 | -0.155141 | 0.36991 | 0.36991 | 0.36991 | 0.36991 | 0.0 | 0.36991 | 0.884261 | 1.0 | 1.3 | 0.36991 | 1.678206 |
|
|
349
|
+
| 16.01. | 0.239907 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.73662 | 1.308296 | 0.091704 | -0.278206 | 0.12769 | 0.12769 | 0.12769 | 0.12769 | 0.0 | 0.12769 | 0.959628 | 1.0 | 1.4 | 0.12769 | 1.73662 |
|
|
350
|
+
| 17.01. | 0.261039 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.709203 | 1.608931 | 0.0 | -0.33662 | 0.021686 | 0.021686 | 0.021686 | 0.021686 | 0.0 | 0.021686 | 1.044155 | 1.0 | 1.5 | 0.021686 | 1.709203 |
|
|
351
|
+
| 18.01. | 0.282043 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.689484 | 1.687518 | 0.0 | -0.309203 | 0.027557 | 0.027557 | 0.027557 | 0.027557 | 0.0 | 0.027557 | 1.128174 | 1.0 | 1.6 | 0.027557 | 1.689484 |
|
|
352
|
+
| 19.01. | 0.302938 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.736832 | 1.661926 | 0.0 | -0.289484 | 0.032675 | 0.032675 | 0.032675 | 0.032675 | 0.0 | 0.032675 | 1.211751 | 1.0 | 1.7 | 0.032675 | 1.736832 |
|
|
353
|
+
| 20.01. | 0.32407 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.827835 | 1.704158 | 0.0 | -0.336832 | 0.021645 | 0.021645 | 0.021645 | 0.021645 | 0.0 | 0.021645 | 1.29628 | 1.0 | 1.8 | 0.021645 | 1.827835 |
|
|
354
|
+
|
|
355
|
+
.. _dam_v001_sharp_near_minimum:
|
|
356
|
+
|
|
357
|
+
sharp near minimum
|
|
358
|
+
__________________
|
|
359
|
+
|
|
360
|
+
Building upon the last example, we subsequently increase the model's complexity. Next,
|
|
361
|
+
we introduce a local minimum water release of 0.2 m³/s:
|
|
362
|
+
|
|
363
|
+
>>> neardischargeminimumthreshold(0.2)
|
|
364
|
+
|
|
365
|
+
Consequently, |dam_v001| now releases discharge that is not required at the
|
|
366
|
+
cross-section downstream:
|
|
367
|
+
|
|
368
|
+
.. integration-test::
|
|
369
|
+
|
|
370
|
+
>>> test("dam_v001_sharp_near_minimum")
|
|
371
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
372
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
373
|
+
| 01.01. | 0.017282 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.839983 | 1.9 | 0.0 | -0.5 | 0.005 | 0.2 | 0.2 | 0.199917 | 0.0 | 0.199917 | 0.069127 | 1.0 | 1.8 | 0.199917 | 1.839983 |
|
|
374
|
+
| 02.01. | 0.034562 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.819967 | 1.640067 | 0.0 | -0.439983 | 0.008616 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.138247 | 1.0 | 1.7 | 0.2 | 1.819967 |
|
|
375
|
+
| 03.01. | 0.051842 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.779975 | 1.619967 | 0.0 | -0.419967 | 0.010321 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.207367 | 1.0 | 1.6 | 0.2 | 1.779975 |
|
|
376
|
+
| 04.01. | 0.069122 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.699992 | 1.579975 | 0.0 | -0.379975 | 0.014769 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.276487 | 1.0 | 1.5 | 0.2 | 1.699992 |
|
|
377
|
+
| 05.01. | 0.086402 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.499992 | 0.0 | -0.299992 | 0.029846 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.345607 | 1.0 | 1.4 | 0.2 | 1.6 |
|
|
378
|
+
| 06.01. | 0.103682 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.5 | 1.4 | 0.0 | -0.2 | 0.068641 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.414727 | 1.0 | 1.3 | 0.2 | 1.5 |
|
|
379
|
+
| 07.01. | 0.120042 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.408516 | 1.3 | 0.1 | -0.1 | 0.242578 | 0.242578 | 0.242578 | 0.242578 | 0.0 | 0.242578 | 0.480168 | 1.0 | 1.2 | 0.242578 | 1.408516 |
|
|
380
|
+
| 08.01. | 0.131398 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.371888 | 1.165937 | 0.234063 | -0.008516 | 0.474285 | 0.474285 | 0.474285 | 0.474285 | 0.0 | 0.474285 | 0.52559 | 1.0 | 1.1 | 0.474285 | 1.371888 |
|
|
381
|
+
| 09.01. | 0.136052 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.43939 | 0.897603 | 0.502397 | 0.028112 | 0.784512 | 0.784512 | 0.784512 | 0.784512 | 0.0 | 0.784512 | 0.544208 | 1.0 | 1.0 | 0.784512 | 1.43939 |
|
|
382
|
+
| 10.01. | 0.137124 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.67042 | 0.654878 | 0.745122 | -0.03939 | 0.95036 | 0.95036 | 0.95036 | 0.95036 | 0.0 | 0.95036 | 0.548497 | 1.0 | 1.0 | 0.95036 | 1.67042 |
|
|
383
|
+
| 11.01. | 0.143207 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.806604 | 0.720061 | 0.679939 | -0.27042 | 0.71839 | 0.71839 | 0.71839 | 0.71839 | 0.0 | 0.71839 | 0.572828 | 1.0 | 1.0 | 0.71839 | 1.806604 |
|
|
384
|
+
| 12.01. | 0.157821 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7156 | 1.088214 | 0.311786 | -0.406604 | 0.323424 | 0.323424 | 0.323424 | 0.323424 | 0.0 | 0.323424 | 0.631285 | 1.0 | 1.0 | 0.323424 | 1.7156 |
|
|
385
|
+
| 13.01. | 0.175101 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.579922 | 1.392176 | 0.007824 | -0.3156 | 0.03389 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.700405 | 1.0 | 1.1 | 0.2 | 1.579922 |
|
|
386
|
+
| 14.01. | 0.192381 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.488866 | 1.379922 | 0.020078 | -0.179922 | 0.100394 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.769525 | 1.0 | 1.2 | 0.2 | 1.488866 |
|
|
387
|
+
| 15.01. | 0.208271 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.525216 | 1.288866 | 0.111134 | -0.088866 | 0.264366 | 0.264366 | 0.264366 | 0.264366 | 0.0 | 0.264366 | 0.833083 | 1.0 | 1.3 | 0.264366 | 1.525216 |
|
|
388
|
+
| 16.01. | 0.224269 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.637612 | 1.260849 | 0.139151 | -0.125216 | 0.259326 | 0.259326 | 0.259326 | 0.259326 | 0.0 | 0.259326 | 0.897078 | 1.0 | 1.4 | 0.259326 | 1.637612 |
|
|
389
|
+
| 17.01. | 0.241549 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.74304 | 1.378286 | 0.021714 | -0.237612 | 0.072326 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.966198 | 1.0 | 1.5 | 0.2 | 1.74304 |
|
|
390
|
+
| 18.01. | 0.258829 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.824234 | 1.54304 | 0.0 | -0.34304 | 0.020494 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 1.035318 | 1.0 | 1.6 | 0.2 | 1.824234 |
|
|
391
|
+
| 19.01. | 0.276109 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.905933 | 1.624234 | 0.0 | -0.424234 | 0.009932 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 1.104438 | 1.0 | 1.7 | 0.2 | 1.905933 |
|
|
392
|
+
| 20.01. | 0.293389 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.0 | 1.705933 | 0.0 | -0.505933 | 0.004737 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 1.173558 | 1.0 | 1.8 | 0.2 | 2.0 |
|
|
393
|
+
|
|
394
|
+
.. _dam_v001_accuracy_drought:
|
|
395
|
+
|
|
396
|
+
accuracy drought
|
|
397
|
+
________________
|
|
398
|
+
|
|
399
|
+
One may have noted that the water release is only 0.19 m³/s instead of 0.2 m³/s on
|
|
400
|
+
January 1. This deviation is due to the low local truncation error of 0.01 m³/s in
|
|
401
|
+
combination with the simulation starting with a completely dry dam. To confirm this
|
|
402
|
+
assertion, we increase the required numerical accuracy temporarily:
|
|
403
|
+
|
|
404
|
+
>>> solver.abserrormax(1e-6)
|
|
405
|
+
|
|
406
|
+
Now, there is only a tiny deviation left in the last shown decimal place:
|
|
407
|
+
|
|
408
|
+
.. integration-test::
|
|
409
|
+
|
|
410
|
+
>>> test("dam_v001_accuracy_drought")
|
|
411
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
412
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
413
|
+
| 01.01. | 0.01728 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.84 | 1.9 | 0.0 | -0.5 | 0.005 | 0.2 | 0.2 | 0.199998 | 0.0 | 0.199998 | 0.06912 | 1.0 | 1.8 | 0.199998 | 1.84 |
|
|
414
|
+
| 02.01. | 0.03456 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.819999 | 1.640002 | 0.0 | -0.44 | 0.008615 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.13824 | 1.0 | 1.7 | 0.2 | 1.819999 |
|
|
415
|
+
| 03.01. | 0.05184 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.779999 | 1.619999 | 0.0 | -0.419999 | 0.010318 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.20736 | 1.0 | 1.6 | 0.2 | 1.779999 |
|
|
416
|
+
| 04.01. | 0.06912 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7 | 1.579999 | 0.0 | -0.379999 | 0.014766 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.27648 | 1.0 | 1.5 | 0.2 | 1.7 |
|
|
417
|
+
| 05.01. | 0.0864 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.5 | 0.0 | -0.3 | 0.029844 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.3456 | 1.0 | 1.4 | 0.2 | 1.6 |
|
|
418
|
+
| 06.01. | 0.10368 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.5 | 1.4 | 0.0 | -0.2 | 0.068641 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.41472 | 1.0 | 1.3 | 0.2 | 1.5 |
|
|
419
|
+
| 07.01. | 0.12004 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.408516 | 1.3 | 0.1 | -0.1 | 0.242578 | 0.242578 | 0.242578 | 0.242578 | 0.0 | 0.242578 | 0.480161 | 1.0 | 1.2 | 0.242578 | 1.408516 |
|
|
420
|
+
| 08.01. | 0.131396 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.371888 | 1.165937 | 0.234063 | -0.008516 | 0.474285 | 0.474285 | 0.474285 | 0.474285 | 0.0 | 0.474285 | 0.525583 | 1.0 | 1.1 | 0.474285 | 1.371888 |
|
|
421
|
+
| 09.01. | 0.13605 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.43939 | 0.897603 | 0.502397 | 0.028112 | 0.784512 | 0.784512 | 0.784512 | 0.784512 | 0.0 | 0.784512 | 0.544201 | 1.0 | 1.0 | 0.784512 | 1.43939 |
|
|
422
|
+
| 10.01. | 0.137123 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.67042 | 0.654878 | 0.745122 | -0.03939 | 0.95036 | 0.95036 | 0.95036 | 0.95036 | 0.0 | 0.95036 | 0.54849 | 1.0 | 1.0 | 0.95036 | 1.67042 |
|
|
423
|
+
| 11.01. | 0.143205 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.806604 | 0.720061 | 0.679939 | -0.27042 | 0.71839 | 0.71839 | 0.71839 | 0.71839 | 0.0 | 0.71839 | 0.572821 | 1.0 | 1.0 | 0.71839 | 1.806604 |
|
|
424
|
+
| 12.01. | 0.157819 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7156 | 1.088214 | 0.311786 | -0.406604 | 0.323424 | 0.323424 | 0.323424 | 0.323424 | 0.0 | 0.323424 | 0.631278 | 1.0 | 1.0 | 0.323424 | 1.7156 |
|
|
425
|
+
| 13.01. | 0.175099 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.579922 | 1.392176 | 0.007824 | -0.3156 | 0.03389 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.700398 | 1.0 | 1.1 | 0.2 | 1.579922 |
|
|
426
|
+
| 14.01. | 0.192379 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.488866 | 1.379922 | 0.020078 | -0.179922 | 0.100394 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.769518 | 1.0 | 1.2 | 0.2 | 1.488866 |
|
|
427
|
+
| 15.01. | 0.208269 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.525216 | 1.288866 | 0.111134 | -0.088866 | 0.264366 | 0.264366 | 0.264366 | 0.264366 | 0.0 | 0.264366 | 0.833076 | 1.0 | 1.3 | 0.264366 | 1.525216 |
|
|
428
|
+
| 16.01. | 0.224268 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.637612 | 1.260849 | 0.139151 | -0.125216 | 0.259326 | 0.259326 | 0.259326 | 0.259326 | 0.0 | 0.259326 | 0.897071 | 1.0 | 1.4 | 0.259326 | 1.637612 |
|
|
429
|
+
| 17.01. | 0.241548 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.74304 | 1.378286 | 0.021714 | -0.237612 | 0.072326 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.966191 | 1.0 | 1.5 | 0.2 | 1.74304 |
|
|
430
|
+
| 18.01. | 0.258828 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.824234 | 1.54304 | 0.0 | -0.34304 | 0.020494 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 1.035311 | 1.0 | 1.6 | 0.2 | 1.824234 |
|
|
431
|
+
| 19.01. | 0.276108 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.905933 | 1.624234 | 0.0 | -0.424234 | 0.009932 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 1.104431 | 1.0 | 1.7 | 0.2 | 1.905933 |
|
|
432
|
+
| 20.01. | 0.293388 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.0 | 1.705933 | 0.0 | -0.505933 | 0.004737 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 1.173551 | 1.0 | 1.8 | 0.2 | 2.0 |
|
|
433
|
+
|
|
434
|
+
>>> solver.abserrormax(1e-2)
|
|
435
|
+
|
|
436
|
+
.. _dam_v001_smooth_near_minimum:
|
|
437
|
+
|
|
438
|
+
smooth near minimum
|
|
439
|
+
___________________
|
|
440
|
+
|
|
441
|
+
To allow for a smooth transition of the water release in periods where the highest
|
|
442
|
+
demand switches from "remote" to "near" or the other way around, one can increase the
|
|
443
|
+
value of the |NearDischargeMinimumTolerance| parameter:
|
|
444
|
+
|
|
445
|
+
>>> neardischargeminimumtolerance(0.2)
|
|
446
|
+
|
|
447
|
+
It is easiest to inspect this "smooth switch" effect by comparing the "required
|
|
448
|
+
release" column of this and the last example:
|
|
449
|
+
|
|
450
|
+
.. integration-test::
|
|
451
|
+
|
|
452
|
+
>>> test("dam_v001_smooth_near_minimum")
|
|
453
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
454
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
455
|
+
| 01.01. | 0.017242 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.840351 | 1.9 | 0.0 | -0.5 | 0.005 | 0.210526 | 0.210526 | 0.201754 | 0.0 | 0.201754 | 0.068968 | 1.0 | 1.8 | 0.201754 | 1.840351 |
|
|
456
|
+
| 02.01. | 0.034286 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.822886 | 1.638597 | 0.0 | -0.440351 | 0.008588 | 0.21092 | 0.21092 | 0.21092 | 0.0 | 0.21092 | 0.137145 | 1.0 | 1.7 | 0.21092 | 1.822886 |
|
|
457
|
+
| 03.01. | 0.051327 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.787111 | 1.611966 | 0.0 | -0.422886 | 0.010053 | 0.211084 | 0.211084 | 0.211084 | 0.0 | 0.211084 | 0.205307 | 1.0 | 1.6 | 0.211084 | 1.787111 |
|
|
458
|
+
| 04.01. | 0.068358 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.71019 | 1.576027 | 0.0 | -0.387111 | 0.013858 | 0.211523 | 0.211523 | 0.211523 | 0.0 | 0.211523 | 0.273432 | 1.0 | 1.5 | 0.211523 | 1.71019 |
|
|
459
|
+
| 05.01. | 0.085353 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.611668 | 1.498667 | 0.0 | -0.31019 | 0.027322 | 0.213209 | 0.213209 | 0.213209 | 0.0 | 0.213209 | 0.34141 | 1.0 | 1.4 | 0.213209 | 1.611668 |
|
|
460
|
+
| 06.01. | 0.102221 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.513658 | 1.398459 | 0.001541 | -0.211668 | 0.064075 | 0.219043 | 0.219043 | 0.219043 | 0.0 | 0.219043 | 0.408885 | 1.0 | 1.3 | 0.219043 | 1.513658 |
|
|
461
|
+
| 07.01. | 0.117699 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.429416 | 1.294615 | 0.105385 | -0.113658 | 0.235523 | 0.283419 | 0.283419 | 0.283419 | 0.0 | 0.283419 | 0.470798 | 1.0 | 1.2 | 0.283419 | 1.429416 |
|
|
462
|
+
| 08.01. | 0.129035 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.395444 | 1.145997 | 0.254003 | -0.029416 | 0.470414 | 0.475212 | 0.475212 | 0.475212 | 0.0 | 0.475212 | 0.516139 | 1.0 | 1.1 | 0.475212 | 1.395444 |
|
|
463
|
+
| 09.01. | 0.134753 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.444071 | 0.920232 | 0.479768 | 0.004556 | 0.735001 | 0.735281 | 0.735281 | 0.735281 | 0.0 | 0.735281 | 0.539011 | 1.0 | 1.0 | 0.735281 | 1.444071 |
|
|
464
|
+
| 10.01. | 0.1371 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.643281 | 0.70879 | 0.69121 | -0.044071 | 0.891263 | 0.891315 | 0.891315 | 0.891315 | 0.0 | 0.891315 | 0.548402 | 1.0 | 1.0 | 0.891315 | 1.643281 |
|
|
465
|
+
| 11.01. | 0.143651 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.763981 | 0.751966 | 0.648034 | -0.243281 | 0.696325 | 0.696749 | 0.696749 | 0.696749 | 0.0 | 0.696749 | 0.574602 | 1.0 | 1.0 | 0.696749 | 1.763981 |
|
|
466
|
+
| 12.01. | 0.157336 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.692903 | 1.067232 | 0.332768 | -0.363981 | 0.349797 | 0.366406 | 0.366406 | 0.366406 | 0.0 | 0.366406 | 0.629345 | 1.0 | 1.0 | 0.366406 | 1.692903 |
|
|
467
|
+
| 13.01. | 0.174006 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.590367 | 1.326497 | 0.073503 | -0.292903 | 0.105231 | 0.228241 | 0.228241 | 0.228241 | 0.0 | 0.228241 | 0.696025 | 1.0 | 1.1 | 0.228241 | 1.590367 |
|
|
468
|
+
| 14.01. | 0.190637 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.516904 | 1.362126 | 0.037874 | -0.190367 | 0.111928 | 0.230054 | 0.230054 | 0.230054 | 0.0 | 0.230054 | 0.762548 | 1.0 | 1.2 | 0.230054 | 1.516904 |
|
|
469
|
+
| 15.01. | 0.206051 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.554409 | 1.28685 | 0.11315 | -0.116904 | 0.240436 | 0.286374 | 0.286374 | 0.286374 | 0.0 | 0.286374 | 0.824205 | 1.0 | 1.3 | 0.286374 | 1.554409 |
|
|
470
|
+
| 16.01. | 0.221608 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.662351 | 1.268035 | 0.131965 | -0.154409 | 0.229369 | 0.279807 | 0.279807 | 0.279807 | 0.0 | 0.279807 | 0.88643 | 1.0 | 1.4 | 0.279807 | 1.662351 |
|
|
471
|
+
| 17.01. | 0.238498 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.764451 | 1.382544 | 0.017456 | -0.262351 | 0.058622 | 0.21805 | 0.21805 | 0.21805 | 0.0 | 0.21805 | 0.953991 | 1.0 | 1.5 | 0.21805 | 1.764451 |
|
|
472
|
+
| 18.01. | 0.255521 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.842178 | 1.5464 | 0.0 | -0.364451 | 0.016958 | 0.211892 | 0.211892 | 0.211892 | 0.0 | 0.211892 | 1.022083 | 1.0 | 1.6 | 0.211892 | 1.842178 |
|
|
473
|
+
| 19.01. | 0.272565 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.920334 | 1.630286 | 0.0 | -0.442178 | 0.008447 | 0.210904 | 0.210904 | 0.210904 | 0.0 | 0.210904 | 1.090261 | 1.0 | 1.7 | 0.210904 | 1.920334 |
|
|
474
|
+
| 20.01. | 0.28962 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.011822 | 1.709429 | 0.0 | -0.520334 | 0.004155 | 0.210435 | 0.210435 | 0.210435 | 0.0 | 0.210435 | 1.158479 | 1.0 | 1.8 | 0.210435 | 2.011822 |
|
|
475
|
+
|
|
476
|
+
.. _dam_v001_restriction_enabled:
|
|
477
|
+
|
|
478
|
+
restriction enabled
|
|
479
|
+
___________________
|
|
480
|
+
|
|
481
|
+
|dam_v001| is forced to keep a certain degree of low flow variability when the option
|
|
482
|
+
flag |RestrictTargetedRelease| is enabled. Then, it is not allowed to release an
|
|
483
|
+
arbitrary amount of water when the inflow falls below the required minimum water
|
|
484
|
+
release. We show this by decreasing the inflow in the second half of the simulation
|
|
485
|
+
period to 0.1 m³/s:
|
|
486
|
+
|
|
487
|
+
>>> inflow.sequences.sim.series[10:] = 0.1
|
|
488
|
+
|
|
489
|
+
We maintain the value of parameter |NearDischargeMinimumThreshold| (0.2 m³/s) but
|
|
490
|
+
change |NearDischargeMinimumTolerance| to 0 m³/s for better comprehensibility:
|
|
491
|
+
|
|
492
|
+
>>> neardischargeminimumtolerance(0.0)
|
|
493
|
+
|
|
494
|
+
As expected, the actual release drops to 0.1 m³/s on January 11. But due to the delay
|
|
495
|
+
of the discharge released earlier, the strongest violation of the threshold value
|
|
496
|
+
occurs on January 13:
|
|
497
|
+
|
|
498
|
+
.. integration-test::
|
|
499
|
+
|
|
500
|
+
>>> test("dam_v001_restriction_enabled")
|
|
501
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
502
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
503
|
+
| 01.01. | 0.01746 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.838333 | 1.9 | 0.0 | -0.5 | 0.005 | 0.2 | 0.2 | 0.191667 | 0.0 | 0.191667 | 0.06984 | 1.0 | 1.8 | 0.191667 | 1.838333 |
|
|
504
|
+
| 02.01. | 0.03474 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.816667 | 1.646667 | 0.0 | -0.438333 | 0.008746 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.13896 | 1.0 | 1.7 | 0.2 | 1.816667 |
|
|
505
|
+
| 03.01. | 0.05202 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7775 | 1.616667 | 0.0 | -0.416667 | 0.010632 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.20808 | 1.0 | 1.6 | 0.2 | 1.7775 |
|
|
506
|
+
| 04.01. | 0.0693 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.699167 | 1.5775 | 0.0 | -0.3775 | 0.015099 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.2772 | 1.0 | 1.5 | 0.2 | 1.699167 |
|
|
507
|
+
| 05.01. | 0.08658 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.499167 | 0.0 | -0.299167 | 0.03006 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.34632 | 1.0 | 1.4 | 0.2 | 1.6 |
|
|
508
|
+
| 06.01. | 0.10386 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.5 | 1.4 | 0.0 | -0.2 | 0.068641 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.41544 | 1.0 | 1.3 | 0.2 | 1.5 |
|
|
509
|
+
| 07.01. | 0.12022 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.408516 | 1.3 | 0.1 | -0.1 | 0.242578 | 0.242578 | 0.242578 | 0.242578 | 0.0 | 0.242578 | 0.480881 | 1.0 | 1.2 | 0.242578 | 1.408516 |
|
|
510
|
+
| 08.01. | 0.131576 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.371888 | 1.165937 | 0.234063 | -0.008516 | 0.474285 | 0.474285 | 0.474285 | 0.474285 | 0.0 | 0.474285 | 0.526303 | 1.0 | 1.1 | 0.474285 | 1.371888 |
|
|
511
|
+
| 09.01. | 0.13623 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.43939 | 0.897603 | 0.502397 | 0.028112 | 0.784512 | 0.784512 | 0.784512 | 0.784512 | 0.0 | 0.784512 | 0.544921 | 1.0 | 1.0 | 0.784512 | 1.43939 |
|
|
512
|
+
| 10.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.67042 | 0.654878 | 0.745122 | -0.03939 | 0.95036 | 0.95036 | 0.95036 | 0.95036 | 0.0 | 0.95036 | 0.54921 | 1.0 | 1.0 | 0.95036 | 1.67042 |
|
|
513
|
+
| 11.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.682926 | 0.720061 | 0.679939 | -0.27042 | 0.71839 | 0.71839 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.0 | 0.1 | 1.682926 |
|
|
514
|
+
| 12.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.423559 | 1.582926 | 0.0 | -0.282926 | 0.034564 | 0.2 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.0 | 0.1 | 1.423559 |
|
|
515
|
+
| 13.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.285036 | 1.323559 | 0.076441 | -0.023559 | 0.299482 | 0.299482 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.1 | 0.1 | 1.285036 |
|
|
516
|
+
| 14.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.3 | 1.185036 | 0.214964 | 0.114964 | 0.585979 | 0.585979 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.2 | 0.1 | 1.3 |
|
|
517
|
+
| 15.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.4 | 1.2 | 0.2 | 0.1 | 0.557422 | 0.557422 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.3 | 0.1 | 1.4 |
|
|
518
|
+
| 16.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.5 | 1.3 | 0.1 | 0.0 | 0.35 | 0.35 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.4 | 0.1 | 1.5 |
|
|
519
|
+
| 17.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.6 | 1.4 | 0.0 | -0.1 | 0.142578 | 0.2 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.5 | 0.1 | 1.6 |
|
|
520
|
+
| 18.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.7 | 1.5 | 0.0 | -0.2 | 0.068641 | 0.2 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.6 | 0.1 | 1.7 |
|
|
521
|
+
| 19.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.8 | 1.6 | 0.0 | -0.3 | 0.029844 | 0.2 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.7 | 0.1 | 1.8 |
|
|
522
|
+
| 20.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.9 | 1.7 | 0.0 | -0.4 | 0.012348 | 0.2 | 0.1 | 0.1 | 0.0 | 0.1 | 0.54921 | 0.1 | 1.8 | 0.1 | 1.9 |
|
|
523
|
+
|
|
524
|
+
.. _dam_v001_restriction_disabled:
|
|
525
|
+
|
|
526
|
+
restriction disabled
|
|
527
|
+
____________________
|
|
528
|
+
|
|
529
|
+
This modification of the last example shows that with |RestrictTargetedRelease| being
|
|
530
|
+
disabled, water release can always exceed the current inflow:
|
|
531
|
+
|
|
532
|
+
.. integration-test::
|
|
533
|
+
|
|
534
|
+
>>> restricttargetedrelease(False)
|
|
535
|
+
>>> test("dam_v001_restriction_disabled")
|
|
536
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
537
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
538
|
+
| 01.01. | 0.01746 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.838333 | 1.9 | 0.0 | -0.5 | 0.005 | 0.2 | 0.2 | 0.191667 | 0.0 | 0.191667 | 0.06984 | 1.0 | 1.8 | 0.191667 | 1.838333 |
|
|
539
|
+
| 02.01. | 0.03474 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.816667 | 1.646667 | 0.0 | -0.438333 | 0.008746 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.13896 | 1.0 | 1.7 | 0.2 | 1.816667 |
|
|
540
|
+
| 03.01. | 0.05202 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.7775 | 1.616667 | 0.0 | -0.416667 | 0.010632 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.20808 | 1.0 | 1.6 | 0.2 | 1.7775 |
|
|
541
|
+
| 04.01. | 0.0693 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.699167 | 1.5775 | 0.0 | -0.3775 | 0.015099 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.2772 | 1.0 | 1.5 | 0.2 | 1.699167 |
|
|
542
|
+
| 05.01. | 0.08658 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.6 | 1.499167 | 0.0 | -0.299167 | 0.03006 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.34632 | 1.0 | 1.4 | 0.2 | 1.6 |
|
|
543
|
+
| 06.01. | 0.10386 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.5 | 1.4 | 0.0 | -0.2 | 0.068641 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.41544 | 1.0 | 1.3 | 0.2 | 1.5 |
|
|
544
|
+
| 07.01. | 0.12022 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.408516 | 1.3 | 0.1 | -0.1 | 0.242578 | 0.242578 | 0.242578 | 0.242578 | 0.0 | 0.242578 | 0.480881 | 1.0 | 1.2 | 0.242578 | 1.408516 |
|
|
545
|
+
| 08.01. | 0.131576 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.371888 | 1.165937 | 0.234063 | -0.008516 | 0.474285 | 0.474285 | 0.474285 | 0.474285 | 0.0 | 0.474285 | 0.526303 | 1.0 | 1.1 | 0.474285 | 1.371888 |
|
|
546
|
+
| 09.01. | 0.13623 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.43939 | 0.897603 | 0.502397 | 0.028112 | 0.784512 | 0.784512 | 0.784512 | 0.784512 | 0.0 | 0.784512 | 0.544921 | 1.0 | 1.0 | 0.784512 | 1.43939 |
|
|
547
|
+
| 10.01. | 0.137303 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.67042 | 0.654878 | 0.745122 | -0.03939 | 0.95036 | 0.95036 | 0.95036 | 0.95036 | 0.0 | 0.95036 | 0.54921 | 1.0 | 1.0 | 0.95036 | 1.67042 |
|
|
548
|
+
| 11.01. | 0.123945 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.806604 | 0.720061 | 0.679939 | -0.27042 | 0.71839 | 0.71839 | 0.71839 | 0.71839 | 0.0 | 0.71839 | 0.495781 | 0.1 | 1.0 | 0.71839 | 1.806604 |
|
|
549
|
+
| 12.01. | 0.119119 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.7156 | 1.088214 | 0.311786 | -0.406604 | 0.323424 | 0.323424 | 0.323424 | 0.323424 | 0.0 | 0.323424 | 0.476477 | 0.1 | 1.0 | 0.323424 | 1.7156 |
|
|
550
|
+
| 13.01. | 0.116959 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.579922 | 1.392176 | 0.007824 | -0.3156 | 0.03389 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.467837 | 0.1 | 1.1 | 0.2 | 1.579922 |
|
|
551
|
+
| 14.01. | 0.114799 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.488866 | 1.379922 | 0.020078 | -0.179922 | 0.100394 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.459197 | 0.1 | 1.2 | 0.2 | 1.488866 |
|
|
552
|
+
| 15.01. | 0.111249 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.525216 | 1.288866 | 0.111134 | -0.088866 | 0.264366 | 0.264366 | 0.264366 | 0.264366 | 0.0 | 0.264366 | 0.444996 | 0.1 | 1.3 | 0.264366 | 1.525216 |
|
|
553
|
+
| 16.01. | 0.107808 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.637612 | 1.260849 | 0.139151 | -0.125216 | 0.259326 | 0.259326 | 0.259326 | 0.259326 | 0.0 | 0.259326 | 0.43123 | 0.1 | 1.4 | 0.259326 | 1.637612 |
|
|
554
|
+
| 17.01. | 0.105648 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.74304 | 1.378286 | 0.021714 | -0.237612 | 0.072326 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.42259 | 0.1 | 1.5 | 0.2 | 1.74304 |
|
|
555
|
+
| 18.01. | 0.103488 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.824234 | 1.54304 | 0.0 | -0.34304 | 0.020494 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.41395 | 0.1 | 1.6 | 0.2 | 1.824234 |
|
|
556
|
+
| 19.01. | 0.101328 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 1.905933 | 1.624234 | 0.0 | -0.424234 | 0.009932 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.40531 | 0.1 | 1.7 | 0.2 | 1.905933 |
|
|
557
|
+
| 20.01. | 0.099168 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 2.0 | 1.705933 | 0.0 | -0.505933 | 0.004737 | 0.2 | 0.2 | 0.2 | 0.0 | 0.2 | 0.39667 | 0.1 | 1.8 | 0.2 | 2.0 |
|
|
558
|
+
|
|
559
|
+
>>> restricttargetedrelease(True)
|
|
560
|
+
|
|
561
|
+
.. _dam_v001_sharp_stage_minimum:
|
|
562
|
+
|
|
563
|
+
sharp stage minimum
|
|
564
|
+
___________________
|
|
565
|
+
|
|
566
|
+
Another issue relevant to the simulation of drought events is the possible restriction
|
|
567
|
+
of water release due to limited water availability. To focus on this, we reset the
|
|
568
|
+
parameter |NearDischargeMinimumThreshold| to 0 m³/s and define smaller inflow values
|
|
569
|
+
that constantly decrease from 0.2 m³/s to 0.0 m³/s:
|
|
570
|
+
|
|
571
|
+
>>> neardischargeminimumthreshold(0.0)
|
|
572
|
+
>>> inflow.sequences.sim.series = numpy.linspace(0.2, 0.0, 20)
|
|
573
|
+
|
|
574
|
+
Now, the storage content increases only until January 5. Afterwards, the dam starts to
|
|
575
|
+
run dry. On January 11, it is virtually empty, but there are some fluctuations in the
|
|
576
|
+
water volume around 0 m³. The strongest negative deviation from the "normal empty
|
|
577
|
+
value" of 0 m³ occurs at the end of January 12, where the storage volume is -666 m³:
|
|
578
|
+
|
|
579
|
+
.. integration-test::
|
|
580
|
+
|
|
581
|
+
>>> test("dam_v001_sharp_stage_minimum")
|
|
582
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
583
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
584
|
+
| 01.01. | 0.004239 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.2 | 1.80075 | 1.9 | 0.0 | -0.5 | 0.005 | 0.005 | 0.005 | 0.00375 | 0.0 | 0.00375 | 0.016956 | 0.2 | 1.8 | 0.00375 | 1.80075 |
|
|
585
|
+
| 02.01. | 0.008067 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.189474 | 1.703953 | 1.797 | 0.0 | -0.40075 | 0.012265 | 0.012265 | 0.012265 | 0.012265 | 0.0 | 0.012265 | 0.032267 | 0.189474 | 1.7 | 0.012265 | 1.703953 |
|
|
586
|
+
| 03.01. | 0.011309 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.178947 | 1.611799 | 1.691688 | 0.0 | -0.303953 | 0.028841 | 0.028841 | 0.028841 | 0.028841 | 0.0 | 0.028841 | 0.045236 | 0.178947 | 1.6 | 0.028841 | 1.611799 |
|
|
587
|
+
| 04.01. | 0.013598 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.168421 | 1.528085 | 1.582958 | 0.0 | -0.211799 | 0.062468 | 0.062468 | 0.062468 | 0.062468 | 0.0 | 0.062468 | 0.05439 | 0.168421 | 1.5 | 0.062468 | 1.528085 |
|
|
588
|
+
| 05.01. | 0.014464 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.157895 | 1.458423 | 1.465616 | 0.0 | -0.128085 | 0.117784 | 0.117784 | 0.117784 | 0.117784 | 0.0 | 0.117784 | 0.057856 | 0.157895 | 1.4 | 0.117784 | 1.458423 |
|
|
589
|
+
| 06.01. | 0.012381 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.147368 | 1.417501 | 1.340639 | 0.059361 | -0.058423 | 0.243813 | 0.243813 | 0.243813 | 0.243813 | 0.0 | 0.243813 | 0.049523 | 0.147368 | 1.3 | 0.243813 | 1.417501 |
|
|
590
|
+
| 07.01. | 0.005482 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.136842 | 1.430358 | 1.173688 | 0.226312 | -0.017501 | 0.456251 | 0.456251 | 0.456251 | 0.456251 | 0.0 | 0.456251 | 0.021926 | 0.136842 | 1.2 | 0.456251 | 1.430358 |
|
|
591
|
+
| 08.01. | -0.00006 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.126316 | 1.443995 | 0.974107 | 0.425893 | -0.030358 | 0.641243 | 0.641243 | 0.641243 | 0.382861 | 0.0 | 0.382861 | -0.000239 | 0.126316 | 1.1 | 0.382861 | 1.443995 |
|
|
592
|
+
| 09.01. | -0.000053 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.115789 | 1.337495 | 1.061134 | 0.338866 | -0.043995 | 0.539003 | 0.539003 | 0.539003 | 0.11547 | 0.0 | 0.11547 | -0.000212 | 0.115789 | 1.0 | 0.11547 | 1.337495 |
|
|
593
|
+
| 10.01. | -0.00012 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.105263 | 1.228344 | 1.222025 | 0.177975 | 0.062505 | 0.497868 | 0.497868 | 0.497868 | 0.108362 | 0.0 | 0.108362 | -0.00048 | 0.105263 | 1.0 | 0.108362 | 1.228344 |
|
|
594
|
+
| 11.01. | -0.000004 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.094737 | 1.134148 | 1.119981 | 0.280019 | 0.171656 | 0.694448 | 0.694448 | 0.694448 | 0.089381 | 0.0 | 0.089381 | -0.000017 | 0.094737 | 1.0 | 0.089381 | 1.134148 |
|
|
595
|
+
| 12.01. | -0.000166 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.084211 | 1.098152 | 1.044768 | 0.355232 | 0.265852 | 0.815265 | 0.815265 | 0.815265 | 0.091721 | 0.0 | 0.091721 | -0.000666 | 0.084211 | 1.0 | 0.091721 | 1.098152 |
|
|
596
|
+
| 13.01. | -0.000042 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.073684 | 1.18792 | 1.006431 | 0.393569 | 0.301848 | 0.864198 | 0.864198 | 0.864198 | 0.067904 | 0.0 | 0.067904 | -0.000166 | 0.073684 | 1.1 | 0.067904 | 1.18792 |
|
|
597
|
+
| 14.01. | -0.000135 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.063158 | 1.277116 | 1.120015 | 0.279985 | 0.21208 | 0.717657 | 0.717657 | 0.717657 | 0.067501 | 0.0 | 0.067501 | -0.000542 | 0.063158 | 1.2 | 0.067501 | 1.277116 |
|
|
598
|
+
| 15.01. | -0.000004 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.052632 | 1.365852 | 1.209616 | 0.190384 | 0.122884 | 0.568242 | 0.568242 | 0.568242 | 0.046544 | 0.0 | 0.046544 | -0.000016 | 0.052632 | 1.3 | 0.046544 | 1.365852 |
|
|
599
|
+
| 16.01. | -0.000133 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.042105 | 1.455275 | 1.319309 | 0.080691 | 0.034148 | 0.369601 | 0.369601 | 0.369601 | 0.048083 | 0.0 | 0.048083 | -0.000532 | 0.042105 | 1.4 | 0.048083 | 1.455275 |
|
|
600
|
+
| 17.01. | -0.000038 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.031579 | 1.54538 | 1.407192 | 0.0 | -0.055275 | 0.187833 | 0.187833 | 0.187833 | 0.027168 | 0.0 | 0.027168 | -0.000151 | 0.031579 | 1.5 | 0.027168 | 1.54538 |
|
|
601
|
+
| 18.01. | -0.000052 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.021053 | 1.634293 | 1.518212 | 0.0 | -0.14538 | 0.104078 | 0.104078 | 0.104078 | 0.021731 | 0.0 | 0.021731 | -0.00021 | 0.021053 | 1.6 | 0.021731 | 1.634293 |
|
|
602
|
+
| 19.01. | -0.000106 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.010526 | 1.724252 | 1.612561 | 0.0 | -0.234293 | 0.052016 | 0.052016 | 0.052016 | 0.013004 | 0.0 | 0.013004 | -0.000424 | 0.010526 | 1.7 | 0.013004 | 1.724252 |
|
|
603
|
+
| 20.01. | -0.000106 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.814438 | 1.711248 | 0.0 | -0.324252 | 0.02417 | 0.02417 | 0.012085 | 0.0 | 0.0 | 0.0 | -0.000424 | 0.0 | 1.8 | 0.0 | 1.814438 |
|
|
604
|
+
|
|
605
|
+
The fluctuation is due to the discontinuous configuration of the equation underlying
|
|
606
|
+
method |Calc_ActualRelease_V1| around |WaterLevelMinimumThreshold| and the limited
|
|
607
|
+
accuracy of the applied numerical integration algorithm. Theoretically, we could
|
|
608
|
+
decrease |dam_solver.AbsErrorMax| to reduce this problem significantly. However,
|
|
609
|
+
this could result in huge computation times, as the implemented Runge-Kutta method is
|
|
610
|
+
generally incapable of handling discontinuities. Hence, the algorithm would have to
|
|
611
|
+
substantially decrease the internal calculation time step.
|
|
612
|
+
|
|
613
|
+
.. _dam_v001_smooth_stage_minimum:
|
|
614
|
+
|
|
615
|
+
smooth stage minimum
|
|
616
|
+
____________________
|
|
617
|
+
|
|
618
|
+
To solve the discussed problem more efficiently than by decreasing
|
|
619
|
+
|dam_solver.AbsErrorMax|, we can increase |NearDischargeMinimumTolerance|, which is a
|
|
620
|
+
smoothing parameter responsible for smoothing all water level-related discontinuities
|
|
621
|
+
around |WaterLevelMinimumThreshold|:
|
|
622
|
+
|
|
623
|
+
>>> waterlevelminimumtolerance(0.01)
|
|
624
|
+
|
|
625
|
+
One must also slightly increase |WaterLevelMinimumThreshold| to avoid the fluctuation
|
|
626
|
+
and negative water volumes:
|
|
627
|
+
|
|
628
|
+
>>> waterlevelminimumthreshold(0.005)
|
|
629
|
+
|
|
630
|
+
Now the dam empties without any fluctuations. The lowest storage content of 541 m³
|
|
631
|
+
occurs on January 14. After that date, the dam refills to a certain degree due to the
|
|
632
|
+
decreasing remote demand. Note that we can circumvent negative water volumes in this
|
|
633
|
+
example, but this would not happen if the low flow period were prolonged:
|
|
634
|
+
|
|
635
|
+
.. integration-test::
|
|
636
|
+
|
|
637
|
+
>>> test("dam_v001_smooth_stage_minimum")
|
|
638
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
639
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
640
|
+
| 01.01. | 0.004292 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.2 | 1.800256 | 1.9 | 0.0 | -0.5 | 0.005 | 0.005 | 0.005 | 0.001282 | 0.0 | 0.001282 | 0.017169 | 0.2 | 1.8 | 0.001282 | 1.800256 |
|
|
641
|
+
| 02.01. | 0.00822 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.189474 | 1.702037 | 1.798975 | 0.0 | -0.400256 | 0.01232 | 0.01232 | 0.01232 | 0.007624 | 0.0 | 0.007624 | 0.032881 | 0.189474 | 1.7 | 0.007624 | 1.702037 |
|
|
642
|
+
| 03.01. | 0.011526 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.178947 | 1.608618 | 1.694414 | 0.0 | -0.302037 | 0.029323 | 0.029323 | 0.029323 | 0.025921 | 0.0 | 0.025921 | 0.046103 | 0.178947 | 1.6 | 0.025921 | 1.608618 |
|
|
643
|
+
| 04.01. | 0.013824 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.168421 | 1.525188 | 1.582697 | 0.0 | -0.208618 | 0.064084 | 0.064084 | 0.064084 | 0.062022 | 0.0 | 0.062022 | 0.055296 | 0.168421 | 1.5 | 0.062022 | 1.525188 |
|
|
644
|
+
| 05.01. | 0.014675 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.157895 | 1.457043 | 1.463166 | 0.0 | -0.125188 | 0.120198 | 0.120198 | 0.120198 | 0.118479 | 0.0 | 0.118479 | 0.058701 | 0.157895 | 1.4 | 0.118479 | 1.457043 |
|
|
645
|
+
| 06.01. | 0.012626 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.147368 | 1.417039 | 1.338564 | 0.061436 | -0.057043 | 0.247367 | 0.247367 | 0.247367 | 0.242243 | 0.0 | 0.242243 | 0.050504 | 0.147368 | 1.3 | 0.242243 | 1.417039 |
|
|
646
|
+
| 07.01. | 0.006999 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.136842 | 1.418109 | 1.174796 | 0.225204 | -0.017039 | 0.45567 | 0.45567 | 0.45567 | 0.397328 | 0.0 | 0.397328 | 0.027998 | 0.136842 | 1.2 | 0.397328 | 1.418109 |
|
|
647
|
+
| 08.01. | 0.003447 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.126316 | 1.401604 | 1.020781 | 0.379219 | -0.018109 | 0.608464 | 0.608464 | 0.608464 | 0.290761 | 0.0 | 0.290761 | 0.01379 | 0.126316 | 1.1 | 0.290761 | 1.401604 |
|
|
648
|
+
| 09.01. | 0.002616 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.115789 | 1.290584 | 1.110843 | 0.289157 | -0.001604 | 0.537314 | 0.537314 | 0.537314 | 0.154283 | 0.0 | 0.154283 | 0.010464 | 0.115789 | 1.0 | 0.154283 | 1.290584 |
|
|
649
|
+
| 10.01. | 0.001898 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.105263 | 1.216378 | 1.136301 | 0.263699 | 0.109416 | 0.629775 | 0.629775 | 0.629775 | 0.138519 | 0.0 | 0.138519 | 0.007591 | 0.105263 | 1.0 | 0.138519 | 1.216378 |
|
|
650
|
+
| 11.01. | 0.001218 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.094737 | 1.15601 | 1.077859 | 0.322141 | 0.183622 | 0.744091 | 0.744091 | 0.744091 | 0.126207 | 0.0 | 0.126207 | 0.004871 | 0.094737 | 1.0 | 0.126207 | 1.15601 |
|
|
651
|
+
| 12.01. | 0.000667 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.084211 | 1.129412 | 1.029803 | 0.370197 | 0.24399 | 0.82219 | 0.82219 | 0.82219 | 0.109723 | 0.0 | 0.109723 | 0.002667 | 0.084211 | 1.0 | 0.109723 | 1.129412 |
|
|
652
|
+
| 13.01. | 0.000257 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.073684 | 1.214132 | 1.019689 | 0.380311 | 0.270588 | 0.841916 | 0.841916 | 0.841916 | 0.092645 | 0.0 | 0.092645 | 0.001029 | 0.073684 | 1.1 | 0.092645 | 1.214132 |
|
|
653
|
+
| 14.01. | 0.000135 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.063158 | 1.296357 | 1.121487 | 0.278513 | 0.185868 | 0.701812 | 0.701812 | 0.701812 | 0.068806 | 0.0 | 0.068806 | 0.000541 | 0.063158 | 1.2 | 0.068806 | 1.296357 |
|
|
654
|
+
| 15.01. | 0.000154 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.052632 | 1.376644 | 1.227551 | 0.172449 | 0.103643 | 0.533258 | 0.533258 | 0.533258 | 0.051779 | 0.0 | 0.051779 | 0.000615 | 0.052632 | 1.3 | 0.051779 | 1.376644 |
|
|
655
|
+
| 16.01. | 0.000296 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.042105 | 1.457718 | 1.324865 | 0.075135 | 0.023356 | 0.351863 | 0.351863 | 0.351863 | 0.035499 | 0.0 | 0.035499 | 0.001185 | 0.042105 | 1.4 | 0.035499 | 1.457718 |
|
|
656
|
+
| 17.01. | 0.000541 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.031579 | 1.540662 | 1.422218 | 0.0 | -0.057718 | 0.185207 | 0.185207 | 0.185207 | 0.02024 | 0.0 | 0.02024 | 0.002165 | 0.031579 | 1.5 | 0.02024 | 1.540662 |
|
|
657
|
+
| 18.01. | 0.00072 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.021053 | 1.626481 | 1.520422 | 0.0 | -0.140662 | 0.107697 | 0.107697 | 0.107697 | 0.012785 | 0.0 | 0.012785 | 0.002879 | 0.021053 | 1.6 | 0.012785 | 1.626481 |
|
|
658
|
+
| 19.01. | 0.000798 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.010526 | 1.71612 | 1.613695 | 0.0 | -0.226481 | 0.055458 | 0.055458 | 0.055458 | 0.006918 | 0.0 | 0.006918 | 0.003191 | 0.010526 | 1.7 | 0.006918 | 1.71612 |
|
|
659
|
+
| 20.01. | 0.000763 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.808953 | 1.709201 | 0.0 | -0.31612 | 0.025948 | 0.025948 | 0.012974 | 0.001631 | 0.0 | 0.001631 | 0.00305 | 0.0 | 1.8 | 0.001631 | 1.808953 |
|
|
660
|
+
|
|
661
|
+
There is still some inaccuracy in the results. For example, the last outflow value is
|
|
662
|
+
smaller than |dam_solver.AbsErrorMax|. However, smoothing the discontinuous
|
|
663
|
+
relationship would now allow defining a smaller local truncation error without
|
|
664
|
+
increasing computation times too much.
|
|
665
|
+
|
|
666
|
+
.. _dam_v001_evaporation:
|
|
667
|
+
|
|
668
|
+
evaporation
|
|
669
|
+
___________
|
|
670
|
+
|
|
671
|
+
In agreement with the :ref:`evaporation example <dam_llake_evaporation>` of application
|
|
672
|
+
model |dam_llake|, we add an |evap_ret_io| submodel and set the (unadjusted) potential
|
|
673
|
+
evaporation to 1 mm/d for the first ten days and 5 mm/d for the last ten days:
|
|
674
|
+
|
|
675
|
+
>>> with model.add_pemodel_v1("evap_ret_io") as pemodel:
|
|
676
|
+
... evapotranspirationfactor(1.0)
|
|
677
|
+
>>> pemodel.prepare_inputseries()
|
|
678
|
+
>>> pemodel.sequences.inputs.referenceevapotranspiration.series = 10 * [1.0] + 10 * [5.0]
|
|
679
|
+
|
|
680
|
+
The adjusted evaporation follows the given potential evaporation with a short delay.
|
|
681
|
+
The increase in evaporation results in a faster decline in the stored water volume.
|
|
682
|
+
Soon after, actual evaporation drops to zero due to the dam running dry:
|
|
683
|
+
|
|
684
|
+
.. integration-test::
|
|
685
|
+
|
|
686
|
+
>>> test("dam_v001_evaporation")
|
|
687
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
688
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
689
|
+
| 01.01. | 0.004034 | 0.0 | 0.0 | 1.0 | 0.016 | 0.012 | 0.2 | 1.800247 | 1.9 | 0.0 | -0.5 | 0.005 | 0.005 | 0.005 | 0.001234 | 0.0 | 0.001234 | 0.016137 | 0.2 | 1.8 | 0.001234 | 1.800247 |
|
|
690
|
+
| 02.01. | 0.007558 | 0.0 | 0.0 | 1.0 | 0.0192 | 0.0192 | 0.189474 | 1.701922 | 1.799013 | 0.0 | -0.400247 | 0.012321 | 0.012321 | 0.012321 | 0.00714 | 0.0 | 0.00714 | 0.030231 | 0.189474 | 1.7 | 0.00714 | 1.701922 |
|
|
691
|
+
| 03.01. | 0.010459 | 0.0 | 0.0 | 1.0 | 0.01984 | 0.01984 | 0.178947 | 1.608188 | 1.694781 | 0.0 | -0.301922 | 0.029352 | 0.029352 | 0.029352 | 0.02481 | 0.0 | 0.02481 | 0.041835 | 0.178947 | 1.6 | 0.02481 | 1.608188 |
|
|
692
|
+
| 04.01. | 0.012351 | 0.0 | 0.0 | 1.0 | 0.019968 | 0.019968 | 0.168421 | 1.524357 | 1.583379 | 0.0 | -0.208188 | 0.064305 | 0.064305 | 0.064305 | 0.060838 | 0.0 | 0.060838 | 0.049405 | 0.168421 | 1.5 | 0.060838 | 1.524357 |
|
|
693
|
+
| 05.01. | 0.012797 | 0.0 | 0.0 | 1.0 | 0.019994 | 0.019994 | 0.157895 | 1.455947 | 1.463519 | 0.0 | -0.124357 | 0.120897 | 0.120897 | 0.120897 | 0.117273 | 0.0 | 0.117273 | 0.051187 | 0.157895 | 1.4 | 0.117273 | 1.455947 |
|
|
694
|
+
| 06.01. | 0.010468 | 0.0 | 0.0 | 1.0 | 0.019999 | 0.019999 | 0.147368 | 1.414679 | 1.338674 | 0.061326 | -0.055947 | 0.248435 | 0.248435 | 0.248435 | 0.235187 | 0.0 | 0.235187 | 0.041871 | 0.147368 | 1.3 | 0.235187 | 1.414679 |
|
|
695
|
+
| 07.01. | 0.005562 | 0.0 | 0.0 | 1.0 | 0.02 | 0.02 | 0.136842 | 1.404136 | 1.179492 | 0.220508 | -0.014679 | 0.453671 | 0.453671 | 0.453671 | 0.343975 | 0.0 | 0.343975 | 0.022247 | 0.136842 | 1.2 | 0.343975 | 1.404136 |
|
|
696
|
+
| 08.01. | 0.002981 | 0.0 | 0.0 | 1.0 | 0.02 | 0.02 | 0.126316 | 1.36503 | 1.06016 | 0.33984 | -0.004136 | 0.585089 | 0.585089 | 0.585089 | 0.225783 | 0.0 | 0.225783 | 0.011925 | 0.126316 | 1.1 | 0.225783 | 1.36503 |
|
|
697
|
+
| 09.01. | 0.002144 | 0.0 | 0.0 | 1.0 | 0.02 | 0.02 | 0.115789 | 1.243934 | 1.139247 | 0.260753 | 0.03497 | 0.550583 | 0.550583 | 0.550583 | 0.134548 | 0.0 | 0.134548 | 0.008576 | 0.115789 | 1.0 | 0.134548 | 1.243934 |
|
|
698
|
+
| 10.01. | 0.001291 | 0.0 | 0.0 | 1.0 | 0.02 | 0.019988 | 0.105263 | 1.180908 | 1.109386 | 0.290614 | 0.156066 | 0.694398 | 0.694398 | 0.694398 | 0.124783 | 0.0 | 0.124783 | 0.005163 | 0.105263 | 1.0 | 0.124783 | 1.180908 |
|
|
699
|
+
| 11.01. | 0.000063 | 0.0 | 0.0 | 5.0 | 0.084 | 0.063974 | 0.094737 | 1.130378 | 1.056125 | 0.343875 | 0.219092 | 0.784979 | 0.784979 | 0.784979 | 0.08761 | 0.0 | 0.08761 | 0.000251 | 0.094737 | 1.0 | 0.08761 | 1.130378 |
|
|
700
|
+
| 12.01. | -0.000321 | 0.0 | 0.0 | 5.0 | 0.0968 | 0.032045 | 0.084211 | 1.099925 | 1.042768 | 0.357232 | 0.269622 | 0.81852 | 0.81852 | 0.81852 | 0.069957 | 0.0 | 0.069957 | -0.001286 | 0.084211 | 1.0 | 0.069957 | 1.099925 |
|
|
701
|
+
| 13.01. | -0.000374 | 0.0 | 0.0 | 5.0 | 0.09936 | 0.012511 | 0.073684 | 1.179462 | 1.029968 | 0.370032 | 0.300075 | 0.840207 | 0.840207 | 0.840207 | 0.063591 | 0.0 | 0.063591 | -0.001495 | 0.073684 | 1.1 | 0.063591 | 1.179462 |
|
|
702
|
+
| 14.01. | -0.000426 | 0.0 | 0.0 | 5.0 | 0.099872 | 0.011118 | 0.063158 | 1.26608 | 1.115871 | 0.284129 | 0.220538 | 0.72592 | 0.72592 | 0.72592 | 0.054477 | 0.0 | 0.054477 | -0.001705 | 0.063158 | 1.2 | 0.054477 | 1.26608 |
|
|
703
|
+
| 15.01. | -0.000452 | 0.0 | 0.0 | 5.0 | 0.099974 | 0.010651 | 0.052632 | 1.356502 | 1.211603 | 0.188397 | 0.13392 | 0.575373 | 0.575373 | 0.575373 | 0.043191 | 0.0 | 0.043191 | -0.00181 | 0.052632 | 1.3 | 0.043191 | 1.356502 |
|
|
704
|
+
| 16.01. | -0.000439 | 0.0 | 0.0 | 5.0 | 0.099995 | 0.012092 | 0.042105 | 1.445855 | 1.313311 | 0.086689 | 0.043498 | 0.386003 | 0.386003 | 0.386003 | 0.029384 | 0.0 | 0.029384 | -0.001756 | 0.042105 | 1.4 | 0.029384 | 1.445855 |
|
|
705
|
+
| 17.01. | -0.000406 | 0.0 | 0.0 | 5.0 | 0.099999 | 0.014695 | 0.031579 | 1.533233 | 1.416471 | 0.0 | -0.045855 | 0.198088 | 0.198088 | 0.198088 | 0.015375 | 0.0 | 0.015375 | -0.001625 | 0.031579 | 1.5 | 0.015375 | 1.533233 |
|
|
706
|
+
| 18.01. | -0.000416 | 0.0 | 0.0 | 5.0 | 0.1 | 0.012793 | 0.021053 | 1.621024 | 1.517859 | 0.0 | -0.133233 | 0.113577 | 0.113577 | 0.113577 | 0.008699 | 0.0 | 0.008699 | -0.001663 | 0.021053 | 1.6 | 0.008699 | 1.621024 |
|
|
707
|
+
| 19.01. | -0.000496 | 0.0 | 0.0 | 5.0 | 0.1 | 0.009947 | 0.010526 | 1.711892 | 1.612325 | 0.0 | -0.221024 | 0.05798 | 0.05798 | 0.05798 | 0.00431 | 0.0 | 0.00431 | -0.001985 | 0.010526 | 1.7 | 0.00431 | 1.711892 |
|
|
708
|
+
| 20.01. | -0.000655 | 0.0 | 0.0 | 5.0 | 0.1 | 0.006415 | 0.0 | 1.806062 | 1.707582 | 0.0 | -0.311892 | 0.026921 | 0.026921 | 0.01346 | 0.000952 | 0.0 | 0.000952 | -0.002622 | 0.0 | 1.8 | 0.000952 | 1.806062 |
|
|
709
|
+
|
|
710
|
+
There are, again, negative water volumes. This time, they are due to smoothing the
|
|
711
|
+
water level-related threshold |ThresholdEvaporation| via |ToleranceEvaporation|. The
|
|
712
|
+
explanations of the examples :ref:`dam_v001_sharp_stage_minimum` and
|
|
713
|
+
:ref:`dam_v001_smooth_stage_minimum` regarding the functionally similar parameters
|
|
714
|
+
|WaterLevelMinimumThreshold| and |WaterLevelMinimumTolerance| also apply to the case
|
|
715
|
+
at hand.
|
|
716
|
+
|
|
717
|
+
>>> del model.pemodel
|
|
718
|
+
|
|
719
|
+
.. _dam_v001_short_memory:
|
|
720
|
+
|
|
721
|
+
short memory
|
|
722
|
+
____________
|
|
723
|
+
|
|
724
|
+
The last "drought control" parameter we did not vary so far is |NmbLogEntries|. In the
|
|
725
|
+
examples above, its value is always one, meaning that each estimate of the
|
|
726
|
+
subcatchment's "natural" discharge is based only on the latest observation. Using only
|
|
727
|
+
the newest available observation offers the advantage of quick adjustments. But there
|
|
728
|
+
is a risk of reacting too eagerly, which could result in cyclically fluctuating
|
|
729
|
+
releases.
|
|
730
|
+
|
|
731
|
+
We define a series of extreme fluctuations by repeating the natural discharge values of
|
|
732
|
+
1.5 m³/s and 0.5 m³/s ten times:
|
|
733
|
+
|
|
734
|
+
>>> natural.sequences.sim.series = 10 * [1.5, 0.5]
|
|
735
|
+
|
|
736
|
+
We increase the inflow to 1 m³/s again to ensure the dam can release as much water as
|
|
737
|
+
it estimates to be required:
|
|
738
|
+
|
|
739
|
+
>>> inflow.sequences.sim.series = 1.0
|
|
740
|
+
|
|
741
|
+
Furthermore, we assume no relevant time delay between the dam's outlet and the
|
|
742
|
+
cross-section downstream:
|
|
743
|
+
|
|
744
|
+
>>> stream1.model.parameters.control.responses(((), (1.0,)))
|
|
745
|
+
>>> stream1.model.parameters.update()
|
|
746
|
+
|
|
747
|
+
The example is a little artificial but reveals a general problem that might occur in
|
|
748
|
+
different forms. Due to the time delay of the information flow from the cross-section
|
|
749
|
+
to the dam, the dam wastes much water by increasing the high flows without increasing
|
|
750
|
+
the low flows:
|
|
751
|
+
|
|
752
|
+
.. integration-test::
|
|
753
|
+
|
|
754
|
+
>>> test("dam_v001_short_memory")
|
|
755
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
756
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
757
|
+
| 01.01. | 0.021541 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.502727 | 1.9 | 0.0 | -0.5 | 0.005 | 0.005 | 0.005 | 0.002727 | 0.0 | 0.002727 | 0.086164 | 1.0 | 1.5 | 0.002727 | 1.502727 |
|
|
758
|
+
| 02.01. | 0.040117 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.640003 | 1.5 | 0.0 | -0.102727 | 0.140038 | 0.140038 | 0.140038 | 0.140003 | 0.0 | 0.140003 | 0.160468 | 1.0 | 0.5 | 0.140003 | 0.640003 |
|
|
759
|
+
| 03.01. | 0.031487 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899534 | 0.5 | 0.9 | 0.759997 | 1.399537 | 1.399537 | 1.399537 | 1.399534 | 0.0 | 1.399534 | 0.125948 | 1.0 | 1.5 | 1.399534 | 2.899534 |
|
|
760
|
+
| 04.01. | 0.053087 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499534 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.212348 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
761
|
+
| 05.01. | 0.04445 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899872 | 0.5 | 0.9 | 0.899999 | 1.399872 | 1.399872 | 1.399872 | 1.399872 | 0.0 | 1.399872 | 0.177799 | 1.0 | 1.5 | 1.399872 | 2.899872 |
|
|
762
|
+
| 06.01. | 0.06605 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499872 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.264199 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
763
|
+
| 07.01. | 0.057413 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899872 | 0.5 | 0.9 | 0.899999 | 1.399872 | 1.399872 | 1.399872 | 1.399872 | 0.0 | 1.399872 | 0.22965 | 1.0 | 1.5 | 1.399872 | 2.899872 |
|
|
764
|
+
| 08.01. | 0.079013 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499872 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.31605 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
765
|
+
| 09.01. | 0.070375 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899872 | 0.5 | 0.9 | 0.899999 | 1.399872 | 1.399872 | 1.399872 | 1.399872 | 0.0 | 1.399872 | 0.281501 | 1.0 | 1.5 | 1.399872 | 2.899872 |
|
|
766
|
+
| 10.01. | 0.091975 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499872 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.367901 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
767
|
+
| 11.01. | 0.083338 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899872 | 0.5 | 0.9 | 0.899999 | 1.399872 | 1.399872 | 1.399872 | 1.399872 | 0.0 | 1.399872 | 0.333352 | 1.0 | 1.5 | 1.399872 | 2.899872 |
|
|
768
|
+
| 12.01. | 0.104938 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499872 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.419752 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
769
|
+
| 13.01. | 0.096301 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899872 | 0.5 | 0.9 | 0.899999 | 1.399872 | 1.399872 | 1.399872 | 1.399872 | 0.0 | 1.399872 | 0.385203 | 1.0 | 1.5 | 1.399872 | 2.899872 |
|
|
770
|
+
| 14.01. | 0.117901 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499872 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.471603 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
771
|
+
| 15.01. | 0.109264 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899872 | 0.5 | 0.9 | 0.899999 | 1.399872 | 1.399872 | 1.399872 | 1.399872 | 0.0 | 1.399872 | 0.437054 | 1.0 | 1.5 | 1.399872 | 2.899872 |
|
|
772
|
+
| 16.01. | 0.130864 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499872 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.523454 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
773
|
+
| 17.01. | 0.122226 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899872 | 0.5 | 0.9 | 0.899999 | 1.399872 | 1.399872 | 1.399872 | 1.399872 | 0.0 | 1.399872 | 0.488905 | 1.0 | 1.5 | 1.399872 | 2.899872 |
|
|
774
|
+
| 18.01. | 0.143826 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499872 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.575305 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
775
|
+
| 19.01. | 0.135189 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.899872 | 0.5 | 0.9 | 0.899999 | 1.399872 | 1.399872 | 1.399872 | 1.399872 | 0.0 | 1.399872 | 0.540756 | 1.0 | 1.5 | 1.399872 | 2.899872 |
|
|
776
|
+
| 20.01. | 0.156789 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.500001 | 1.5 | 0.0 | -1.499872 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.627156 | 1.0 | 0.5 | 0.000001 | 0.500001 |
|
|
777
|
+
|
|
778
|
+
.. _dam_v001_long_memory:
|
|
779
|
+
|
|
780
|
+
long memory
|
|
781
|
+
___________
|
|
782
|
+
|
|
783
|
+
It seems advisable to increase the number of observations for estimating and using a
|
|
784
|
+
more long-term natural discharge at the cross-section. For this purpose, we set
|
|
785
|
+
|NmbLogEntries| to two:
|
|
786
|
+
|
|
787
|
+
>>> nmblogentries(2)
|
|
788
|
+
|
|
789
|
+
Now, the water release remains relatively constant. This strategy does not completely
|
|
790
|
+
solve wasting water during peak flows and violating the low flow threshold, but it
|
|
791
|
+
significantly reduces these problems:
|
|
792
|
+
|
|
793
|
+
.. integration-test::
|
|
794
|
+
|
|
795
|
+
>>> test("dam_v001_long_memory")
|
|
796
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
797
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
798
|
+
| 01.01. | 0.021541 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.502727 | 1.9 | 0.0 | -0.5 | 0.005 | 0.005 | 0.005 | 0.002727 | 0.0 | 0.002727 | 0.086164 | 1.0 | 1.5 | 0.002727 | 1.502727 |
|
|
799
|
+
| 02.01. | 0.042504 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.529487 | 1.7 | 0.0 | -0.301364 | 0.029495 | 0.029495 | 0.029495 | 0.029487 | 0.0 | 0.029487 | 0.170017 | 1.0 | 0.5 | 0.029487 | 0.529487 |
|
|
800
|
+
| 03.01. | 0.044972 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.385738 | 1.0 | 0.4 | 0.383893 | 0.885738 | 0.885738 | 0.885738 | 0.885738 | 0.0 | 0.885738 | 0.179889 | 1.0 | 1.5 | 0.885738 | 2.385738 |
|
|
801
|
+
| 04.01. | 0.053929 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.08532 | 1.0 | 0.4 | -0.057613 | 0.58532 | 0.58532 | 0.58532 | 0.58532 | 0.0 | 0.58532 | 0.215717 | 1.0 | 0.5 | 0.58532 | 1.08532 |
|
|
802
|
+
| 05.01. | 0.066416 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.921895 | 1.0 | 0.4 | -0.335529 | 0.421895 | 0.421895 | 0.421895 | 0.421895 | 0.0 | 0.421895 | 0.265666 | 1.0 | 1.5 | 0.421895 | 1.921895 |
|
|
803
|
+
| 06.01. | 0.076369 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.039224 | 1.0 | 0.4 | -0.103607 | 0.539224 | 0.539224 | 0.539224 | 0.539224 | 0.0 | 0.539224 | 0.305477 | 1.0 | 0.5 | 0.539224 | 1.039224 |
|
|
804
|
+
| 07.01. | 0.085842 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.061463 | 1.0 | 0.4 | -0.080559 | 0.561463 | 0.561463 | 0.561463 | 0.561463 | 0.0 | 0.561463 | 0.343366 | 1.0 | 1.5 | 0.561463 | 2.061463 |
|
|
805
|
+
| 08.01. | 0.096634 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.000369 | 1.0 | 0.4 | -0.150343 | 0.500369 | 0.500369 | 0.500369 | 0.500369 | 0.0 | 0.500369 | 0.386534 | 1.0 | 0.5 | 0.500369 | 1.000369 |
|
|
806
|
+
| 09.01. | 0.1071 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.015458 | 1.0 | 0.4 | -0.130916 | 0.515458 | 0.515458 | 0.515458 | 0.515458 | 0.0 | 0.515458 | 0.428399 | 1.0 | 1.5 | 0.515458 | 2.015458 |
|
|
807
|
+
| 10.01. | 0.117138 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.035283 | 1.0 | 0.4 | -0.107913 | 0.535283 | 0.535283 | 0.535283 | 0.535283 | 0.0 | 0.535283 | 0.46855 | 1.0 | 0.5 | 0.535283 | 1.035283 |
|
|
808
|
+
| 11.01. | 0.127505 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.020045 | 1.0 | 0.4 | -0.125371 | 0.520045 | 0.520045 | 0.520045 | 0.520045 | 0.0 | 0.520045 | 0.510018 | 1.0 | 1.5 | 0.520045 | 2.020045 |
|
|
809
|
+
| 12.01. | 0.137913 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.018133 | 1.0 | 0.4 | -0.127664 | 0.518133 | 0.518133 | 0.518133 | 0.518133 | 0.0 | 0.518133 | 0.551652 | 1.0 | 0.5 | 0.518133 | 1.018133 |
|
|
810
|
+
| 13.01. | 0.148165 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.02539 | 1.0 | 0.4 | -0.119089 | 0.52539 | 0.52539 | 0.52539 | 0.52539 | 0.0 | 0.52539 | 0.592658 | 1.0 | 1.5 | 0.52539 | 2.02539 |
|
|
811
|
+
| 14.01. | 0.158466 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.023097 | 1.0 | 0.4 | -0.121761 | 0.523097 | 0.523097 | 0.523097 | 0.523097 | 0.0 | 0.523097 | 0.633863 | 1.0 | 0.5 | 0.523097 | 1.023097 |
|
|
812
|
+
| 15.01. | 0.168812 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.020992 | 1.0 | 0.4 | -0.124244 | 0.520992 | 0.520992 | 0.520992 | 0.520992 | 0.0 | 0.520992 | 0.675249 | 1.0 | 1.5 | 0.520992 | 2.020992 |
|
|
813
|
+
| 16.01. | 0.179119 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.022855 | 1.0 | 0.4 | -0.122045 | 0.522855 | 0.522855 | 0.522855 | 0.522855 | 0.0 | 0.522855 | 0.716474 | 1.0 | 0.5 | 0.522855 | 1.022855 |
|
|
814
|
+
| 17.01. | 0.189423 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.022958 | 1.0 | 0.4 | -0.121924 | 0.522958 | 0.522958 | 0.522958 | 0.522958 | 0.0 | 0.522958 | 0.75769 | 1.0 | 1.5 | 0.522958 | 2.022958 |
|
|
815
|
+
| 18.01. | 0.199745 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.022123 | 1.0 | 0.4 | -0.122907 | 0.522123 | 0.522123 | 0.522123 | 0.522123 | 0.0 | 0.522123 | 0.798979 | 1.0 | 0.5 | 0.522123 | 1.022123 |
|
|
816
|
+
| 19.01. | 0.21006 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.022434 | 1.0 | 0.4 | -0.12254 | 0.522434 | 0.522434 | 0.522434 | 0.522434 | 0.0 | 0.522434 | 0.840241 | 1.0 | 1.5 | 0.522434 | 2.022434 |
|
|
817
|
+
| 20.01. | 0.220371 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.022657 | 1.0 | 0.4 | -0.122278 | 0.522657 | 0.522657 | 0.522657 | 0.522657 | 0.0 | 0.522657 | 0.881483 | 1.0 | 0.5 | 0.522657 | 1.022657 |
|
|
818
|
+
|
|
819
|
+
We cannot circumvent the general problem of a time delay of one simulation step for the
|
|
820
|
+
information flow from the cross-section to the dam. To solve it, we would have to
|
|
821
|
+
simultaneouslyh andle the differential equations of all models involved, which is
|
|
822
|
+
currently not supported by *HydPy* and is impossible for most implemented models.
|
|
823
|
+
However, due to the low dynamics of drought events, the resulting inaccuracies should
|
|
824
|
+
rarely be substantial.
|
|
825
|
+
|
|
826
|
+
.. _dam_v001_flood_retention:
|
|
827
|
+
|
|
828
|
+
flood retention
|
|
829
|
+
_______________
|
|
830
|
+
|
|
831
|
+
This example and the following ones demonstrate the proper implementation of the flood
|
|
832
|
+
retention functionalities. For simplicity, we deactivate all parameters related to
|
|
833
|
+
low water calculations:
|
|
834
|
+
|
|
835
|
+
>>> nmblogentries(1)
|
|
836
|
+
>>> remotedischargeminimum(0.0)
|
|
837
|
+
>>> remotedischargesafety(0.0)
|
|
838
|
+
>>> neardischargeminimumthreshold(0.0)
|
|
839
|
+
>>> neardischargeminimumtolerance(0.0)
|
|
840
|
+
>>> waterlevelminimumthreshold(0.0)
|
|
841
|
+
>>> waterlevelminimumtolerance(0.0)
|
|
842
|
+
|
|
843
|
+
We define a linear storage retention process to compare the following numerical results
|
|
844
|
+
of |dam_v001| with an analytical solution. The relationship between water volume and
|
|
845
|
+
level is already linear, and we adjust the relationship between water level and flood
|
|
846
|
+
discharge accordingly:
|
|
847
|
+
|
|
848
|
+
>>> waterlevel2flooddischarge(PPoly.from_data(xs=[0.0, 1.0], ys= [0.0, 2.5]))
|
|
849
|
+
>>> figure = waterlevel2flooddischarge.plot(0.0, 25.0)
|
|
850
|
+
>>> save_autofig("dam_v001_waterlevel2flooddischarge_2.png", figure=figure)
|
|
851
|
+
|
|
852
|
+
.. image:: dam_v001_waterlevel2flooddischarge_2.png
|
|
853
|
+
:width: 400
|
|
854
|
+
|
|
855
|
+
The linear storage coefficient for the given simulation step size is approximately
|
|
856
|
+
0.054/d.
|
|
857
|
+
|
|
858
|
+
Now, we add a |meteo_precip_io| submodel and define a precipitation series including
|
|
859
|
+
only a heavy one-day rainfall event and a corresponding inflowing flood wave, starting
|
|
860
|
+
and ending with zero discharge:
|
|
861
|
+
|
|
862
|
+
>>> with model.add_precipmodel_v2("meteo_precip_io") as precipmodel:
|
|
863
|
+
... precipitationfactor(1.0)
|
|
864
|
+
>>> precipmodel.prepare_inputseries()
|
|
865
|
+
>>> precipmodel.sequences.inputs.precipitation.series = [
|
|
866
|
+
... 0.0, 50.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
|
867
|
+
... 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
868
|
+
>>> inflow.sequences.sim.series = [0.0, 0.0, 5.0, 9.0, 8.0, 5.0, 3.0, 2.0, 1.0, 0.0,
|
|
869
|
+
... 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
870
|
+
|
|
871
|
+
For the sake of simplicity, we assume a constant "natural" discharge of 1 m³/s of the
|
|
872
|
+
subcatchment:
|
|
873
|
+
|
|
874
|
+
>>> test.inits.loggedtotalremotedischarge = 1.0
|
|
875
|
+
>>> natural.sequences.sim.series = 1.0
|
|
876
|
+
|
|
877
|
+
In this example, we use the default accuracy of 0.01 m³/s, which should be sufficient
|
|
878
|
+
for most flood simulations for large dams:
|
|
879
|
+
|
|
880
|
+
>>> solver.abserrormax
|
|
881
|
+
abserrormax(0.01)
|
|
882
|
+
|
|
883
|
+
When discussing the simulation of flood events, we should examine numerical stability
|
|
884
|
+
and accuracy and their relation to computation time more closely. We use the number of
|
|
885
|
+
calls of the differential equations as an indicator for computation time. To do so, we
|
|
886
|
+
first set the corresponding counter to zero:
|
|
887
|
+
|
|
888
|
+
>>> model.numvars.nmb_calls = 0
|
|
889
|
+
|
|
890
|
+
The following graph shows that |dam_v001| works like the linear storage approach under
|
|
891
|
+
the given configuration:
|
|
892
|
+
|
|
893
|
+
.. integration-test::
|
|
894
|
+
|
|
895
|
+
>>> test("dam_v001_flood_retention")
|
|
896
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
897
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
898
|
+
| 01.01. | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
899
|
+
| 02.01. | 0.021027 | 50.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.026514 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.026514 | 0.026514 | 0.084109 | 0.0 | 1.0 | 0.026514 | 1.026514 |
|
|
900
|
+
| 03.01. | 0.125058 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5.0 | 1.183744 | 1.0 | 0.0 | -1.026514 | 0.0 | 0.0 | 0.0 | 0.0 | 0.183744 | 0.183744 | 0.500234 | 5.0 | 1.0 | 0.183744 | 1.183744 |
|
|
901
|
+
| 04.01. | 0.30773 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 9.0 | 1.542983 | 1.0 | 0.0 | -1.183744 | 0.0 | 0.0 | 0.0 | 0.0 | 0.542983 | 0.542983 | 1.23092 | 9.0 | 1.0 | 0.542983 | 1.542983 |
|
|
902
|
+
| 05.01. | 0.459772 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 8.0 | 1.961039 | 1.0 | 0.0 | -1.542983 | 0.0 | 0.0 | 0.0 | 0.0 | 0.961039 | 0.961039 | 1.839086 | 8.0 | 1.0 | 0.961039 | 1.961039 |
|
|
903
|
+
| 06.01. | 0.540739 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5.0 | 2.251523 | 1.0 | 0.0 | -1.961039 | 0.0 | 0.0 | 0.0 | 0.0 | 1.251523 | 1.251523 | 2.162955 | 5.0 | 1.0 | 1.251523 | 2.251523 |
|
|
904
|
+
| 07.01. | 0.575395 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3.0 | 2.395546 | 1.0 | 0.0 | -2.251523 | 0.0 | 0.0 | 0.0 | 0.0 | 1.395546 | 1.395546 | 2.301579 | 3.0 | 1.0 | 1.395546 | 2.395546 |
|
|
905
|
+
| 08.01. | 0.587202 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.0 | 2.453375 | 1.0 | 0.0 | -2.395546 | 0.0 | 0.0 | 0.0 | 0.0 | 1.453375 | 1.453375 | 2.348808 | 2.0 | 1.0 | 1.453375 | 2.453375 |
|
|
906
|
+
| 09.01. | 0.577361 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.455596 | 1.0 | 0.0 | -2.453375 | 0.0 | 0.0 | 0.0 | 0.0 | 1.455596 | 1.455596 | 2.309444 | 1.0 | 1.0 | 1.455596 | 2.455596 |
|
|
907
|
+
| 10.01. | 0.54701 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.405132 | 1.0 | 0.0 | -2.455596 | 0.0 | 0.0 | 0.0 | 0.0 | 1.405132 | 1.405132 | 2.188041 | 0.0 | 1.0 | 1.405132 | 2.405132 |
|
|
908
|
+
| 11.01. | 0.518255 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.331267 | 1.0 | 0.0 | -2.405132 | 0.0 | 0.0 | 0.0 | 0.0 | 1.331267 | 1.331267 | 2.073019 | 0.0 | 1.0 | 1.331267 | 2.331267 |
|
|
909
|
+
| 12.01. | 0.491011 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.261285 | 1.0 | 0.0 | -2.331267 | 0.0 | 0.0 | 0.0 | 0.0 | 1.261285 | 1.261285 | 1.964044 | 0.0 | 1.0 | 1.261285 | 2.261285 |
|
|
910
|
+
| 13.01. | 0.4652 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.194981 | 1.0 | 0.0 | -2.261285 | 0.0 | 0.0 | 0.0 | 0.0 | 1.194981 | 1.194981 | 1.860798 | 0.0 | 1.0 | 1.194981 | 2.194981 |
|
|
911
|
+
| 14.01. | 0.440745 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.132163 | 1.0 | 0.0 | -2.194981 | 0.0 | 0.0 | 0.0 | 0.0 | 1.132163 | 1.132163 | 1.762979 | 0.0 | 1.0 | 1.132163 | 2.132163 |
|
|
912
|
+
| 15.01. | 0.417576 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.072647 | 1.0 | 0.0 | -2.132163 | 0.0 | 0.0 | 0.0 | 0.0 | 1.072647 | 1.072647 | 1.670302 | 0.0 | 1.0 | 1.072647 | 2.072647 |
|
|
913
|
+
| 16.01. | 0.395624 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.01626 | 1.0 | 0.0 | -2.072647 | 0.0 | 0.0 | 0.0 | 0.0 | 1.01626 | 1.01626 | 1.582498 | 0.0 | 1.0 | 1.01626 | 2.01626 |
|
|
914
|
+
| 17.01. | 0.374827 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.962837 | 1.0 | 0.0 | -2.01626 | 0.0 | 0.0 | 0.0 | 0.0 | 0.962837 | 0.962837 | 1.499308 | 0.0 | 1.0 | 0.962837 | 1.962837 |
|
|
915
|
+
| 18.01. | 0.355123 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.912222 | 1.0 | 0.0 | -1.962837 | 0.0 | 0.0 | 0.0 | 0.0 | 0.912222 | 0.912222 | 1.420492 | 0.0 | 1.0 | 0.912222 | 1.912222 |
|
|
916
|
+
| 19.01. | 0.336455 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.864268 | 1.0 | 0.0 | -1.912222 | 0.0 | 0.0 | 0.0 | 0.0 | 0.864268 | 0.864268 | 1.34582 | 0.0 | 1.0 | 0.864268 | 1.864268 |
|
|
917
|
+
| 20.01. | 0.318768 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.818835 | 1.0 | 0.0 | -1.864268 | 0.0 | 0.0 | 0.0 | 0.0 | 0.818835 | 0.818835 | 1.275072 | 0.0 | 1.0 | 0.818835 | 1.818835 |
|
|
918
|
+
|
|
919
|
+
For a more precise evaluation, you can compare the dam's outflow with the following
|
|
920
|
+
results of the linear storage cascade with a single bucket:
|
|
921
|
+
|
|
922
|
+
>>> from hydpy.auxs.iuhtools import LinearStorageCascade
|
|
923
|
+
>>> lsc = LinearStorageCascade(n=1, k=1.0/0.054)
|
|
924
|
+
>>> inflow = fluxes.adjustedprecipitation.series + inflow.sequences.sim.series
|
|
925
|
+
>>> outflow = numpy.convolve(lsc.ma.coefs, inflow)
|
|
926
|
+
>>> from hydpy import print_vector
|
|
927
|
+
>>> print_vector(outflow[:20])
|
|
928
|
+
0.0, 0.02652, 0.183776, 0.543037, 0.961081, 1.251541, 1.395548,
|
|
929
|
+
1.453371, 1.455585, 1.405116, 1.331252, 1.261271, 1.194968, 1.132151,
|
|
930
|
+
1.072636, 1.01625, 0.962828, 0.912214, 0.864261, 0.818829
|
|
931
|
+
|
|
932
|
+
The largest difference occurs on January 1. But this difference of 0.000054 m³/s is way
|
|
933
|
+
below the required accuracy of 0.01 m³/s. There is no guarantee that the actual
|
|
934
|
+
numerical error will always fall below the defined tolerance value, but if everything
|
|
935
|
+
works well, we have good reason to hope this happens in many cases. At least for
|
|
936
|
+
sufficiently smooth problems, the actual error should be better than the error estimate
|
|
937
|
+
by one order. However, one can never rule out the risk of error accumulations over
|
|
938
|
+
multiple simulation steps.
|
|
939
|
+
|
|
940
|
+
|dam_v001| required about four calls per simulation step on average:
|
|
941
|
+
|
|
942
|
+
>>> model.numvars.nmb_calls
|
|
943
|
+
78
|
|
944
|
+
>>> model.numvars.nmb_calls = 0
|
|
945
|
+
|
|
946
|
+
.. _dam_v001_accuracy_flood:
|
|
947
|
+
|
|
948
|
+
accuracy flood
|
|
949
|
+
______________
|
|
950
|
+
|
|
951
|
+
If we set the tolerance value to 1e-6 m³/s, the six decimal places in the following
|
|
952
|
+
table show no deviation from the analytical solution of the linear storage equation:
|
|
953
|
+
|
|
954
|
+
.. integration-test::
|
|
955
|
+
|
|
956
|
+
>>> solver.abserrormax(1e-6)
|
|
957
|
+
>>> test("dam_v001_accuracy_flood")
|
|
958
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
959
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
960
|
+
| 01.01. | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
961
|
+
| 02.01. | 0.021027 | 50.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.02652 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.02652 | 0.02652 | 0.084109 | 0.0 | 1.0 | 0.02652 | 1.02652 |
|
|
962
|
+
| 03.01. | 0.125058 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5.0 | 1.183776 | 1.0 | 0.0 | -1.02652 | 0.0 | 0.0 | 0.0 | 0.0 | 0.183776 | 0.183776 | 0.50023 | 5.0 | 1.0 | 0.183776 | 1.183776 |
|
|
963
|
+
| 04.01. | 0.307728 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 9.0 | 1.543037 | 1.0 | 0.0 | -1.183776 | 0.0 | 0.0 | 0.0 | 0.0 | 0.543037 | 0.543037 | 1.230912 | 9.0 | 1.0 | 0.543037 | 1.543037 |
|
|
964
|
+
| 05.01. | 0.459769 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 8.0 | 1.961081 | 1.0 | 0.0 | -1.543037 | 0.0 | 0.0 | 0.0 | 0.0 | 0.961081 | 0.961081 | 1.839075 | 8.0 | 1.0 | 0.961081 | 1.961081 |
|
|
965
|
+
| 06.01. | 0.540735 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5.0 | 2.251541 | 1.0 | 0.0 | -1.961081 | 0.0 | 0.0 | 0.0 | 0.0 | 1.251541 | 1.251541 | 2.162941 | 5.0 | 1.0 | 1.251541 | 2.251541 |
|
|
966
|
+
| 07.01. | 0.575392 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3.0 | 2.395548 | 1.0 | 0.0 | -2.251541 | 0.0 | 0.0 | 0.0 | 0.0 | 1.395548 | 1.395548 | 2.301566 | 3.0 | 1.0 | 1.395548 | 2.395548 |
|
|
967
|
+
| 08.01. | 0.587199 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.0 | 2.453371 | 1.0 | 0.0 | -2.395548 | 0.0 | 0.0 | 0.0 | 0.0 | 1.453371 | 1.453371 | 2.348795 | 2.0 | 1.0 | 1.453371 | 2.453371 |
|
|
968
|
+
| 09.01. | 0.577358 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.455585 | 1.0 | 0.0 | -2.453371 | 0.0 | 0.0 | 0.0 | 0.0 | 1.455585 | 1.455585 | 2.309432 | 1.0 | 1.0 | 1.455585 | 2.455585 |
|
|
969
|
+
| 10.01. | 0.547008 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.405116 | 1.0 | 0.0 | -2.455585 | 0.0 | 0.0 | 0.0 | 0.0 | 1.405116 | 1.405116 | 2.18803 | 0.0 | 1.0 | 1.405116 | 2.405116 |
|
|
970
|
+
| 11.01. | 0.518253 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.331252 | 1.0 | 0.0 | -2.405116 | 0.0 | 0.0 | 0.0 | 0.0 | 1.331252 | 1.331252 | 2.07301 | 0.0 | 1.0 | 1.331252 | 2.331252 |
|
|
971
|
+
| 12.01. | 0.491009 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.261271 | 1.0 | 0.0 | -2.331252 | 0.0 | 0.0 | 0.0 | 0.0 | 1.261271 | 1.261271 | 1.964036 | 0.0 | 1.0 | 1.261271 | 2.261271 |
|
|
972
|
+
| 13.01. | 0.465198 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.194968 | 1.0 | 0.0 | -2.261271 | 0.0 | 0.0 | 0.0 | 0.0 | 1.194968 | 1.194968 | 1.860791 | 0.0 | 1.0 | 1.194968 | 2.194968 |
|
|
973
|
+
| 14.01. | 0.440743 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.132151 | 1.0 | 0.0 | -2.194968 | 0.0 | 0.0 | 0.0 | 0.0 | 1.132151 | 1.132151 | 1.762973 | 0.0 | 1.0 | 1.132151 | 2.132151 |
|
|
974
|
+
| 15.01. | 0.417574 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.072636 | 1.0 | 0.0 | -2.132151 | 0.0 | 0.0 | 0.0 | 0.0 | 1.072636 | 1.072636 | 1.670297 | 0.0 | 1.0 | 1.072636 | 2.072636 |
|
|
975
|
+
| 16.01. | 0.395623 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.01625 | 1.0 | 0.0 | -2.072636 | 0.0 | 0.0 | 0.0 | 0.0 | 1.01625 | 1.01625 | 1.582493 | 0.0 | 1.0 | 1.01625 | 2.01625 |
|
|
976
|
+
| 17.01. | 0.374826 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.962828 | 1.0 | 0.0 | -2.01625 | 0.0 | 0.0 | 0.0 | 0.0 | 0.962828 | 0.962828 | 1.499305 | 0.0 | 1.0 | 0.962828 | 1.962828 |
|
|
977
|
+
| 18.01. | 0.355122 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.912214 | 1.0 | 0.0 | -1.962828 | 0.0 | 0.0 | 0.0 | 0.0 | 0.912214 | 0.912214 | 1.42049 | 0.0 | 1.0 | 0.912214 | 1.912214 |
|
|
978
|
+
| 19.01. | 0.336454 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.864261 | 1.0 | 0.0 | -1.912214 | 0.0 | 0.0 | 0.0 | 0.0 | 0.864261 | 0.864261 | 1.345818 | 0.0 | 1.0 | 0.864261 | 1.864261 |
|
|
979
|
+
| 20.01. | 0.318768 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.818829 | 1.0 | 0.0 | -1.864261 | 0.0 | 0.0 | 0.0 | 0.0 | 0.818829 | 0.818829 | 1.275071 | 0.0 | 1.0 | 0.818829 | 1.818829 |
|
|
980
|
+
|
|
981
|
+
This improvement in accuracy comes with a significant increase in computation time.
|
|
982
|
+
|dam_v001| required 10.5 calls on average:
|
|
983
|
+
|
|
984
|
+
>>> model.numvars.nmb_calls
|
|
985
|
+
211
|
|
986
|
+
>>> model.numvars.nmb_calls = 0
|
|
987
|
+
|
|
988
|
+
.. _dam_v001_stiffness:
|
|
989
|
+
|
|
990
|
+
stiffness
|
|
991
|
+
_________
|
|
992
|
+
|
|
993
|
+
We reset the local error tolerance to the more practical value but configure the
|
|
994
|
+
|WaterLevel2FloodDischarge| parameter in a highly dynamic manner:
|
|
995
|
+
|
|
996
|
+
>>> solver.abserrormax(0.01)
|
|
997
|
+
>>> waterlevel2flooddischarge(PPoly.from_data(xs=[0.0, 1.0], ys=[0.0, 250.0]))
|
|
998
|
+
>>> figure = waterlevel2flooddischarge.plot(0.0, 25.0)
|
|
999
|
+
>>> save_autofig("dam_v001_waterlevel2flooddischarge_3.png", figure=figure)
|
|
1000
|
+
|
|
1001
|
+
.. image:: dam_v001_waterlevel2flooddischarge_3.png
|
|
1002
|
+
:width: 400
|
|
1003
|
+
|
|
1004
|
+
Due to the high linear storage coefficient of approximately 5.4 per day, the following
|
|
1005
|
+
test results show virtually no retention effects:
|
|
1006
|
+
|
|
1007
|
+
.. integration-test::
|
|
1008
|
+
|
|
1009
|
+
>>> test("dam_v001_stiffness")
|
|
1010
|
+
| date | waterlevel | precipitation | adjustedprecipitation | potentialevaporation | adjustedevaporation | actualevaporation | inflow | totalremotedischarge | naturalremotedischarge | remotedemand | remotefailure | requiredremoterelease | requiredrelease | targetedrelease | actualrelease | flooddischarge | outflow | watervolume | inflow | natural | outflow | remote |
|
|
1011
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
1012
|
+
| 01.01. | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1013
|
+
| 02.01. | 0.003916 | 50.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.818699 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.818699 | 0.818699 | 0.015664 | 0.0 | 1.0 | 0.818699 | 1.818699 |
|
|
1014
|
+
| 03.01. | 0.01994 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5.0 | 5.25814 | 1.0 | 0.0 | -1.818699 | 0.0 | 0.0 | 0.0 | 0.0 | 4.25814 | 4.25814 | 0.079761 | 5.0 | 1.0 | 4.25814 | 5.25814 |
|
|
1015
|
+
| 04.01. | 0.03594 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 9.0 | 9.259255 | 1.0 | 0.0 | -5.25814 | 0.0 | 0.0 | 0.0 | 0.0 | 8.259255 | 8.259255 | 0.143761 | 9.0 | 1.0 | 8.259255 | 9.259255 |
|
|
1016
|
+
| 05.01. | 0.032083 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 8.0 | 9.178598 | 1.0 | 0.0 | -9.259255 | 0.0 | 0.0 | 0.0 | 0.0 | 8.178598 | 8.178598 | 0.128331 | 8.0 | 1.0 | 8.178598 | 9.178598 |
|
|
1017
|
+
| 06.01. | 0.020085 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5.0 | 6.555424 | 1.0 | 0.0 | -9.178598 | 0.0 | 0.0 | 0.0 | 0.0 | 5.555424 | 5.555424 | 0.080342 | 5.0 | 1.0 | 5.555424 | 6.555424 |
|
|
1018
|
+
| 07.01. | 0.012057 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3.0 | 4.371696 | 1.0 | 0.0 | -6.555424 | 0.0 | 0.0 | 0.0 | 0.0 | 3.371696 | 3.371696 | 0.048227 | 3.0 | 1.0 | 3.371696 | 4.371696 |
|
|
1019
|
+
| 08.01. | 0.008085 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.0 | 3.183878 | 1.0 | 0.0 | -4.371696 | 0.0 | 0.0 | 0.0 | 0.0 | 2.183878 | 2.183878 | 0.03234 | 2.0 | 1.0 | 2.183878 | 3.183878 |
|
|
1020
|
+
| 09.01. | 0.004086 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 2.185158 | 1.0 | 0.0 | -3.183878 | 0.0 | 0.0 | 0.0 | 0.0 | 1.185158 | 1.185158 | 0.016343 | 1.0 | 1.0 | 1.185158 | 2.185158 |
|
|
1021
|
+
| 10.01. | 0.000011 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.188656 | 1.0 | 0.0 | -2.185158 | 0.0 | 0.0 | 0.0 | 0.0 | 0.187346 | 0.188656 | 0.000043 | 0.0 | 1.0 | 0.188656 | 1.188656 |
|
|
1022
|
+
| 11.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.001338 | 1.0 | 0.0 | -1.188656 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.001338 | -0.000073 | 0.0 | 1.0 | 0.001338 | 1.001338 |
|
|
1023
|
+
| 12.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.001338 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1024
|
+
| 13.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1025
|
+
| 14.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1026
|
+
| 15.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1027
|
+
| 16.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1028
|
+
| 17.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1029
|
+
| 18.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1030
|
+
| 19.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1031
|
+
| 20.01. | -0.000018 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | -1.0 | 0.0 | 0.0 | 0.0 | 0.0 | -0.00455 | 0.0 | -0.000073 | 0.0 | 1.0 | 0.0 | 1.0 |
|
|
1032
|
+
|
|
1033
|
+
The following comparative calculation shows that |dam_v001| reaches the desired
|
|
1034
|
+
numerical accuracy for this extreme parameterisation:
|
|
1035
|
+
|
|
1036
|
+
>>> lsc.k = 1.0/5.4
|
|
1037
|
+
>>> print_vector(numpy.convolve(lsc.ma.coefs, inflow)[:20])
|
|
1038
|
+
0.0, 0.815651, 4.261772, 8.259271, 8.181003, 5.553864, 3.371199,
|
|
1039
|
+
2.186025, 1.185189, 0.185185, 0.000836, 0.000004, 0.0, 0.0, 0.0, 0.0,
|
|
1040
|
+
0.0, 0.0, 0.0, 0.0
|
|
1041
|
+
|
|
1042
|
+
However, stability issues required dividing the simulation steps into shorter internal
|
|
1043
|
+
substeps, which increased the average number of calls per simulation step to 19.
|
|
1044
|
+
|
|
1045
|
+
>>> model.numvars.nmb_calls
|
|
1046
|
+
358
|
|
1047
|
+
>>> model.numvars.nmb_calls = 0
|
|
1048
|
+
|
|
1049
|
+
Also, note that the final water volume is negative due to the limited numerical
|
|
1050
|
+
accuracy of the results.
|
|
1051
|
+
|
|
1052
|
+
This stability issue should seldom be relevant for typical simulations of dam retention
|
|
1053
|
+
processes. But one should keep it in mind when playing around with parameters, for
|
|
1054
|
+
example, during model calibration. Otherwise, unexpectedly long simulation durations
|
|
1055
|
+
might occur.
|
|
1056
|
+
"""
|
|
1057
|
+
# import...
|
|
1058
|
+
# ...from HydPy
|
|
1059
|
+
from hydpy.auxs.anntools import ANN # pylint: disable=unused-import
|
|
1060
|
+
from hydpy.auxs.ppolytools import Poly, PPoly # pylint: disable=unused-import
|
|
1061
|
+
from hydpy.core import modeltools
|
|
1062
|
+
from hydpy.exe.modelimports import *
|
|
1063
|
+
from hydpy.interfaces import petinterfaces
|
|
1064
|
+
from hydpy.interfaces import precipinterfaces
|
|
1065
|
+
|
|
1066
|
+
# ...from dam
|
|
1067
|
+
from hydpy.models.dam import dam_model
|
|
1068
|
+
from hydpy.models.dam import dam_solver
|
|
1069
|
+
|
|
1070
|
+
|
|
1071
|
+
class Model(dam_model.Main_PrecipModel_V2, dam_model.Main_PEModel_V1):
|
|
1072
|
+
"""|dam_v001.DOCNAME.complete|."""
|
|
1073
|
+
|
|
1074
|
+
DOCNAME = modeltools.DocName(short="Dam-V1", description="dam model, version 1")
|
|
1075
|
+
__HYDPY_ROOTMODEL__ = True
|
|
1076
|
+
|
|
1077
|
+
SOLVERPARAMETERS = (
|
|
1078
|
+
dam_solver.AbsErrorMax,
|
|
1079
|
+
dam_solver.RelErrorMax,
|
|
1080
|
+
dam_solver.RelDTMin,
|
|
1081
|
+
dam_solver.RelDTMax,
|
|
1082
|
+
)
|
|
1083
|
+
SOLVERSEQUENCES = ()
|
|
1084
|
+
INLET_METHODS = (
|
|
1085
|
+
dam_model.Calc_Precipitation_V1,
|
|
1086
|
+
dam_model.Calc_PotentialEvaporation_V1,
|
|
1087
|
+
dam_model.Calc_AdjustedEvaporation_V1,
|
|
1088
|
+
dam_model.Pic_Inflow_V1,
|
|
1089
|
+
dam_model.Calc_NaturalRemoteDischarge_V1,
|
|
1090
|
+
dam_model.Calc_RemoteDemand_V1,
|
|
1091
|
+
dam_model.Calc_RemoteFailure_V1,
|
|
1092
|
+
dam_model.Calc_RequiredRemoteRelease_V1,
|
|
1093
|
+
dam_model.Calc_RequiredRelease_V1,
|
|
1094
|
+
dam_model.Calc_TargetedRelease_V1,
|
|
1095
|
+
)
|
|
1096
|
+
RECEIVER_METHODS = (
|
|
1097
|
+
dam_model.Pic_TotalRemoteDischarge_V1,
|
|
1098
|
+
dam_model.Update_LoggedTotalRemoteDischarge_V1,
|
|
1099
|
+
)
|
|
1100
|
+
ADD_METHODS = ()
|
|
1101
|
+
PART_ODE_METHODS = (
|
|
1102
|
+
dam_model.Calc_AdjustedPrecipitation_V1,
|
|
1103
|
+
dam_model.Pic_Inflow_V1,
|
|
1104
|
+
dam_model.Calc_WaterLevel_V1,
|
|
1105
|
+
dam_model.Calc_ActualEvaporation_V1,
|
|
1106
|
+
dam_model.Calc_ActualRelease_V1,
|
|
1107
|
+
dam_model.Calc_FloodDischarge_V1,
|
|
1108
|
+
dam_model.Calc_Outflow_V1,
|
|
1109
|
+
)
|
|
1110
|
+
FULL_ODE_METHODS = (dam_model.Update_WaterVolume_V1,)
|
|
1111
|
+
OUTLET_METHODS = (
|
|
1112
|
+
dam_model.Calc_WaterLevel_V1,
|
|
1113
|
+
dam_model.Pass_Outflow_V1,
|
|
1114
|
+
dam_model.Update_LoggedOutflow_V1,
|
|
1115
|
+
)
|
|
1116
|
+
SENDER_METHODS = ()
|
|
1117
|
+
SUBMODELINTERFACES = (precipinterfaces.PrecipModel_V2, petinterfaces.PETModel_V1)
|
|
1118
|
+
SUBMODELS = ()
|
|
1119
|
+
|
|
1120
|
+
precipmodel = modeltools.SubmodelProperty(
|
|
1121
|
+
precipinterfaces.PrecipModel_V2, optional=True
|
|
1122
|
+
)
|
|
1123
|
+
pemodel = modeltools.SubmodelProperty(petinterfaces.PETModel_V1, optional=True)
|
|
1124
|
+
|
|
1125
|
+
|
|
1126
|
+
tester = Tester()
|
|
1127
|
+
cythonizer = Cythonizer()
|