How jgcri/gcam-core works
GCAM is a dynamic-recursive integrated assessment model. Its principal workflow is to run a configured scenario across population, economic, energy, and land systems, resolve interactions among sectors and markets, and produce projections of supply, demand, land use, emissions, and climate effects. The README documents the cross-system capabilities; sampled source confirms configuration parsing, scenario-runner entry points, technology/function responsibilities, and market-related model components. Some subsystem wiring is documented only at a high level, so the graph omits uncertain implementation-level links.
Main entry points: sector.cpp Economic sectors · marketplace.cpp Markets · scenario.cpp Scenario state · iscenario_runner.h Scenario runners
Components 20
Run orchestration
- Program entry
cvs/objects/main/source/main.cpp - Scenario runners
cvs/objects/containers/include/iscenario_runner.h - Scenario state
cvs/objects/containers/source/scenario.cpp - World model
cvs/objects/containers/source/world.cpp
Economy and energy
- Population
cvs/objects/demographics/source/population.cpp - Consumers
cvs/objects/consumers/source/consumer.cpp - Economic sectors
cvs/objects/sectors/source/sector.cpp - Technologies
cvs/objects/technologies/include/itechnology.h - Demand and production
cvs/objects/functions/source/function_manager.cpp - Markets
cvs/objects/marketplace/source/marketplace.cpp - Resources
cvs/objects/resources/source/resource.cpp
Land and climate
- Land allocation
cvs/objects/land_allocator/source/land_allocator.cpp - Emissions
cvs/objects/emissions/source/emissions_summer.cpp - Carbon accounting
cvs/objects/ccarbon_model/source/node_carbon_calc.cpp - Climate model
cvs/objects/climate/source/hector_model.cpp
Policy and results
- Climate policies
cvs/objects/policy/source/policy_ghg.cpp - Target finding
cvs/objects/target_finder/source/policy_target_runner.cpp - Market solvers
cvs/objects/solution/solvers/source/solver_factory.cpp - Model reporting
cvs/objects/reporting/source/xml_db_outputter.cpp
Other components
- Model user
Connections 19
- Model user → Program entry: starts run
- Program entry → Scenario runners: selects runner
- Scenario runners → Scenario state: runs scenario
- Scenario state → World model: models world
- Population → Consumers: informs demand
- Consumers → Economic sectors: demands goods
- Economic sectors → Technologies: uses technologies
- Technologies → Demand and production: calculates production
- Economic sectors → Markets: exchanges quantities
- Resources → Markets: supplies commodities
- Economic sectors → Land allocation: allocates land use
- Land allocation → Emissions: contributes emissions
- Economic sectors → Emissions: generates emissions
- Emissions → Carbon accounting: accounts carbon
- Carbon accounting → Climate model: informs climate
- Climate policies → Markets: affects markets
- Target finding → Scenario runners: runs target cases
- Market solvers → Markets: solves markets
- Scenario state → Model reporting: writes results