Also known as
Model type Tool
Model part of larger framework LandLab
Note on status model
Date note status model
Incorporated models or components:
Spatial dimensions 1.5D
Spatial extent Landscape-Scale, Reach-Scale, Regional-Scale, Watershed-Scale
Model domain Terrestrial, Hydrology
One-line model description Component to calculate drainage area and accumulate flow, while permitting dynamic loss or gain of flow downstream.
Extended model description This component is closely related to the FlowAccumulator, in that this is accomplished by first finding flow directions by a user-specified method and then calculating the drainage area and discharge. However, this component additionally requires the passing of a function that describes how discharge is lost or gained downstream, f(Qw, nodeID, linkID, grid). See examples at to see how this works in practice.

flow dynamics, drainage, flow path,

Name Dan Hobley
Type of contact Model developer
Institute / Organization
Postal address 1
Postal address 2
Town / City Boulder
Postal code 80309
State Colorado
Country United States
Email address

Supported platforms
Unix, Linux, Mac OS, Windows
Other platform
Programming language


Other program language
Code optimized Single Processor
Multiple processors implemented
Nr of distributed processors
Nr of shared processors
Start year development 2018
Does model development still take place? No
If above answer is no, provide end year model development 2020
Code development status
When did you indicate the 'code development status'?
Model availability
Source code availability
(Or provide future intension)
Through web repository
Source web address
Source csdms web address
Program license type BSD or MIT X11
Program license type other
Memory requirements
Typical run time

Describe input parameters [[Describe input parameters model::grid : ModelGrid

A Landlab grid.

surface : field name at node or array of length node
The surface to direct flow across.

flow_director : string, class, instance of class.
A string of method or class name (e.g. 'D8' or 'FlowDirectorD8'), an uninstantiated FlowDirector class, or an instance of a FlowDirector class. This sets the method used to calculate flow directions.
Default is 'FlowDirectorSteepest'

runoff_rate : field name, array, or float, optional (m/time)
If provided, sets the runoff rate and will be assigned to the grid field 'water__unit_flux_in'. If a spatially and and temporally variable runoff rate is desired, pass this field name and update the field through model run time. If both the field and argument are present at the time of initialization, runoff_rate will *overwrite* the field. If neither are set, defaults to spatially constant unit input.

depression_finder : string, class, instance of class, optional
A string of class name (e.g., 'DepressionFinderAndRouter'), an uninstantiated DepressionFinder class, or an instance of a DepressionFinder class. This sets the method for depression finding.

loss_function : Python function, optional
A function of the form f(Qw, [node_ID, [linkID, [grid]]]), where Qw is the discharge at a node, node_ID the ID of the node at which the loss is to be calculated, linkID is the ID of the link down which the outflow drains (or a d8 ID if the routing is d8), and grid is a Landlab ModelGrid. The function then returns the new discharge at the node after the function is applied. Note that if a linkID is needed, a nodeID must also be specified, even if only as a dummy parameter; similarly, if a grid is to be passed, all of the preceding parameters must be specified. Both nodeID and linkID are required to permit spatially variable losses, and also losses dependent on flow path geometry (e.g., flow length). The grid is passed to allow fields or grid properties describing values across the grid to be accessed for the loss calculation (see examples). This function expects (float, [int, [int, [ModelGrid]]]), and return a single float, the new discharge value. This behavior is verified during component instantiation.

    • kwargs : optional

Any additional parameters to pass to a FlowDirector or DepressionFinderAndRouter instance (e.g., partion_method for FlowDirectorMFD). This will have no effect if an instantiated component is passed using the flow_director or depression_finder keywords.]]

Input format ASCII
Other input format
Describe output parameters [[Describe output parameters model::"drainage_area":

{ "dtype": float, "intent": "out", "optional": False, "units": "m**2", "mapping": "node", "doc": "Upstream accumulated surface area contributing to the node's discharge", }

"flow__data_structure_delta": { "dtype": int, "intent": "out", "optional": False, "units": "-", "mapping": "node", "doc": "Node array containing the elements delta[1:] of the data structure 'delta' used for construction of the downstream-to-upstream node array", }

"flow__upstream_node_order": { "dtype": int, "intent": "out", "optional": False, "units": "-", "mapping": "node", "doc": "Node array containing downstream-to-upstream ordered list of node IDs", }

"surface_water__discharge": { "dtype": float, "intent": "out", "optional": False, "units": "m**3/s", "mapping": "node", "doc": "Volumetric discharge of surface water", }

"surface_water__discharge_loss": { "dtype": float, "intent": "out", "optional": False, "units": "m**3/s", "mapping": "node", "doc": "Total volume of water per second lost during all flow out of the node", }

"topographic__elevation": { "dtype": float, "intent": "in", "optional": True, "units": "m", "mapping": "node", "doc": "Land surface topographic elevation", }

"water__unit_flux_in": { "dtype": float, "intent": "in", "optional": True, "units": "m/s", "mapping": "node", "doc": "External volume water per area per time input to each node (e.g., rainfall rate)", }]]

Output format ASCII
Other output format
Pre-processing software needed? No
Describe pre-processing software
Post-processing software needed? No
Describe post-processing software
Visualization software needed? No
If above answer is yes
Other visualization software

Describe processes represented by the model
Describe key physical parameters and equations
Describe length scale and resolution constraints
Describe time scale and resolution constraints
Describe any numerical limitations and issues

Describe available calibration data sets
Upload calibration data sets if available:
Describe available test data sets
Upload test data sets if available:
Describe ideal data for testing

Do you have current or future plans for collaborating with other researchers?
Is there a manual available? No
Upload manual if available:
Model website if any
Model forum / discussion board

This part will be filled out by CSDMS staff

OpenMI compliant Not yet"Not yet" is not in the list (Yes, No but planned, No but possible, No not possible) of allowed values for the "Code openmi compliant or not" property.
BMI compliant Not yet"Not yet" is not in the list (Yes, No but planned, No but possible, No not possible) of allowed values for the "Code IRF or not" property.
WMT component Not yet"Not yet" is not in the list (Yes, In progress, No but possible, No not possible) of allowed values for the "Code CMT compliant or not" property.
PyMT component Not yet"Not yet" is not in the list (Yes, In progress, No but possible, No not possible) of allowed values for the "Code PyMT compliant or not" property.
Is this a data component
Can be coupled with:
Model info
Dan Hobley
Nr. of publications: --
Total citations: 0
h-index: --"--" is not a number.
m-quotient: 0
Qrcode LossyFlowAccumulator.png
Link to this page




Nr. of publications: --
Total citations: 0
h-index: --"--" is not a number.
m-quotient: 0

See more publications of LossyFlowAccumulator



Input Files

Output Files