CRITERIA3D

Includes a numerical solution for three-dimensional water and heat flow in the soil, coupled surface and subsurface flow, meteorological data interpolation, radiation budget, crop development and crop water uptake.
https://github.com/arpa-simc/criteria3d

Category: Consumption
Sub Category: Agriculture and Nutrition

Keywords

3d-water-fluxes agro-meteorological boundary-conditions catchments crop environmental-modelling heat hydrological-modelling hydrology land-surface-modeling meteorological-data-interpolation richards-equation soil soil-water-modelling subsurface-flow surface-runoff water water-balance

Keywords from Contributors

climate-analysis criteria-3d spatial-analysis slope-stability weather-generator crop-development irrigation irrigation-forecast irrigation-water-needs soil-moisture

Last synced: about 6 hours ago
JSON representation

Repository metadata

CRITERIA-3D is a three-dimensional agro-hydrological model.

README.md

rocky9
rocky10
fedora42
fedora44

CRITERIA-3D

CRITERIA-3D is an open-source agro-hydrological model for simulating water flow, crop water use, and slope stability in small to medium-sized catchments.

Its fully three-dimensional numerical solver is parallelized for shared-memory multi-core CPUs (OpenMP) or NVIDIA GPUs (CUDA). The model also includes meteorological interpolation, radiation modelling, crop development, root water uptake, snow processes, and slope stability analysis.

The model requires hourly meteorological data as input, including:

  • air temperature (°C)
  • precipitation (mm)
  • solar irradiance (W m-2)
  • relative humidity (%)
  • wind speed (m s-1)

See latest release to download precompiled binaries.


Case study of the Ravone creek catchment (Bologna, Italy)

Key Features

  • Fully coupled 3D surface–subsurface water flow
  • Parallel numerical solver for multi-core CPUs (OpenMP) and NVIDIA GPUs (CUDA)
  • Transient crop canopy development and root water uptake
  • Hourly meteorological data interpolation
  • Surface radiation budget
  • Snow accumulation and melt
  • Slope stability analysis
  • Empirical soil cracking model
  • Biomass allocation in forestry (HYDRALL model, in development)

Note

Crop water uptake is simulated as part of the three-dimensional soil water balance. For dedicated irrigation scheduling and crop water requirement applications, see CRITERIA-1D.

Applications

  • Watershed hydrology and water balance studies
  • Flood simulation and flood risk assessment
  • Landslide susceptibility and slope stability assessment
  • Climate change impact studies
  • Evaluation of nature-based solutions
  • Research on coupled surface–subsurface hydrological processes


Screenshot of the CRITERIA-3D interface

soilFluxes3D library

The agrolib/soilFluxes3D library (shared with the Criteria-1D model) implements a fully coupled numerical solution for three-dimensional water and heat transport in soil. Parallel implementations are available for both multi-core CPUs (OpenMP) and NVIDIA GPUs (CUDA).

Features include:

  • 3D Richards equation for unsaturated flow
  • 3D Darcy equation for saturated flow
  • 2D Saint-Venant surface runoff
  • Integrated finite difference discretization
  • Coupled heat transport
  • Multiple hydraulic boundary conditions

Surface water flow is described by the two-dimensional parabolic approximation of the St. Venant equation, using Manning’s equation of motion. Subsurface water flow is described by the three-dimensional Richards’ equation for the unsaturated zone and by three-dimensional Darcy’s law for the saturated zone, using an integrated finite difference formulation. The available boundary conditions are surface runoff, culvert runoff, free drainage (lateral or deep) and prescribed total potential. The water flow equations may be coupled with the heat transport equations, which include diffusive, latent and advective terms. Atmospheric variables (net irradiance, air temperature, relative humidity and wind speed) can be used as upper boundary conditions.

Documentation & References

  • Model description (PDF)

  • The user manual (draft) is available in the DOC directory.

CRITERIA is operational at Arpae Emilia-Romagna. It has been used in several international projects (Vintage, Highlander, Arcadia) and it is reported in the International Soil Modeling Consortium.

How to cite

  1. Bittelli, M., Tomei, F., Pistocchi, A., Flury, M., Boll, J., Brooks, E. S., & Antolini, G. (2010). Development and testing of a physically based, three-dimensional model of surface and subsurface hydrology. Advances in Water Resources, 33(1), 106-122.
  2. Bittelli, M., Pistocchi, A., Tomei, F., Roggero, P. P., Orsini, R., Toderi, M., ... & Flury, M. (2011). CRITERIA-3D: a mechanistic model for surface and subsurface hydrology for small catchments. In Soil hydrology, land use and agriculture: measurement and modelling (pp. 253-265). Wallingford UK: CAB International.
  3. Sannino, G., Tomei, F., Bittelli, M., Meisina, C., Bordoni, M., & Valentino, R. (2025). A three-dimensional agro-hydrological model for predictive analysis of shallow landslides: CRITERIA-3D. Engineering Geology, 352, 108073.

Repository structure

