HydPy-SW1D-LIAS (submodel for calculating the discharge between two channel segments based on Bates et al. (2010) and Almeida et al. (2012))¶
The HydPy-SW1D model family member sw1d_lias is a routing submodel that
allows applying a 1-dimensional version of the “local inertial approximation of the
shallow water equations” introduced by Bates et al. (2010) and “stabilised” by
de Almeida et al. (2012).
Please refer to the documentation of the “user model” sw1d_channel and the
“composite model” sw1d_network, where we demonstrate and discuss sw1d_lias in
detail.
Method features¶
- class hydpy.models.sw1d_lias.Model[source]¶
Bases:
Main_CrossSectionModel_V2,RoutingModel_V2HydPy-SW1D-LIAS (submodel for calculating the discharge between two channel segments based on Bates et al. (2010) and Almeida et al. (2012)).
- The following “inlet update methods” are called in the given sequence at the beginning of each simulation step:
Reset_DischargeVolume_V1Reset the discharge volume to zero (at the beginning of an external simulation step).
- The following “outlet update methods” are called in the given sequence at the end of each simulation step:
Pass_Discharge_V1Pass the calculated average discharge of the current simulation step to an arbitrary number of outlet sequences.
- The following interface methods are available to main models using the defined model as a submodel:
Determine_MaxTimeStep_V1Interface method for determining the highest possible computation time step at a central location.Determine_Discharge_V1Interface method for determining the discharge at a central location.Get_MaxTimeStep_V1Interface method for querying the highest possible computation time step in s.Get_Discharge_V1Interface method for querying the discharge in m³/s.Get_PartialDischargeUpstream_V1Return a partial discharge estimate suitable for a downstream model.Get_PartialDischargeDownstream_V1Return a partial discharge estimate suitable for an upstream model.Get_DischargeVolume_V1Interface method for querying the discharge in m³.Set_TimeStep_V1Interface method for setting the actual computation time step in s.
- The following “additional methods” might be called by one or more of the other methods or are meant to be directly called by the user:
Calc_WaterVolumeUpstream_V1Query the water volume from an upstream submodel that follows theStorageModel_V1interface.Calc_WaterVolumeDownstream_V1Query the water volume from a downstream submodel that follows theStorageModel_V1interface.Calc_WaterLevelUpstream_V1Query the water level from an upstream submodel that follows theStorageModel_V1interface.Calc_WaterLevelDownstream_V1Query the water level from a downstream submodel that follows theStorageModel_V1interface.Calc_WaterLevel_V1Interpolate the water level based on the water levels of the adjacent channel segments.Calc_WaterDepth_WettedArea_WettedPerimeter_CrossSectionModel_V2Let a submodel that follows theCrossSectionModel_V2submodel interface calculate the water depth, the wetted area, and the wetted perimeter based on the current water level.Calc_WaterDepth_WettedArea_WettedPerimeter_V1Let a submodel that follows theCrossSectionModel_V2submodel interface calculate the water depth, the wetted area, and the wetted perimeter based on the current water level.Calc_MaxTimeStep_V1Estimate the highest possible computation time step for which we can expect stability for a central LIAS-like routing model.Calc_DischargeUpstream_V1Sum the (partial) discharge of all upstream routing submodels following theRoutingModel_V1orRoutingModel_V2interface.Calc_DischargeDownstream_V1Sum the (partial) discharge of all downstream routing submodels following theRoutingModel_V2orRoutingModel_V3interface.Calc_Discharge_V1Calculate the discharge according to Bates et al. (2010) and de Almeida et al. (2012).Update_Discharge_V1Reduce the already calculated discharge due to limited water availability in one of the adjacent channel segments.Update_DischargeVolume_V1Update the total discharge volume of the current external simulation step.
- Users can hook submodels into the defined main model if they satisfy one of the following interfaces:
CrossSectionModel_V2Interface for calculating discharge-related properties at a channel cross-section.RoutingModel_V1Interface for calculating the inflow into a channel.RoutingModel_V2Interface for calculating the discharge between two channel segments.RoutingModel_V3Interface for calculating the outflow of a channel.StorageModel_V1Interface for calculating the water amount stored in a single channel segment.
- DOCNAME = ('SW1D-LIAS', 'submodel for calculating the discharge between two channel segments based on Bates et al. (2010) and Almeida et al. (2012)')¶
- crosssection¶
Required submodel that complies with the following interface: CrossSectionModel_V2.
- storagemodelupstream¶
Required reference to the neighbour storage model upstream.
- storagemodelupstream_is_mainmodel¶
- storagemodelupstream_typeid¶
- storagemodeldownstream¶
Required reference to the neighbour storage model downstream.
- storagemodeldownstream_is_mainmodel¶
- storagemodeldownstream_typeid¶
- routingmodelsupstream¶
References to the neighbour routing models lying upstream.
- routingmodelsdownstream¶
References to the neighbour routing models lying downstream.
- REUSABLE_METHODS = ()¶
Parameter features¶
- class hydpy.models.sw1d_lias.ControlParameters(master: Parameters[TM_co], cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
ControlParametersControl parameters of model sw1d_lias.
- The following classes are selected:
LengthUpstreamThe upstream channel segment’s length [km].LengthDownstreamThe downstream channel segment’s length [km].StricklerCoefficientThe average Gauckler-Manning-Strickler coefficient [m^(1/3)/s].TimeStepFactorA factor for reducing the estimated computation time step to increase numerical stability [-].DiffusionFactorA factor for introducing numerical diffusion to increase numerical stability [-].
- class hydpy.models.sw1d_lias.DerivedParameters(master: Parameters[TM_co], cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
DerivedParametersDerived parameters of model sw1d_lias.
- The following classes are selected:
SecondsThe length of the actual simulation step size in seconds [s].WeightUpstreamA weighting coefficient for interpolating the water level from the centroids of two adjacent segments to their shared edge [-].LengthMinThe minimum length of the segments upstream and downstream of the relevant routing model [km].LengthMeanThe mean length of the segments upstream and downstream of the relevant routing model [km].
- class hydpy.models.sw1d_lias.FixedParameters(master: Parameters[TM_co], cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
FixedParametersFixed parameters of model sw1d_lias.
- The following classes are selected:
GravitationalAccelerationGravitational acceleration [m/s²].
Sequence features¶
- class hydpy.models.sw1d_lias.FactorSequences(master: Sequences[TM_co], cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
FactorSequencesFactor sequences of model sw1d_lias.
- The following classes are selected:
MaxTimeStepThe highest possible computation time step according to local stability considerations [s].TimeStepThe actual computation step according to global stability considerations [s].WaterDepthWater depth [m].WaterLevelWater level [m].WaterLevelUpstreamThe upstream channel segment’s water level [m].WaterLevelDownstreamThe downstream channel segment’s water level [m].WaterVolumeUpstreamThe upstream channel segment’s water volume [1000 m³].WaterVolumeDownstreamThe downstream channel segment’s water volume [1000 m³].WettedAreaThe channel wetted area [m²].WettedPerimeterThe channel wetted perimeter [m].
- class hydpy.models.sw1d_lias.FluxSequences(master: Sequences[TM_co], cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
FluxSequencesFlux sequences of model sw1d_lias.
- The following classes are selected:
DischargeUpstreamThe summed (partial) of all upstream routing models [m³/s].DischargeDownstreamThe summed (partial) of all downstream routing models [m³/s].DischargeVolumeThe total amount of discharge of a simulation step [m³/T].
- class hydpy.models.sw1d_lias.StateSequences(master: Sequences[TM_co], cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
StateSequencesState sequences of model sw1d_lias.
- The following classes are selected:
DischargeDischarge [m³/s].
- class hydpy.models.sw1d_lias.OutletSequences(master: Sequences[TM_co], cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
OutletSequencesOutlet sequences of model sw1d_lias.
- The following classes are selected:
LongQThe longitudinal outflow of the last channel segment [m³/s].