iFlow
General introduction to the iFlow framework
iFlow is a framework for idealised modelling of flow and transport of constituents in rivers and estuaries. Rather than being a fixed model maintained by a single party, iFlow provides an easily extendable modular platform in which you can combine existing features (i.e. modules) and extend this with you own modules. This allows you to use iFlow to construct anything from very simple to rather complex models.
iFlow is especially designed to work with modules which make a decomposition of the solution (e.g. flow velocity, transport of constituents) and therefore allow analysis of the result. Furthermore, default modules are included to conduct extensive sensitivity studies over any model parameter.
The iFlow core code is designed to make it easy to include, exclude or change model components. The core automatically ensures modules are called in the correct order, inserting iteration loops over groups of modules that are mutually dependent. The iFlow core also ensures a smooth coupling of modules using analytical and numerical solution methods or modules that use different computational grids.
Main functionalities of iFlow
Width-averaged flow model - perturbation technique
The width-averaged flow model models tidal propagation and river flow in estuaries and tidal rivers of arbitrary geometry. The mathematical perturbation technique makes a decomposition of the full equations of motion into a leading-order linear tidal propagation, a first-order linear corrections to estimate the non-linear tidal propagation, and other flow components including gravitational circulation. This means that the model computes the generation of over-tides and density effects and furthermore provides a decomposition of the flow into the various physical processes causing these flow contributions. The model comes with a range of (simplified) turbulence closure models.
For further reading on this model component, please see Dijkstra et al (2017)
Width-averaged sediment model - perturbation technique
The width-averaged sediment model computes the suspended sediment concentration and formation of turbidity maxima in estuaries and tidal rivers. The model can compute dynamic equilibrium sediment concentrations (i.e. a tidally varying concentration that does not vary on a subtidal timescale) as well as subtidal variations on a slow timescale, e.g. with the spring-neap cycle or gradual changes in river discharge. Similar to the flow model, the perturbation technique allows for the decomposition of the sediment concentration and sediment transport into its main forcing components. Besides the basic model, there are modules that model the effects of sediment-induced turbulence damping, hindered settling, and flocculation.
For a further inrtoduction into the basic sediment model we refer to Dijkstra et al (2017)
Further details and more advanced features are in other iFlow publications and in the iFlow manuals.
Three-dimensional flow model - perturbation technique
Under constructionThe three dimensional flow model models tidal propagation and river flow in estuaries and tidal rivers of arbitrary geometry. The mathematical perturbation technique makes a decomposition of the full equations of motion into a leading-order linear tidal propagation, a first-order linear corrections to estimate the non-linear tidal propagation, and other flow components including gravitational circulation. This means that the model computes the generation of over-tides and density effects and furthermore provides a decomposition of the flow into the various physical processes causing these flow contributions. The model comes with a range of (simplified) turbulence closure models.
This model component already exists as a standalone model, see Kumar et al (2016)
Work is currently done to improve the existing model and migrate it to iFlow.
Width-averaged fully non-linear flow and salinity model - Numerical bifurcation toolbox
Under constructionThe width-averaged flow and salinity model solves for the fully non-linear equations for tidal and subtidal flow and salinity for estuaries of arbitrary geometry. The model computes dynamic equilibrium conditions without the need of spin-up and in high numerical accuracy. The model includes decompositions of the flow and salinity contributions related to specific forcing components, such that the flow may still be analysed in great detail.
The model is part of the numerical bifurcation toolbox in iFlow, which allows one to efficiently compute equilibrium solutions for various parameter settings and track (simple) bifurcations.
This model component is currently under construction.
Read more and getting started
Several scripts and documents are provided to learn to work with iFlow. These are provided with the iFlow download:
- A getting started tutorial - see folder 'Examples/Tutorial' in the iFlow directory
- Example input files linked to (scientific) publications or other applications of the model - see folder 'Examples' in the iFlow directory
- Extensive manuals for iFlow containing an in-depth description of the core of iFlow and the modules included - see folder 'Manuals' in the iFlow directory.
Additionally, my paper "The iFlow Modelling Framework v2.4. A modular idealized process-based model for flow and transport in estuaries" is published and freely available via this link.
Programming language, installation and prerequisites
iFlow is written in Python 2.7 (a Python 3 version is currently in beta and not yet publically available). To install, make sure python and common required packages are installed. We recommend installing Anaconda, which includes Python and all packages needed to run iFlow. For more on installation, read the manual or the tutorial.
Running iFlow requires no or very little knowledge of Python or programming in general. Users will however quickly find themselves wanting to make custom visualisations (figures/tables), requiring basic knowledge of Python.
License and terms of use
When using iFlow in any scientific publication, technical report or otherwise formal writing, please cite my paper: Dijkstra, Y.M., Brouwer, R.L, Schuttelaars, H.M. and Schramkowski, G.P., 2017, "The iFlow Modelling Framework v2.4. A modular idealized process-based model for flow and transport in estuaries." Geoscientific Model Development, 10, 2691-2713.
The iFlow code is licensed under LGPL (GNU Lesser General Public License). In summary, this means that the code is open source and may be used freely for non-commercial and commercial purposes. Any alterations to the iFlow source code (core and modules) must be licensed under LGPL as well. However, new modules or a coupling between iFlow and other software may be published under a different licence. See the license file supplied with the iFlow dowload for all details.
Users of iFlow are encouraged to make their own developed modules and model applications open source as well. Contributions to iFlow are welcome. Contact me for more information.
The initial developement of iFlow was funded by the Flemish-Dutch Scheldt Committee (VNSC) through contracts 3109 6925 and 3110 6170 of the "Agenda for the Future" scientific research program that is aimed at a better understanding of the Scheldt Estuary for improved policy and management.