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.
- class hydpy.models.sw1d_lias.Model[source]¶
Bases:
Main_CrossSectionModel_V2
,RoutingModel_V2
HydPy-SW1D-LIAS (submodel for calculating the discharge between two channel segments based on Bates et al. (2010) and Almeida et al. (2012)).
- The following interface methods are available to main models using the defined model as a submodel:
Perform_Preprocessing_V2
Routing model interface method for preprocessing data that is invariant within each external simulation step.Determine_MaxTimeStep_V1
Interface method for determining the highest possible computation time step at a central location.Determine_Discharge_V1
Interface method for determining the discharge at a central location.Perform_Postprocessing_V2
Routing model interface method for executing all tasks necessary at the end of each external simulation step.Get_MaxTimeStep_V1
Interface method for querying the highest possible computation time step in s.Get_Discharge_V1
Interface method for querying the discharge in m³/s.Get_PartialDischargeUpstream_V1
Return a partial discharge estimate suitable for a downstream model.Get_PartialDischargeDownstream_V1
Return a partial discharge estimate suitable for an upstream model.Get_DischargeVolume_V1
Interface method for querying the discharge in m³.Set_TimeStep_V1
Interface 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:
Reset_DischargeVolume_V1
Reset the discharge volume to zero (at the beginning of an external simulation step).Calc_WaterVolumeUpstream_V1
Query the water volume from an upstream submodel that follows theStorageModel_V1
interface.Calc_WaterVolumeDownstream_V1
Query the water volume from a downstream submodel that follows theStorageModel_V1
interface.Calc_WaterLevelUpstream_V1
Query the water level from an upstream submodel that follows theStorageModel_V1
interface.Calc_WaterLevelDownstream_V1
Query the water level from a downstream submodel that follows theStorageModel_V1
interface.Calc_WaterLevel_V1
Interpolate the water level based on the water levels of the adjacent channel segments.Calc_WaterDepth_WettedArea_WettedPerimeter_CrossSectionModel_V2
Let a submodel that follows theCrossSectionModel_V2
submodel interface calculate the water depth, the wetted area, and the wetted perimeter based on the current water level.Calc_WaterDepth_WettedArea_WettedPerimeter_V1
Let a submodel that follows theCrossSectionModel_V2
submodel interface calculate the water depth, the wetted area, and the wetted perimeter based on the current water level.Calc_MaxTimeStep_V1
Estimate the highest possible computation time step for which we can expect stability for a central LIAS-like routing model.Calc_DischargeUpstream_V1
Sum the (partial) discharge of all upstream routing submodels following theRoutingModel_V1
orRoutingModel_V2
interface.Calc_DischargeDownstream_V1
Sum the (partial) discharge of all downstream routing submodels following theRoutingModel_V2
orRoutingModel_V3
interface.Calc_Discharge_V1
Calculate the discharge according to Bates et al. (2010) and de Almeida et al. (2012).Update_Discharge_V1
Reduce the already calculated discharge due to limited water availability in one of the adjacent channel segments.Update_DischargeVolume_V1
Update the total discharge volume of the current external simulation step.Pass_Discharge_V1
Pass the calculated average discharge of the current simulation step to an arbitrary number of inlet or outlet sequences.
- Users can hook submodels into the defined main model if they satisfy one of the following interfaces:
CrossSectionModel_V2
Interface for calculating discharge-related properties at a channel cross-section.RoutingModel_V1
Interface for calculating the inflow into a channel.RoutingModel_V2
Interface for calculating the discharge between two channel segments.RoutingModel_V3
Interface for calculating the outflow of a channel.StorageModel_V1
Interface for calculating the water amount stored in a single channel segment.
- DOCNAME: DocName = ('SW1D-LIAS', 'submodel for calculating the discharge between two channel segments based on Bates et al. (2010) and Almeida et al. (2012)')¶
- crosssection: SubmodelProperty[CrossSectionModel_V2]¶
Required submodel that complies with the following interface: CrossSectionModel_V2.
- storagemodelupstream: modeltools.SubmodelProperty[StorageModel_V1]¶
Required reference to the neighbour storage model upstream.
- storagemodelupstream_is_mainmodel¶
- storagemodelupstream_typeid¶
- storagemodeldownstream: modeltools.SubmodelProperty[StorageModel_V1]¶
Required reference to the neighbour storage model downstream.
- storagemodeldownstream_is_mainmodel¶
- storagemodeldownstream_typeid¶
- routingmodelsupstream: modeltools.SubmodelsProperty[RoutingModel_V1 | RoutingModel_V2]¶
References to the neighbour routing models lying upstream.
- routingmodelsdownstream: modeltools.SubmodelsProperty[RoutingModel_V2 | RoutingModel_V3]¶
References to the neighbour routing models lying downstream.
- REUSABLE_METHODS: ClassVar[tuple[type[ReusableMethod], ...]] = ()¶
- cymodel: CyModelProtocol | None¶
- parameters: parametertools.Parameters¶
- sequences: sequencetools.Sequences¶
- masks: masktools.Masks¶
- class hydpy.models.sw1d_lias.ControlParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
SubParameters
Control parameters of model sw1d_lias.
- The following classes are selected:
LengthUpstream()
The upstream channel segment’s length [km].LengthDownstream()
The downstream channel segment’s length [km].StricklerCoefficient()
The average Gauckler-Manning-Strickler coefficient [m^(1/3)/s].TimeStepFactor()
A factor for reducing the estimated computation time step to increase numerical stability [-].DiffusionFactor()
A factor for introducing numerical diffusion to increase numerical stability [-].
- class hydpy.models.sw1d_lias.DerivedParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
SubParameters
Derived parameters of model sw1d_lias.
- The following classes are selected:
Seconds()
The length of the actual simulation step size in seconds [s].WeightUpstream()
A weighting coefficient for interpolating the water level from the centroids of two adjacent segments to their shared edge [-].LengthMin()
The minimum length of the segments upstream and downstream of the relevant routing model [km].LengthMean()
The mean length of the segments upstream and downstream of the relevant routing model [km].
- class hydpy.models.sw1d_lias.FactorSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
FactorSequences
Factor sequences of model sw1d_lias.
- The following classes are selected:
MaxTimeStep()
The highest possible computation time step according to local stability considerations [s].TimeStep()
The actual computation step according to global stability considerations [s].WaterDepth()
Water depth [m].WaterLevel()
Water level [m].WaterLevelUpstream()
The upstream channel segment’s water level [m].WaterLevelDownstream()
The downstream channel segment’s water level [m].WaterVolumeUpstream()
The upstream channel segment’s water volume [1000 m³].WaterVolumeDownstream()
The downstream channel segment’s water volume [1000 m³].WettedArea()
The channel wetted area [m²].WettedPerimeter()
The channel wetted perimeter [m].
- class hydpy.models.sw1d_lias.FixedParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
SubParameters
Fixed parameters of model sw1d_lias.
- The following classes are selected:
GravitationalAcceleration()
Gravitational acceleration [m/s²].
- class hydpy.models.sw1d_lias.FluxSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
FluxSequences
Flux sequences of model sw1d_lias.
- The following classes are selected:
DischargeUpstream()
The summed (partial) of all upstream routing models [m³/s].DischargeDownstream()
The summed (partial) of all downstream routing models [m³/s].DischargeVolume()
The total amount of discharge of a simulation step [m³/T].
- class hydpy.models.sw1d_lias.InletSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
InletSequences
Inlet sequences of model sw1d_lias.
- The following classes are selected:
LongQ()
The longitudinal inflow into the first channel segment [m³/s].
- class hydpy.models.sw1d_lias.OutletSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
OutletSequences
Outlet sequences of model sw1d_lias.
- The following classes are selected:
LongQ()
The longitudinal outflow of the last channel segment [m³/s].
- class hydpy.models.sw1d_lias.StateSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
StateSequences
State sequences of model sw1d_lias.
- The following classes are selected:
Discharge()
Discharge [m³/s].