HydPy-SW1D (Shallow Water 1D)¶
All models of the HydPy-SW1D model family serve to solve the 1-dimensional shallow
water equations. Opposed to models like musk_mct
, they do so in a more
hydrodynamical manner, which extends their scope to situations where traditional
hydrological flood routing approaches fail. Most importantly, they can account for
backwater effects. However, this additional functionality comes at the cost of
increased complexity, as less stable numerical schemes are used, and the different
parts of a channel network must be coupled more tightly. The application model
sw1d_channel
documentation discusses the first and the application model
sw1d_network
documentation discusses the second topic.
The available application models are responsible for different tasks. sw1d_channel is a
“normal” main model that is associated with Element
object as usual. The
particularity is that one usually does not apply sw1d_channel
to perform simulations.
Behind the scenes, HydPy couples all sw1d_channel
models (or, more precisely, the
involved submodels) belonging to the same collective
and delegates the actual
simulation work to an automatically generated sw1d_network
instance.
By themself, sw1d_channel
and sw1d_network
provide little “hydrodynamical”
functionality. Instead, they rely on submodels compatible with a finite volume
staggered grid discretisation. First, they need submodels following the
StorageModel_V1
interface (as sw1d_storage
) for keeping track of the amount of
water stored in a channel segment. Second, they need submodels for providing the
inflow into the upper segments (like sw1d_q_in
, which follows the RoutingModel_V1
interface), for calculating the flow between channel segments (like sw1d_lias
, which
follows the RoutingModel_V2
interface), and for removing water from the lower
segments (like sw1d_weir_out
, which follows the RoutingModel_V3
interface).
Available models:
- sw1d » HydPy-SW1D (base model)
- sw1d_channel » HydPy-SW1D-Channel ("user model" for preparing single channels that will be combined and solved by HydPy-SW1D-Network)
- sw1d_network » HydPy-SW1D-Network ("composite model" for solving the 1-dimensional shallow water equations in channel networks)
- sw1d_storage » HydPy-SW1D-Storage (submodel for calculating a single channel segment's water balance)
- sw1d_q_in » HydPy-SW1D-Q-In (submodel for adding pre-determined discharge to a channel inlet)
- sw1d_lias » HydPy-SW1D-LIAS (submodel for calculating the discharge between two channel segments based on Bates et al. (2010) and Almeida et al. (2012))
- sw1d_lias_sluice » HydPy-SW1D-LIAS/Sluice (submodel that extends HydPy-SW1D-LIAS with sluice functionalities)
- sw1d_pump » HydPy-SW1D-Pump (submodel for pumping water between two channel segments)
- sw1d_q_out » HydPy-SW1D-Q-Out (submodel for subtracting pre-determined discharge from a channel outlet)
- sw1d_weir_out » HydPy-SW1D-Weir-Out (submodel for calculating free weir flow at a channel outlet)
- sw1d_gate_out » HydPy-SW1D-Gate-Out (submodel for calculating flow under a submerged gate at a channel outlet)