Skip to content

The urban-scale CHP patch#

A patch of Calliope in fragments. What the urban-scale example changes in the base: balance_conversion holds for every conversion technology but chp. Its rows are the urban-scale fragment. A patch is not a spec, so it prints as the declarations it writes, in the spec it lands on.

ms.override(
    ms.merge(base + ['extensions/urban_scale_chp.yaml']),
    ['variants/urban_scale_chp.yaml'],
)
variants/urban_scale_chp.yaml
constraints:
  balance_conversion:
    description: >-
      `balance_conversion` for every conversion technology but `chp` — it
      puts out, before its losses, what it takes in after them
    where: base_tech == 'conversion' AND NOT include_storage AND NOT techs == chp

balance_conversion

\[ \sum_{c \in \mathcal{C}} \mathit{flow\_out\_inc\_eff}_{n,i,c,t} = \sum_{c \in \mathcal{C}} \mathit{flow\_in\_inc\_eff}_{n,i,c,t} \qquad \forall\, n \in \mathcal{N},\ i \in \mathcal{I},\ t \in \mathcal{T} \,:\, \mathrm{base\_tech}_{i} = \text{'}\mathrm{conversion}\text{'} \wedge \neg \mathrm{include\_storage}_{n,i} \wedge \neg \left( i = \text{'}\mathrm{chp}\text{'} \right) \]