CRITERIA3D

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:

See latest release to download precompiled binaries.

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

Key Features

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

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:

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

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:

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

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

Contributors

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.