CRITERIA3D/
├─ agrolib/ Core libraries (shared with Criteria-1D and PRAGA)
├─ src/ Criteria-3D specific libraries
├─ DATA/ Templates and sample projects
├─ DOC/ Documentation
├─ MapGraphics/ GUI library
├─ bin/ Applications
└─ ..

Requirements

Component Version
C++ C++17
Qt 5.15 or later
Build system qmake
Platforms Windows, Linux, macOS

Step-by-Step Compilation Guide

1️⃣ Install the Required Software

The project uses qmake and can be built with Qt Creator on Windows, Linux and macOS.

Make sure the following software is installed:

  • A C++ compiler
  • Qt 5.x or later
  • Qt Charts module (included with Qt)
  • Qt5 Compatibility module (required for Qt 6.x or later)
  • Qt Creator (recommended IDE for building Qt projects)
  • NVIDIA CUDA Toolkit (optional, required to build the GPU solver)

Note

By default, CRITERIA-3D is built with the multi-core CPU solver (OpenMP). GPU acceleration is optional and can be enabled by installing the NVIDIA CUDA Toolkit and activating the CUDA_CONFIG build option.

2️⃣ Build the Projects in Qt Creator

  1. Open the MapGraphics project:

    MapGraphics/MapGraphics.pro
    
  2. Build the project using Build → Build Project.

  3. Open the main project:

    bin/Makeall_CRITERIA3D/Makeall_CRITERIA3D.pro
    
  4. Build it in the same way.

Important

  • Always build MapGraphics before building the main project.
  • For both projects, open Projects → Build Settings in Qt Creator and disable Shadow build. This prevents common compilation errors.
  • To build the GPU solver, uncomment CONFIG += CUDA_CONFIG in agrolib/parallel.pri. By default CRITERIA-3D is compiled with the OpenMP CPU solver.

3️⃣ Install and Run CRITERIA-3D

After successfully compiling the project:

  1. Create a directory named CRITERIA3D containing the following subdirectories:

    CRITERIA3D/
    ├── bin/
    ├── DATA/
    └── DOC/
    
  2. Copy the compiled executable from the build directory to CRITERIA3D/bin.

  3. Windows only: open the bin directory and run:

    windeployqt CRITERIA3D.exe
    
  4. Copy the DATA/TEMPLATE and DATA/SETTINGS directories from the repository into CRITERIA3D/DATA.

  5. Create the directory CRITERIA3D/DATA/PROJECT and copy one of the sample projects (for example, DATA/PROJECT/Montue) from the repository.

  6. Copy the entire contents of the repository's DOC directory into CRITERIA3D/DOC.

  7. Linux / macOS only: define the environment variable CRITERIA3D_HOME and set it to the path of CRITERIA3D/DATA.

  8. Run CRITERIA3D from the bin directory.

Command-Line Compilation (Fedora)

Fedora packages can be built using the provided RPM specification: fedora/SPECS/CRITERIA3D.spec

Authors

  • Fausto Tomei
  • Gabriele Antolini
  • Laura Costantini
  • Antonio Volta
  • Caterina Toscano

Contributors

  • Alberto Pistocchi
  • Marco Bittelli
  • Giada Sannino

Contacts

License

CRITERIA-3D is developed by ARPAE Hydro-Meteo-Climate Service (Emilia-Romagna, Italy).
The applications (CRITERIA3D, VINE3D) are distributed under the GNU GPL license.
The agrolib libraries are distributed under the GNU LGPL license.
See the LICENSE and COPYING.LESSER files for the complete license terms.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 3 days ago

Total Commits: 5,468
Total Committers: 18
Avg Commits per committer: 303.778
Development Distribution Score (DDS): 0.497

Commits in past year: 688
Committers in past year: 7
Avg Commits per committer in past year: 98.286
Development Distribution Score (DDS) in past year: 0.233

Name Email Commits
ftomei f****i@a****t 2749
lauracosta l****l@i****t 1246
Gabriele Antolini g****i@a****t 381
Caterina Toscano c****o@a****t 321
avolta a****a@a****t 195
voltAntonio a****a@a****t 190
IvanDB i****9@g****m 128
Spengy s****y@g****m 106
Antonio Volta a****a@A****T 67
giadasan g****o@a****t 40
Atena Niazi Nasihati a****i@a****t 13
EfthyC e****h@y****r 8
Emanuele Di Giacomo e****o@a****t 8
Fausto Tomei f****i@A****T 7
Laura Costantini l****i@A****T 4
Jason o****n@a****m 2
Jason e****l@a****m 2
unknown A****y@A****) 1

Committer domains:


Issue and Pull Request metadata

Last synced: 4 days ago

Total issues: 0
Total pull requests: 2
Average time to close issues: N/A
Average time to close pull requests: about 2 months
Total issue authors: 0
Total pull request authors: 2
Average comments per issue: 0
Average comments per pull request: 0.0
Merged pull request: 1
Bot issues: 0
Bot pull requests: 0

Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/arpa-simc/criteria3d

Top Issue Authors

Top Pull Request Authors

  • ftomei (1)
  • mfortini (1)

Top Issue Labels

Top Pull Request Labels


Package metadata

proxy.golang.org: github.com/arpa-simc/criteria3d

Score: -Infinity