The GENerator of Optimized Atmospheric chemical mechanisms
GENOA is an open-source framework for scalable, accuracy-controlled reduction and analysis of highly detailed volatile organic compound (VOC) mechanisms.
Documentation and user guide: https://tool-genoa.github.io/genoa
This repository hosts GENOA v3, which advances scalability, modularity, and workflow design for the reduction of mechanisms containing up to millions of reactions, including those generated by GECKO-A, while preserving key indicators such as secondary organic aerosol formation (SOA) and gas-phase reactivity.
Earlier GENOA implementations, GENOA v1 and GENOA v2.0, coupled to SSH-aerosol, were released as the GENerator of Reduced Organic Aerosol Mechanisms.
GENOA introduces a scalable, graph-aware framework that integrates two reduction processes:
A fast, strategy-driven pruning process that reduces low-influence species and reactions using configurable thresholds.
An iterative refinement process guided by box-model simulations and quantitative error metrics, enabling accuracy-controlled mechanism reduction.
Together, these processes allow users to explore reduction trade-offs across VOC classes and chemical evaluation targets within user-defined accuracy constraints.
GENOA can be run using Docker (recommended) or installed from source.
git clone https://github.com/tool-genoa/genoa.git
cd genoa
docker build -t genoa .
docker run -it genoaFor complete installation and configuration instructions, see the GENOA documentation.
Run GENOA with a configuration file:
genoa ./test_cases/config/1_build.inior from source:
python -m genoa ./test_cases/config/1_build.iniFor long jobs or HPC environments, use nohup or the provided runtime script:
./runtime/scripts/run_job.sh ./test_cases/config/1_build.ini ./output/logs/run.loggenoa/
├── data
│ ├── gecko-files
│ └── ssh-aerosol-files
├── Dockerfile
├── LICENSE
├── pyproject.toml
├── README.md
├── requirements.txt
├── runtime
│ ├── logs
│ └── scripts
│ └── run_job.sh
├── src
│ └── genoa
├── test_cases
│ ├── conditions
│ ├── config
│ ├── input
│ └── output
└── vendor
├── boxmodel4gecko-v-1-0-genoa
└── UManSysProp_public-master
The vendor/ directory contains external models that have been adapted for integration with GENOA v3.
Those coupled versions in vendor/ remain compatible with the standard distributions.
When using these models with GENOA v3, ensure that their dependencies (e.g., compilers, NetCDF, Open Babel) are correctly configured and compiled on your system.
-
Source code: GECKO-A box model
-
Modifications: Many changes for integration with GENOA v3
-
Source code: UManSysProp
-
Modifications: Fixed Python 3 import path for
openbabel
The test_cases/ directory provides representative examples demonstrating the full GENOA v3 workflow, including:
- mechanism conversion and preprocessing,
- box-model simulation and comparison,
- threshold-based and simulation-based reduction,
- evaluation and post-processing.
All test cases are based on a six-generation 1-hexene GECKO-A mechanism (U6), which provides a compact but realistic system for local or HPC runs.
Each test case is configured via an .ini file and designed to be self-contained and reproducible.
| Config File | Purpose |
|---|---|
1_build.ini |
Convert GECKO-A -> GENOA format |
2_build_run.ini |
Convert and run the mechanism |
3_run.ini |
Simulate a specific mechanism |
4_run_compare.ini |
Simulate and compare with a reference |
5_threshold_reduction.ini |
Perform threshold-based reduction |
6_training.ini |
Conduct simulation-based reduction (training) |
6_training_parameters.csv |
Stage-specific parameter definitions for training |
7_testing.ini |
Evaluate reduced mechanisms |
8_reductions.ini |
Execute sequential reductions and evaluation |
9_postprocess.ini |
Generate plots and perform post-processing |
config_reference.ini |
Reference for all configuration sections and options |
parameter_reference.csv |
Reference for parameters used in simulation-based reduction |
A detailed description of configuration options and parameters is provided on the GENOA v3 documentation site.
If you use GENOA v3, please cite:
(...)
Zhizhao Wang (zhizhaow@ucr.edu)