Constituents



Constituents and Water Quality modelling (i.e. Constituent generation, Constituents filtering, and constituents in Routing and Storages) are not available in the Source public version.


For an introduction to Water Quality in Source, please see Water Quality under Fundamental Concepts in the Getting Started chapter of the Source User Guide.

In Source, the term constituents refers to materials that are generated and transported within a catchment or river system and affect water quality. Common examples include sediments, nutrients, salts and other dissolved solids. 

Processes that act on these constituents to generate and transport them can be modelled in Source and are broadly categorised as Catchment Water Quality models and Storage and Link Water Quality models.

Catchment water quality models include:

  • Constituent generation models - describe how constituents are generated within a functional unit (and any associated constituent sources) and the resulting concentrations or loads are delivered to the sub-catchment link
  • Constituent filtering models - represent any reduction in constituents between generation within the FU and arrival at the link upstream of the sub-catchment link.

Storage and link water quality models include:

  • Constituent routing models - describe the movement of constituents along a river channel network, including exchange of constituent fluxes between floodplains, wetlands, irrigation areas and groundwater. Constituent routing models are conservative, meaning that they do not alter the total mass of constituent stored in the system
  • Constituent processing models - describe processes that can alter the mass of a constituent in a storage or river reach (link), such as via a decay process.

Overview of configuring constituents

Figure 1 Where to find constituents


To configure constituents:

After you have defined constituents, the Constituent Model Configuration dialog is useful for viewing, selecting and editing:

  • the filter and generation models and constituent source(s) for each sub-catchment/functional unit combination;
  • the instream processing model for each storage routing link; and 
  • the storage processing model for each storage node.

See Constituent Model Configuration for more details.

Defining constituents

Constituent configuration

The Constituents Configuration dialog (Figure 2; accessible via Edit » Constituents...) is used to enable constituent modelling, and define both constituents and constituent sources:

  • You can choose to enable constituents in a scenario using the Constituents Enabled checkbox. Note that disabling constituents results in constituent recorders being disabled as well;
  • Specify the type of routing - there are two constituent routing options in Source - Lumped and Marker. These are relevant at Link level. Lumped constituent routing is the default. 
  • Define and manage constituent type as follows:
    • To add a constituent type, enter its name in the Name field and click the Add button
    • To change its name, choose it from the list, then enter the new name in the Name field and click the Edit button, or
    • To remove a constituent type, choose it from the list, then click the Remove button.

After you have defined constituents, the Constituent Model Configuration dialog is used for viewing, selecting and editing:

  • the filter and generation models and constituent source(s) for each sub-catchment/functional unit combination;
  • the instream processing model for each storage routing link; and 
  • the storage processing model for each storage node.


Note:

  • For constituent sources (used only in catchment models), the default source is indicated by a green tick (Figure 2). It cannot be deleted and is automatically assigned to each functional unit/sub-catchment combination. You can change which source is the default using the Set as Default contextual menu.
Figure 2. Configure constituents


Constituent routing

There are two types of constituent routing available, Lumped and Marker routing. (Figure 2) and the choice made here will affect how constituents are routed at a link. Both of these are conservative routing models, which means that they do not change the total mass of constituent in the system. 

  • Lumped routing (default) is the simplest and most common approach applied in Source. Constituents are routed within a link based on kinematic wave theory. Assuming fully-mixed conditions within a link, the constituent flux and concentration simply move from the top of a link to the downstream end of a link within a time step, preserving the mass balance. Constituent concentrations in a link can be altered by the addition of constituents generated from sub-catchments, external inflows, and losses defined within a reach; and

  • Marker routing considers constituents as particles and tracks their movement within a link, which can be divided into divisions for hydrologic routing purposes. While available to all users this method is less commonly used. Initially, the model will start with a marker at the end of each division in every link. At every time step, a new marker for each constituent will be created for each division, and the distance a marker moves is driven by the velocity in the division over the current time step. While the flow rate is assumed constant over the timestep, the velocity within the division will change as a result of a change in reach storage. Markers will travel through the river network until they are either merged with adjoining markers or leave the river network (i.e. via extractions, decay within the reach, evaporation, groundwater inflows/losses and rainfall). Although available to all users, this method is less commonly used. Refer to Marker routing (Particle tracking) - SRG for more information about Marker routing.
    For marker routing, you must specify two additional parameters:
    • Minimum Marker Gap – defines the spacing between markers as either a fraction of the model time-step or fraction of the reach division. This parameter can improve model efficiency by reducing the number of markers that require processing at each model time step. The allowable range is from 0 to 1, with 0 not deleting any markers, while a value of 1 will ensure that at the end of each time-step, there is only one marker defined for each reach division; and
    • Minimum volume – minimum volume required to maintain constituent mass balance within the links.


