Input Data Specification¶
(YAML Schema)
The model is built entirely from YAML files. To define a complete industry (e.g., Cement), you need a hierarchical structure consisting of Process Files (sub-units) and a Meta File (the industry aggregator). In this chapter the cement industry is used as an example.
Common Structure (Process & Industry)¶
All files share a common header for identification and versioning.
id: Cemento-process2-Oven # Unique ID
name: Oven # Human-readable name
type: process # 'process' or 'industry'
version: 1.0.0
The Process Model¶
A Process file describes a single physical unit (e.g., a Oven, a Grinder). It transforms inputs into outputs.
Constants (constants)¶
Fixed parameters of the physics or chemistry (e.g., loss factors, heating values).
name: A name of the constant is necessary. A strategy to name the constant is recommended.
description: A brief description of the constant is optional.
value: Must be a number.
units: Must be a streamlined.
source: Required for traceability (URL or text citation).
YAML example:
constants:
- name: FUEL_HC
description: Heat Capacity of the fuel
value: 0.02693
units: MJ/kg
source: https://www.google.com
Inputs (inputs)¶
External variables needed to run the process.
value:
null: Indicates this is a variable provided by the user at runtime (e.g., the amount of production).[Array]: A list of numbers. This allows the model to handle vectors (e.g., time-series data or sensitivity analysis scenarios).
from: Indicates where this input comes from (e.g., the output of a previous process).
inputs:
- name: raw_mix
value: null # Calculated from previous step
from: Cemento-process1-Pre
units: kt
Outputs (outputs)¶
The results calculated by this process.
operation: A SymPy-compatible mathematical string.
args: A critical list that maps the variables used in the operation to their type (inputs or constants). This ensures no undefined variables are used.
outputs:
- name: heat_losses_oven
# The mathematical logic:
operation: fuel_demand * FUEL_HC * ENERGY_LOSSES
args:
- name: fuel_demand
type: inputs
- name: FUEL_HC
type: constants
- name: ENERGY_LOSSES
type: constants
units: GJ
The Industry Model (Meta-file)¶
The Industry file (type: industry) aggregates multiple processes. It contains specific sections to define system-level results.
Outcome (outcome)¶
The main product of the industry (e.g., “Total Cement Production”). This is the “driver” variable that initiates the calculation chain.
Demands (demands)¶
Aggregates resources required by specific sub-processes.
used: Specifies which sub-process consumes this resource.
meta: (Optional) A tag used to group similar demands (e.g., tagging electricity usage in the kiln and the grinder both as mechanical_energy).
demands:
- name: mechanical_energy_oven
operation: total_cement_production * MECHANICAL_ENERGY_OVEN_PROPORTION
used: Cemento-process2-Oven
meta: mechanical_energy # Groups this into total energy
units: GJ
Meta-Demands (meta)¶
Calculates totals based on the meta tags defined in demands.
Example: Summing up mechanical energy from the Pre-processor, Oven, and Grinder.
meta:
- name: mechanical_energy
operation: mechanical_energy_pre + mechanical_energy_oven + mechanical_energy_milling
description: Total mechanical energy consumption of the plant