Skip to content

Flow share across all timesteps

Description

Set the share of a technology's (or group thereof) total out/inflow met by other technologies to specific values. If a single technology, it needs to be explicitly defined (e.g., flow_in[techs=demand_power]). If a group of technologies, they can be explicitly defined as a list or can be consolidated by a shared attribute (e.g., they produce a specific carrier: flow_out[carriers=power]) The parameters (demand_share_equals, supply_share_equals) can be defined per technology (and optionally per node) (e.g., techs.my_tech.constraints.demand_share_equals: 0.5)

New technology-level parameters:

  • demand_share_equals
  • supply_share_equals

Helper functions used:

  • sum (expression)

YAML definition

Download the YAML example

constraints:
  demand_share_equals_per_tech:
    description: >
      Set the total outflow of certain technologies which produce the `power`
      carrier to a share of total demand inflow.
    foreach: [nodes, techs]
    where: demand_share_equals
    equations:
      - expression: >
          sum(flow_out, over=[timesteps, carriers]) ==
          sum(flow_in[techs=$demand_tech], over=[timesteps, carriers])
          * demand_share_equals
    slices:
      demand_tech:
        - expression: demand_share_tech  # assigned as an indexed parameter


  supply_share_equals_per_tech:
    description: >
      Set the total outflow of certain technologies which produce a particular
      carrier to a share of total outflow of that carrier in each node.
    foreach: [nodes, techs]
    where: supply_share_equals
    equations:
      - expression: >
          sum(flow_out[carriers=$carrier], over=[timesteps]) ==
          sum(flow_out[carriers=$carrier], over=[techs, timesteps])
          * supply_share_equals
    slices:
      carrier:
        - expression: supply_share_carrier  # assigned as an indexed parameter