Note: 

When using lumped routing the following applies for storage routing links, storages and weirs that have volumes close to or equal to zero during the run:

The working storage volume is the sum of the initial storage volume and all input flows, minus evaporation. The default minimum volume is 0.01 m3 and is not currently user-configurable. When the working volume drops below the default minimum volume, constituents are assumed to be deposited as mass and removed from the system. The deposited mass is recorded in the Deposited Mass parameter (located at Constituents » <constituent name> » Deposited Mass). 


Constituent Model Configuration

Constituent generation models, filter models and instream and storage processing models define where constituents originate and how they move through the modelled system. You assign and manage these models in a scenario using the Constituent Model Configuration dialog (Figure 3), which is opened by navigating to Edit » Constituent Models...

Before using this dialog, you need to define constituents and constituent sources (as described in Defining constituents) and also either set up your catchment area using the Geographic Wizard for catchments and assigned FU areas and/or add constituents to nodes or links Then, you can use the tree menu on the left to view the filter and generation models for each sub-catchment/FU combination, the instream processing model for each storage routing link, and the storage processing model for each storage node. 

The following operations can be undertaken:

  • Change the assigned model,
  • Change the parameter values or input data for the assigned model, 
  • Filter columns based on their contents
  • Sort columns in ascending or descending order; and
  • For filter and generation models you can also change, add or remove constituent sources, see Configuring constituent sources.

Refer to Working with&nbsp;rainfall-runoff&nbsp;models for more details on assigning a constituent model, adding input data and changing parameters. For more information on using filters see Working with filters in the Feature Table. There is also a sub-catchment filter to help you find sub-catchments either by name or by using the sub-catchment map, see Sub-catchment filter.

Figure 3. Constituent Model Configuration


 

Configuring constituents at nodes

In Source, the behaviour of constituents at each node varies. Select Constituents in the node’s feature editor to configure them. Depending on your requirements and the type of node, you can specify either a constituent’s load or concentration at a node. For example, you can only specify a constituent’s concentration at an inflow or a gauge node.

Inflow node

Only constituents with units of concentration (mass/volume e.g. mg/L) can be added or replaced using the Inflow node (Figure 4). Since constituent mass is a function of flow volume, the constituent mass will then be internally calculated by Source, depending on the volume of inflow at that point.

Figure 4. Inflow node (Constituents)


Gauge node

For each constituent, you can specify its observed concentration by entering a value, supplying a time series or defining a function (Figure 5). If required you can choose to override the modelled constituent concentration with the observed concentration by enabling Set to gauged. Applying an observed value at a Gauge node is useful for comparing modelled and observed values. Refer to Gauge node - Constituents for more information. 


Figure 5. Gauge node, Constituents


Storage node

Constituents are assumed to enter the Storage node at the same concentration as the inflow to the node. If no Processing Model is chosen the stored mass in the storage will be dependent on the initial concentration of the stored water volume after any inflows (gains)/outflows (losses) to the storage.

By default the initial concentration in the storage is assumed to be 0. It is recommended that the user must define an initial concentration of each modelled constituent in the feature editor, under Constituents (Figure 6). By clicking on the ellipsis button, parameters within the Storage Decay model can be assigned as a single value, from a Data Source or based on a Function (Figure 6). 

Figure 6. Storage node, Constituents



Inlet Channel Mixing allows the user to introduce mixing of constituents at a wetland conveyance link (Figure 7). Specify a percentage of the wetland/storage volume that conceptually represents the conveyance link - this is the inlet channel, and the remaining volume represents the main body of the storage/wetland. When water is exchanged between the wetland/river or the wetland/wetland, mixing of constituents is assumed to occur in the inlet channel. If the exchange of water is large enough to flush out the inlet channel, then the constituents will mix with the main body of the wetland, or the river, depending on the direction of water exchange.

Figure 7. Storage node (Inlet channel mixing)


