Conceptual structure#
Internally, the model represents the environment as a series of objects and their relationships, each representing different elements in the environment (rivers, soils, biota, etc) and their relationships. This can be represented on a UML diagram:
classDiagram
direction LR
Environment --o "1..*" GridCell
GridCell --o "1..*" SoilProfile
GridCell --o "1..8" WaterBody
WaterBody <|-- Reach
Reach <|-- RiverReach
Reach <|-- EstuaryReach
SoilProfile --o "1..*" SoilLayer
WaterBody --o "1..*" Biota
WaterBody --o "1" BedSediment
BedSediment --o "1..*" BedSedimentLayer
WaterBody --o "1" Reactor
SoilLayer --o "1" Reactor
BedSedimentLayer --o "1" Reactor
Here, Environment represents the geographical area that we wish to model (e.g. a river catchment), which is divided into a number of GridCells to give spatial resolution. Each GridCell can one or more SoilProfiles, which are split vertically into one or more SoilLayers to give vertical resolution down the soil profile. GridCells can also contain up to eight WaterBody objects (see Surface water network), each of which is an abstraction of a specific type of waterbody, such a RiverReach or EstuaryReach. Unlike SoilProfiles, WaterBody objects are linked across GridCells to model the flow of water, sediment and contaminants around the environment. Each WaterBody contains a BedSediment, which is further split into a vertical distribution of BedSedimentLayers. The final object is the Reactor, which is responsible for modelling the physical and chemical state of the contaminant being modelled.
Surface water network#
To be completed…