Skip to content

Latest commit

 

History

688 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

GLM-AED

Project Status: Active – The project is being actively developed. GLM-AED Status: pre-release Linux macOS Windows GPLv3 license Binder


The General Lake Model (GLM) is a water balance and one-dimensional vertical stratification hydrodynamic model, which is dynamically coupled with the AED water quality modelling library. This repository houses the coupled model code libraries, example applications, and binaries (ready-to-run executable files).

GLM-AED is suitable for simulating conditions in a wide range of natural and engineered lakes, including shallow (well-mixed) and deep (stratified) systems. The model has been successfully applied to systems from the scale of individual ponds and wetlands, to actively operated reservoirs, upto the scale of the Great Lakes.


Release status

Important

This bundle is current, but in a pre-release state.

The main branch is up to date with the GLM 4 and AED 3 source lines, and the binaries published here are built from it (currently glm_4.0.0). However, there is not yet a tagged 4.0.0 release: input configuration, module options and output variables may still change before that release is finalised.

The most recent tagged release remains v3.3.0 (2022), which is built against the older GLM 3.x line. If you need a stable, citable version, use that tag and expect to revisit your configuration when 4.0.0 is finalised. If you want the current model, use the binaries in this repository.


Repository organisation

The repository includes:

  • binaries : model pre-compiled executables for macOS, Linux and Windows.
  • glm-source : model source code, including GLM and the AED libraries as linked sub-modules.
  • glm-examples : selected example simulations, including all required input files.
  • .github/workflows : GitHub Actions workflow (compile.yml) for automated compilation and testing.

The source bundle in glm-source is assembled from the following sub-modules (dependent repositories):

Sub-module Repository Role
GLM GLM Hydrodynamic model (4.x line)
libaed-api libaed-api AED standard coupling interface
libaed-water libaed-water AED water column modules
libaed-benthic libaed-benthic AED benthic modules
libaed-demo libaed-demo AED demonstration modules
libutil libutil Shared utility routines
libplot libplot Optional plotting support

Getting the latest executables

For users who only need a model executable (not the full source code), it can be downloaded without cloning the full repository. Navigate to the folder for your platform under binaries, then download the file:

  • macOSbinaries/macos, by OS version (Big_Sur, Monterey, Sonoma, Sequoia, Tahoe_26)
  • Linuxbinaries/ubuntu, as .deb packages by Ubuntu release (20.04, 22.04, 24.04, 26.04)
  • Windowsbinaries/windows, as versioned .zip archives

Each platform folder also contains a glm_latest directory holding the current build unpacked, along with a VERSION file and a ReleaseInfo.txt recording the exact git commits of every sub-module the build was produced from. If you need to know precisely what source a binary came from, read ReleaseInfo.txt.


Cloning the repo with all sub-module code

To access the full repository, including the model examples, the repository must be cloned or downloaded in full. Note that a basic clone will not include the code/files in the linked sub-modules, so an extra argument is needed: --recurse-submodules

Cloning the latest code

git clone --recurse-submodules https://github.com/AquaticEcoDynamics/glm-aed.git

Cloning a particular tag

git clone --recurse-submodules -b v3.3.0 https://github.com/AquaticEcoDynamics/glm-aed.git

Note

This repository is large (over 1 GB) because it carries the full history of published binaries. If you only need the current source and examples, a shallow clone is much faster: git clone --depth 1 --recurse-submodules --shallow-submodules https://github.com/AquaticEcoDynamics/glm-aed.git


Version lineage

Line Source repository Status
GLM 4.x GLM Active development — pre-release
GLM 3.x GLM3 Archived, no longer developed

Current glm-aed builds track the 4.x line and are not compatible with the archived GLM3 repository, which uses the earlier AED coupling interface. To build a 3.x-based coupled model, use a GLM-AED release that predates the 4.x transition.


Citing this code

DOI

Users may need to cite the model in general, or a specific model code package/bundle/version.

Citing a specific code bundle, please use the appropriate DOI, eg.:

Hipsey, M.R., Boon, C., Bruce, L.C., Thomas, Q., Weber, M., Winslow, L., Read, J.S., & Hamilton, D.P. (2022). AquaticEcoDynamics/glm-aed: v3.3.0 (v3.3.0). Zenodo. https://doi.org/10.5281/zenodo.7047527.

Note that a DOI for the 4.0.0 bundle will be minted when that release is tagged; until then, cite the v3.3.0 bundle and state the commit or ReleaseInfo.txt build you actually used.

Citing the GLM or AED models:

Hipsey, M.R., Bruce, L.C., Boon, C., Busch, B., Carey, C.C., Hamilton, D.P., Hanson, P.C., Read, J.S., de Sousa, E., Weber, M. and Winslow, L.A., 2019. A General Lake Model (GLM 3.0) for linking with high-frequency sensor data from the Global Lake Ecological Observatory Network (GLEON). Geoscientific Model Development, 12(1), pp.473-523.

Hipsey, M.R., ed. (2022) Modelling Aquatic Eco-Dynamics: Overview of the AED modular simulation platform. Zenodo. https://doi.org/10.5281/zenodo.6516222.


Getting GLM-AED+ (also termed GLM+)

The AED+ version of AED adds further modules which are within:

  • libaed-dev — modules under active development,
  • libaed-riparian — riparian modules,
  • libaed-light — light and optics modules.

GLM+ is available to members of the AED community.

If you are a researcher or practitioner who would like to work with the AED+ modules, get in touch with the AED group via aquatic.science.uwa.edu.au.


Contributing

Contributions are welcome, and not only in the form of code. There are three main routes.

Example and benchmark cases. These are managed here, in glm-examples. Each case is a self-contained directory holding a glm3.nml, its meteorological and boundary condition inputs, an aed configuration where water quality is simulated, and a short readme.md describing the site. New cases are added by pull request: add the directory, then add a block for it to glm-examples/example_lakes.Rmd, which compiles the gallery in glm-examples/README.md. Benchmark cases that exercise a particular process or module are as useful as whole-lake applications. The Wiki covers adding a new example lake in detail.

Code development. Minor developments are welcome here — a bug fix or a small improvement can be raised as an issue or a pull request against this repository. Note though that glm-source is a bundle of sub-modules pinned to fixed commits, so it is a snapshot of the source rather than a place to develop against. Anyone doing sustained work on GLM or the AED libraries is encouraged to work through AED_Tools, the AED Developer Toolkit, which fetches the model repositories directly and builds them from live development branches. That work is what feeds into this bundle when the sub-module pins are updated for a release.

Documentation and discussion. Improvements to the Wiki, to the glm-workbook exercises, and to the documentation carried in the source are genuinely valuable, and are often the easiest place to start. The Discussions board is the place for questions, configuration advice and proposals — answering someone else's question there is a contribution in its own right.


Getting hold of older versions

Releases from 2022 onward are available in the releases section, and older binaries remain in the binaries tree. For users seeking older bundles of the code, please visit the AED releases repository.


Additional information

See repository Wiki for additional information on getting started using GLM-AED, working with the repository, and updating or adding new example lakes.

For new users, please also visit the glm-workbook which contains some practical exercises and case-studies for users new to lake modelling.


AED

Releases

Used by

Contributors

Languages