Additionally, for each constituent, the user can configure various aspects of its concentration (Figure 8):

  • Additional Inflow Load – specify the amount of constituent to be added to the storage per time-step. It is not specific where this constituent mass comes from
  • Groundwater– represents the concentration of constituents entering or leaving the node via groundwater flow. Seepage needs to be configured for the storage, see Storage node - Seepage, and
  • Gauged Concentration– the observed concentration at that storage node. This can be used to compare against modelled constituent concentrations. The user can choose to override the modelled constituent concentration with the observed concentration by enabling Set to gauged
Figure 8. Storage node, Constituent concentration


Water User node

Constituent contributions can be added as a concentration at a Water User node and can be associated with all the available demand models. Figure 9 illustrates assigning constituent concentrations for an Irrigator demand model and a time series demand. These contributions represent e.g., constituents associated with irrigation return flows or urban treatment plant outflows and require that return flows are configured for the Water User. Concentrations can be assigned as a single value, from a Data Source or based on a Function.

Figure 9. Water User node, constituent concentration

Weir node

Constituent modelling at the Weir node has the same options as the Storage node (see Figure 6 and Figure 8 above). The Weir node has a configurable storage routing upstream link and a constituent decay model on this link is configurable through the Constituent Models table.

Scenario Transfer node

Along with flows, constituents are also transferred when using a Scenario Transfer node.

Constituents and Ownership

Constituent concentrations are assumed consistent across all owners, according to the concentration of the associated water body.



Constituents can be configured for storage routing links in the feature editor (Figure 10). Similar to a Storage Node, specify the link’s initial constituent concentration when the simulation begins.. This parameter assigns a concentration for each modelled constituent in the scenario for the markers created in that link during the model initialisation.  If required, select an instream Processing Model to define how each constituent is processed for each timestep of the model run, the parameters of which can then be configured by selecting Configure…, as shown in Figure 11. By clicking on the ellipsis button, parameters within the Storage Decay model can be assigned as a single value, from a Data Source or based on a Function.

Figure 10. Storage routing link, constituents



For each constituent, you can specify an increase in concentration from different sources, similar to constituents in the storage node (Figure 10). The parameters are:

  • Additional Inflow Load – specify the amount of constituent mass to be added to the storage routing link per time-step. It is not specific where this constituent mass comes from.
  • Groundwater – concentration of the constituent entering the link via groundwater flow
  • Timeseries Flux – concentration of the constituent entering the storage routing link via a Timeseries Flux.

Note that both Groundwater and Timeseries Flux need to be configured on the storage routing link for constituents to enter the link using these sources - see Groundwater and Storage routing - Timeseries Flux.


Note: Unless there is either an initial storage or initial flow defined, there will be no constituent mass in the link at the start of the model simulation.


Configuring constituents in catchment models

The models available for simulating constituents at Functional Unit and sub-catchment level are accessed through the Constituents Models table. These include constituent generation models and constituent filter models, configurable for each sub-catchment/functional unit (FU) combination.  by navigating to Edit » Constituent Models... (Figure 12). You can configure more than one generation and/or filter model for a sub-catchment/FU combination by using constituent sources.

Figure 12. Accessing the Constituent Models table



Constituent generation models

These describe how constituents (eg. sediments or nutrients) are generated within a functional unit and the resulting concentrations or loads passed to the filter model. Click on any constituent to view the associated FU and generation model for each sub-catchment (Figure 13).

Figure 13. Accessing the Constituent Generation models



Assign and parameterise generation models for a constituent as follows:

  1. Click on the constituents under Generation Models (in the tree menu).
  2. Assign a model to the sub-catchment/FU combination:
    • Click on the cell in the Model column that you want to change, and
    • Click on the drop-down arrow that appears and choose the required model from the menu
  3. Assign input data (if relevant) to the model, and
  4. Parameterise the filter model. Depending on the chosen model, the right-side of the table will populate with the associated default parameters. Click on the cells and edit these values.

