CECE is a high-performance, performance-portable emissions compute component for Earth System Models. It is built using C++20 and the Kokkos programming model, designed to run efficiently on both multi-core CPUs and GPUs.
The recommended way to develop CECE is using the provided Docker container:
./setup.shInside the container:
mkdir build && cd build
cmake ..
make -j4CECE provides several example configurations to demonstrate different capabilities:
Run a basic example:
./setup.sh -c "cd /work && ./build/bin/cece_nuopc_app examples/cece_config_ex1.yaml"Available examples:
cece_config_ex1.yaml- Basic single species (CO) emission processingcece_config_ex3.yaml- Minimal configuration for quick testingcece_config_ex5.yaml- Multi-species production example (CO + NO)
CECE uses a single YAML configuration file with fully configurable parameters:
# Timing configuration
driver:
start_time: "2020-01-01T00:00:00"
end_time: "2020-01-01T06:00:00"
timestep_seconds: 3600
# Spatial grid configuration
grid:
nx: 4
ny: 4
lon_min: -135.0
lon_max: 135.0
lat_min: -67.5
lat_max: 67.5
# Species and emission data streams
species:
co:
- field: "MACCITY_CO"
operation: "add"
cece_data:
streams:
- name: "MACCITY_CO"
file: "/work/data/MACCity_4x5.nc"
# ... stream configurationComprehensive documentation is available in the docs/ directory:
- User's Guide - Getting started and basic usage
- Configuration Reference - Complete YAML configuration options
- Tutorial - Step-by-step examples
- Examples Guide - Detailed example descriptions
CECE is built on a modular architecture:
- NUOPC Integration: Earth System Model component interface
- TIDE Data Ingestion: High-performance emission data processing with conservative regridding
- Kokkos Compute: Performance-portable parallel execution (CPU/GPU)
- Physics Schemes: Extensible emission processing algorithms
- YAML Configuration: Runtime configuration without recompilation
- C++20 compiler
- MPI implementation
- ESMF/NUOPC framework
- Kokkos (included)
- yaml-cpp (included)
See AGENTS.md for detailed developer guidelines and coding standards.