The available constituent generation models are:

  • EMC/DWC – the Event Mean Concentration (EMC) / Dry Weather Concentration (DWC) model applies two fixed constituent concentrations (EMC & DWC) to an FU to calculate the total constituent load.
  • Export rate – this model applies a fixed constituent generation rate to a functional unit (FU) to calculate total constituent load. It requires only a single parameter so is quick to use and therefore useful for exploring sensitivity.
  • Nil Constituent – this model is used as a substitute constituent generation model where no constituent load needs to be modelled for a given constituent from a given FU
  • Observed concentration – this option allows you to assign observed quick flow and slow flow concentrations. 
  • Power Function – this model fits a rating curve describing the relationship between constituent concentration or load and discharges. It is a straight power curve, where flow in ML/d has been used to generate a relationship with the solute concentration (mg/L), 
  • Power Function (flow in mm) – this model is the same as the Power Function model, but uses a normalised power curve, where flow in mm/d has been used to generate a relationship with the solute concentration (mg/L).

The default constituent generation model is Nil Constituent which means that no constituents are modelled for a particular FU / sub-catchment combination.

Constituent filter models

Filter models represent any transformation of constituents between generation within the FU and arrival at the link upstream of the sub-catchment node. Filter models process constituents within the FU and as with constituent generation models, are applied to FUs. Follow the same steps outlined for generation models to assign, add input data and parameterise constituent filter models.

Illustrated in Figure 14, the available constituent filter models are:

  • 1st Order Kinetic Model k-C* – reduces the concentration of constituent leaving an FU as a result of a treatment facility (eg. a grass filter strip)
  • Load-based nutrient delivery ratio reduces the amount of nutrient leaving an FU in the quick flow as a function of the amount of load generated in the FU
  • Load-based sediment delivery ratio – reduces the amount of sediment leaving an FU as a function of the amount of load generated in the FU
  • Pass-through– preserves the amount of constituent generated in an FU and passes this to the downstream sub-catchment node
  • Percentage removal– removes a fixed percentage of the constituent associated with the quick flow of the FU and a fixed percentage of the constituent associated with the baseflow
  • RPM filter – The riparian particulate model (RPM) is used to model the trapping of sediment particles in riparian buffers and so reduce the load of sediment and associated constituents to streams. It is intended principally for catchment-scale applications.

The default constituent generation model is Pass-through which means that constituent are not filtered before entering a link and constituent loads remain unchanged.

Figure 14. Accessing the Constituent Filter models


More about the Constituent Models table

The Constituent Models table provides a central location from which all constituent models which have been assigned to catchments, nodes or links in a model can be accessed (Figure 15). This is a quick way to assign or modify constituent models. The Import/Export buttons allow the user to Export the current configuration of constituent models, apply bulk modifications, and then Import the table, provided column headings and the number of rows does not change. The Export/Import file format is .csv.

The Constituent Models table provides a central location from which all constituent models which have been assigned to catchments, nodes or links in a model can be accessed (Figure 15). This is a quick way to assign or modify constituent models. The Import/Export buttons allow the user to Export the current configuration of constituent models, apply bulk modifications, and then Import the table, provided column headings and the number of rows does not change. The Export/Import file format is .csv.

Figure 15. Constituent Models table



Linking constituent generation or filter models

Note: This functionality is currently under development and not all models can be linked. The description that follows is an illustration of what can be undertaken in Source.


Constituent generation and filter models may require one or more of their parameters to originate from another generation or filter model. Source allows a constituent NDR filter model to contain parameters which depend on a parameter from another generation / filter model. The concept is similar to that of functions whereby a parameter can be set from elsewhere in the system. Functions cannot be used here because the function manager is unable to influence the running order of models in a functional unit. So instead the design has a simple parameter linking tool which allows a user to connect one parameter on one constituent model to another parameter on another. The model parameter which is to be written to must have been compiled with metadata indicating that its value should come from another constituent model’s parameter. The function described above is termed as “Define Constituent Model Linkage” in Source.

Not all models can be linked. The description that follows is an illustration of what can be undertaken in the current version of Source, where nutrient delivery to the NDR filter model can be configured to depend on, for example, available sediment derived from another filter model (typically the SDR filter model) or one of the configured constituent generation models for a particular FU/sub-catchment combination

To configure constituent model linking between models for a given sub-catchment/FU combination and an optional constituent source, assign an NDR model to the “receiving” constituent, as shown in Figure 15. In this example TN is considered the “receiving” constituent. Although other filter models have been applied, only the NDR model has an active button where a link to another modelled constituent can be defined. The link is defined in the quickflowSedimentIn column. TSS, in this example, is the “contributing” constituent. Constituents derived through a Generation model and a Filter model are available for TSS. The user selects a contributing model and associated parameter which will provide the “contributing” constituent. In this example a linkage is defined between the SDR quickflowConstistuentIn parameter and the quickflowSedimentIn parameters of the NDR model (Figure 16). Once the linkage is created, the “contributing” model (in this case an SDR model) is run before the NDR (“receiving”) model, allowing the correct flow of data at the right point in time.

Figure 16. Constituent Models table

Figure 17. Constituent Models table


It is possible to Export/Import a Constituent Table containing linkages. When importing into the data grid, the number of rows in the data grid and in the csv file must match prior to importing the csv. When the value of a linkage cell is imported / pasted in, the linkage may not be valid at the time of importation / pasting. An example of this temporary invalidity would be a case where several data grids worth of values (several csv’s) needs to be imported, one after the other. The first csv of a data grid may contain a linkage to a model which does not exist yet because that model type is yet to be imported via the second csv of another data grid. In this case, the linkage is pending validation. It will remain pending until one of two things happen. The first is that the user imports the second csv, creating the expected model type for the linkage to connect too and the situation is resolved. The second is that the user attempts to edit the linkage by clicking the “…” button before the second csv is imported. If this happens the user is presented with a question bar at the top of the Define Constituent Model Linkage dialog. They can choose to keep the pending linkage and close the dialog, or throw away the linkage and define a new one. All pending linkages will be thrown away and revert to “Not Linked” upon the clicking of the “OK” button on the main Constituent Model Configuration screen.


Note: Source detects circular dependencies, and will notify you if a defined link needs to be corrected prior to proceeding.



Constituent sources

Constituent Sources extend the granularity at which constituent generation and filtering can be modelled,  allowing the user to configure more than one constituent generation and/or filter model for a given sub-catchment/FU combination. Each constituent source assigned to a constituent/sub-catchment/FU combination allows the user to select different constituent models or model parameters. For each source, the selected generation or filter model and its parameters are applied across the entire area of that sub-catchment/FU. The user can now define multiple constituent sources, for example 'Hill' and  'Gully'. This means they could define a model for FU2 - TSS - Hill and another for FU2 - TSS – Gully in the same sub-catchment. Typically, each source would contain both a generation and filter model (like the old system) which would work together, the generation model passing its constituent load to the filter model for filtering with the output from the filter models being summed across all constituent sources for the functional unit.

The first step when configuring constituent sources is to add sources to the Constituents Configuration dialog (Figure 18). There is always at least one constituent source that is the default, it is indicated by a green tick (Figure 18) and cannot be deleted. You can change which source is the default source using the Set as Default contextual menu. Constituent sources can also be deleted.

Figure 18. Define constituent sources

Once a constituent source has been defined, every sub-catchment/FU combination is automatically assigned the default constituent source for both constituent generation and constituent filtering.  You can change the constituent source from the default or add or remove additional constituent sources in the Constituent Models table by right-clicking on the constituent source cell and using the dropdown to select an alternative source (Figure 19).

Figure 19. Change constituent sources

Multiple constituent sources can be assigned to a FU/sub-catchment combination, with a different generation or filter model applied to each (Figure 20).

  • In the Constituent Models table, select the constituent to change the source for under either the filter or generation model (any change to the source is automatically applied to both models for that constituent)
  • Right-click the row with the appropriate sub-catchment/FU combination
  • Choose Add Constituent Source » Current Constituent » <source name>. This will add a new row to the table, allowing the user to assign and parameterise a new constituent generation or filter model for the selected constituent/sub-catchment/FU.

The same contextual menu can also be used to Remove a Constituent Source. At least one constituent source must exist at all times. If all sources have been removed, a new row with the default source is added automatically.

Figure 20. Multiple constituent sources


The bulk assignment of a source to multiple constituents can be made using the Add/Remove Constituent Source » All Constituents. This will add that constituent source to that sub-catchment/FU combination for all constituents.

The user can also assign the same constituent source to several sub-catchment/FU combination by selecting multiple rows, then right-clicking and choosing the desired constituent source menu item. Selecting all the desired rows in one go can become more difficult the larger the scenario. To get around this, the user can use the column filtering functionality of the data grid to trim the number of rows down to a more manageable number or they can break the changes down into several smaller changes.