Configuration and defaults

This section lists the available configuration options and constraints along with their default values. Defaults are automatically applied in constraints whenever there is no user input for a particular value.

Model configuration

Setting

Default

Comments

calliope_version

Calliope framework version this model is intended for

group_share

{}

Optional settings for the group_share constraint - deprecated and will be removed in v0.7.0

name

Model name

random_seed

Seed for random number generator used during clustering

reserve_margin

{}

Per-carrier system-wide reserve margins

subset_time

Subset of timesteps as a two-element list giving the range, e.g. [‘2005-01-01’, ‘2005-01-05’], or a single string, e.g. ‘2005-01’

time

{}

Optional settings to adjust time resolution, see Time resolution adjustment for the available options

timeseries_data_path

Path to time series data

timeseries_data

Dict of dataframes with time series data (when passing in dicts rather than YAML files to Model constructor)

timeseries_dateformat

%Y-%m-%d %H:%M:%S

Timestamp format of all time series data when read from file

file_allowed

[‘clustering_func’, ‘energy_con’, ‘energy_eff’, ‘energy_prod’, ‘energy_ramping’, ‘export’, ‘force_resource’, ‘om_con’, ‘om_prod’, ‘parasitic_eff’, ‘resource’, ‘resource_eff’, ‘storage_loss’, ‘carrier_ratios’]

List of configuration options allowed to specify “file=” to load timeseries data. This can be updated if you’re adding a new custom constraint that requires a newly defined parameter to be a timeseries. If updating existing parameters, you can expect existing constraints to not change behaviour or to break on being constructed.

## # Base technology groups ##

Run configuration

Setting

Default

Comments

backend

pyomo

Backend to use to build and solve the model. As of v0.6.0, only pyomo is available

bigM

1000000000.0

Used for unmet demand, but should be of a similar order of magnitude as the largest cost that the model could achieve. Too high and the model will not converge

cyclic_storage

True

If true, storage in the last timestep of the timeseries is considered to be the ‘previous timestep’ in the first timestep of the timeseries

ensure_feasibility

False

If true, unmet_demand will be a decision variable, to account for an ability to meet demand with the available supply. If False and a mismatch occurs, the optimisation will fail due to infeasibility

mode

plan

Which mode to run the model in: ‘plan’ or ‘operation’

objective_options

{}

Arguments to pass to objective function. If cost-based objective function in use, should include ‘cost_class’ and ‘sense’ (maximize/minimize)

objective

minmax_cost_optimization

Name of internal objective function to use, currently only min/max cost-based optimisation is available

operation

{}

Settings for operational mode

save_logs

Directory into which to save logs and temporary files. Also turns on symbolic solver labels in the Pyomo backend

solver_io

What method the Pyomo backend should use to communicate with the solver

solver_options

A list of options, which are passed on to the chosen solver, and are therefore solver-dependent

solver

cbc

Which solver to use

zero_threshold

1e-10

Any value coming out of the backend that is smaller than this threshold (due to floating point errors, probably) will be set to zero

Per-tech constraints

The following table lists all available technology constraint settings and their default values. All of these can be set by tech_identifier.constraints.constraint_name, e.g. nuclear.constraints.energy_cap.max.

Setting

Default

Name

Unit

Comments

carrier_ratios

{}

Carrier ratios

fraction

Ratio of summed output of carriers in [‘out_2’, ‘out_3’] / [‘in_2’, ‘in_3’] to the summed output of carriers in ‘out’ / ‘in’. given in a nested dictionary.

charge_rate

False

Charge rate

hour -1

(do not use, replaced by energy_cap_per_storage_cap_max) ratio of maximum charge/discharge (kW) for a given maximum storage capacity (kWh).

energy_cap_per_storage_cap_min

False

Minimum energy capacity per storage capacity

hour -1

ratio of minimum charge/discharge (kW) for a given storage capacity (kWh).

energy_cap_per_storage_cap_max

False

Maximum energy capacity per storage capacity

hour -1

ratio of maximum charge/discharge (kW) for a given storage capacity (kWh).

energy_cap_per_storage_cap_equals

False

Tie energy capacity to storage capacity

fraction

energy_cap_equals

False

Specific installed energy capacity

kW

fixes maximum/minimum if decision variables carrier_prod/carrier_con and overrides _max and _min constraints.

energy_cap_equals_systemwide

False

System-wide specific installed energy capacity

kW

fixes the sum to a maximum/minimum, for a particular technology, of the decision variables carrier_prod/carrier_con over all locations.

energy_cap_max

inf

Maximum installed energy capacity

kW

Limits decision variables carrier_prod/carrier_con to a maximum/minimum.

energy_cap_max_systemwide

inf

System-wide maximum installed energy capacity

kW

Limits the sum to a maximum/minimum, for a particular technology, of the decision variables carrier_prod/carrier_con over all locations.

energy_cap_min

0

Minimum installed energy capacity

kW

Limits decision variables carrier_prod/carrier_con to a minimum/maximum.

energy_cap_min_use

False

Minimum carrier production

fraction

Set to a value between 0 and 1 to force minimum carrer production as a fraction of the technology maximum energy capacity. If non-zero and technology is not defined by units, this will force the technology to operate above its minimum value at every timestep.

energy_cap_per_unit

False

Energy capacity per purchased unit

kW/unit

Set the capacity of each integer unit of a technology purchased

energy_cap_scale

1.0

Energy capacity scale

float

Scale all energy_cap min/max/equals/total_max/total_equals constraints by this value

energy_con

False

Energy consumption

boolean

Allow this technology to consume energy from the carrier (static boolean, or from file as timeseries).

energy_eff

1.0

Energy efficiency

fraction

conversion efficiency (static, or from file as timeseries), from resource/storage/carrier_in (tech dependent) to carrier_out.

energy_eff_per_distance

1.0

Energy efficiency per distance

distance -1

Set as value between 1 (no loss) and 0 (all energy lost).

energy_prod

False

Energy production

boolean

Allow this technology to supply energy to the carrier (static boolean, or from file as timeseries).

energy_ramping

False

Ramping rate

fraction / hour

Set to false to disable ramping constraints, otherwise limit maximum carrier production to a fraction of maximum capacity, which increases by that fraction at each timestep.

export_cap

inf

Export capacity

kW

Maximum allowed export of produced energy carrier for a technology.

export_carrier

Export carrier

N/A

Name of carrier to be exported. Must be an output carrier of the technology

force_asynchronous_prod_con

False

if True, carrier_prod and carrier_con cannot both occur in the same timestep

force_resource

False

Force resource

boolean

Forces this technology to use all available resource, rather than making it a maximum upper boundary (for production) or minimum lower boundary (for consumption). Static boolean, or from file as timeseries

lifetime

Technology lifetime

years

Must be defined if fixed capital costs are defined. A reasonable value for many technologies is around 20-25 years.

one_way

False

Forces a transmission technology to only move energy in one direction on the link, in this case from default_location_from to default_location_to

parasitic_eff

1.0

Plant parasitic efficiency

fraction

Additional losses as energy gets transferred from the plant to the carrier (static, or from file as timeseries), e.g. due to plant parasitic consumption

resource

0

Available resource

kWh | kWh/m2 | kWh/kW

Maximum available resource (static, or from file as timeseries). Unit dictated by resource_unit

resource_area_equals

False

Specific installed resource area

m2

resource_area_max

inf

Maximum usable resource area

m2

If set to a finite value, restricts the usable area of the technology to this value.

resource_area_min

0

Minimum usable resource area

m2

resource_area_per_energy_cap

False

Resource area per energy capacity

boolean

If set, forces resource_area to follow energy_cap with the given numerical ratio (e.g. setting to 1.5 means that resource_area == 1.5 * energy_cap)

resource_cap_equals

False

Specific installed resource consumption capacity

kW

overrides _max and _min constraints.

resource_cap_equals_energy_cap

False

Resource capacity equals energy cpacity

boolean

If true, resource_cap is forced to equal energy_cap

resource_cap_max

inf

Maximum installed resource consumption capacity

kW

resource_cap_min

0

Minimum installed resource consumption capacity

kW

resource_eff

1.0

Resource efficiency

fraction

Efficiency (static, or from file as timeseries) in capturing resource before it reaches storage (if storage is present) or conversion to carrier.

resource_min_use

False

Minimum resource consumption

fraction

Set to a value between 0 and 1 to force minimum resource consumption for production technologies

resource_scale

1.0

Resource scale

fraction

Scale resource (either static value or all values in timeseries) by this value

resource_unit

energy

Resource unit

N/A

Sets the unit of resource to either energy (i.e. kWh), energy_per_area (i.e. kWh/m2), or energy_per_cap (i.e. kWh/kW). energy_per_area uses the resource_area decision variable to scale the available resource while energy_per_cap uses the energy_cap decision variable.

storage_cap_equals

False

Specific storage capacity

kWh

If not defined, energy_cap_equals * energy_cap_per_storage_cap_max will be used as the capacity and overrides _max and _min constraints.

storage_cap_max

inf

Maximum storage capacity

kWh

If not defined, energy_cap_max * energy_cap_per_storage_cap_max will be used as the capacity.

storage_cap_min

0

Minimum storage capacity

kWh

storage_cap_per_unit

False

Storage capacity per purchased unit

kWh/unit

Set the storage capacity of each integer unit of a technology purchased.

storage_discharge_depth

0

Storage depth of discharge

fraction

Defines the minimum level of storage state of charge, as a fraction of total storage capacity

storage_initial

0

Initial storage level

fraction

Set stored energy in device at the first timestep, as a fraction of total storage capacity

storage_loss

0

Storage loss rate

hour -1

rate of storage loss per hour (static, or from file as timeseries), used to calculate lost stored energy as (1 - storage_loss)^hours_per_timestep

units_equals

False

Specific number of purchased units

integer

Turns the model from LP to MILP.

units_equals_systemwide

False

System-wide specific installed energy capacity

kW

fixes the sum to a specific value, for a particular technology, of the decision variables carrier_prod/carrier_con over all locations.

units_max

False

Maximum number of purchased units

integer

Turns the model from LP to MILP.

units_max_systemwide

inf

System-wide maximum installed energy capacity

kW

Limits the sum to a maximum/minimum, for a particular technology, of the decision variables carrier_prod/carrier_con over all locations.

units_min

False

Minimum number of purchased units

integer

Turns the model from LP to MILP.

Per-tech costs

These are all the available costs, which are set to \(0\) by default for every defined cost class. Costs are set by tech_identifier.costs.cost_class.cost_name, e.g. nuclear.costs.monetary.energy_cap.

Setting

Default

Name

Unit

Comments

energy_cap

0

Cost of energy capacity

kW gross -1

energy_cap_per_distance

0

Cost of energy capacity, per unit distance

kW gross -1 / distance

Applied to transmission links only

export

0

Carrier export cost

kWh -1

Usually used in the negative sense, as a subsidy.

interest_rate

0

Interest rate

fraction

Used when computing levelized costs

om_annual

0

Yearly O&M costs

kW energy_cap -1

om_annual_investment_fraction

0

Fractional yearly O&M costs

fraction / total investment

om_con

0

Carrier consumption cost

kWh -1

Applied to carrier consumption of a technology

om_prod

0

Carrier production cost

kWh -1

Applied to carrier production of a technology

purchase

0

Purchase cost

unit -1

Triggers a binary variable for that technology to say that it has been purchased or is applied to integer variable units

resource_area

0

Cost of resource area

m-2

resource_cap

0

Cost of resource consumption capacity

kW -1

storage_cap

0

Cost of storage capacity

kWh -1

Technology depreciation settings apply when calculating levelized costs. The interest rate and life times must be set for each technology with investment costs.

Group constraints

See Group constraints for a full listing of available group constraints.

Abstract base technology groups

Technologies must always define a parent, and this can either be one of the pre-defined abstract base technology groups or a user-defined group (see Using tech_groups to group configuration). The pre-defined groups are:

  • supply: Supplies energy to a carrier, has a positive resource.

  • supply_plus: Supplies energy to a carrier, has a positive resource. Additional possible constraints, including efficiencies and storage, distinguish this from supply.

  • demand: Demands energy from a carrier, has a negative resource.

  • storage: Stores energy.

  • transmission: Transmits energy from one location to another.

  • conversion: Converts energy from one carrier to another.

  • conversion_plus: Converts energy from one or more carrier(s) to one or more different carrier(s).

A technology inherits the configuration that its parent group specifies (which, in turn, may inherit from its own parent).

Note

The identifiers of the abstract base tech groups are reserved and cannot be used for user-defined technologies. However, you can amend an abstract base technology group for example by a lifetime attribute that will be in effect for all technologies derived from that group (see Using tech_groups to group configuration).

The following lists the pre-defined base tech groups and the defaults they provide.

supply

../_images/supply.svg

Default constraints provided by the parent tech group:

essentials:
  parent:
constraints:
  energy_prod: true
  resource: inf
  resource_unit: energy
costs: {}

Required constraints, allowed constraints, and allowed costs:

required_constraints: []
allowed_constraints:
-   energy_cap_equals
-   energy_cap_equals_systemwide
-   energy_cap_max
-   energy_cap_max_systemwide
-   energy_cap_min
-   energy_cap_min_use
-   energy_cap_per_unit
-   energy_cap_scale
-   energy_eff
-   energy_prod
-   energy_ramping
-   export_cap
-   export_carrier
-   force_resource
-   lifetime
-   resource
-   resource_area_equals
-   resource_area_max
-   resource_area_min
-   resource_area_per_energy_cap
-   resource_min_use
-   resource_scale
-   resource_unit
-   units_equals
-   units_equals_systemwide
-   units_max
-   units_max_systemwide
-   units_min
allowed_costs:
-   depreciation_rate
-   energy_cap
-   export
-   interest_rate
-   om_annual
-   om_annual_investment_fraction
-   om_con
-   om_prod
-   purchase
-   resource_area

supply_plus

../_images/supply_plus.svg

Default constraints provided by the parent tech group:

essentials:
  parent:
constraints:
  energy_prod: true
  resource: inf
  resource_eff: 1.0
  resource_unit: energy
costs: {}

Required constraints, allowed constraints, and allowed costs:

required_constraints: []
allowed_constraints:
-   charge_rate
-   energy_cap_per_storage_cap_min
-   energy_cap_per_storage_cap_max
-   energy_cap_per_storage_cap_equals
-   energy_cap_equals
-   energy_cap_equals_systemwide
-   energy_cap_max
-   energy_cap_max_systemwide
-   energy_cap_min
-   energy_cap_min_use
-   energy_cap_per_unit
-   energy_cap_scale
-   energy_eff
-   energy_prod
-   energy_ramping
-   export_cap
-   export_carrier
-   force_resource
-   lifetime
-   parasitic_eff
-   resource
-   resource_area_equals
-   resource_area_max
-   resource_area_min
-   resource_area_per_energy_cap
-   resource_cap_equals
-   resource_cap_equals_energy_cap
-   resource_cap_max
-   resource_cap_min
-   resource_eff
-   resource_min_use
-   resource_scale
-   resource_unit
-   storage_cap_equals
-   storage_cap_max
-   storage_cap_min
-   storage_cap_per_unit
-   storage_initial
-   storage_loss
-   units_equals
-   units_equals_systemwide
-   units_max
-   units_max_systemwide
-   units_min
allowed_costs:
-   depreciation_rate
-   energy_cap
-   export
-   interest_rate
-   om_annual
-   om_annual_investment_fraction
-   om_con
-   om_prod
-   purchase
-   resource_area
-   resource_cap
-   storage_cap

demand

../_images/demand.svg

Default constraints provided by the parent tech group:

essentials:
  parent:
constraints:
  energy_con: true
  force_resource: true
  resource_unit: energy
costs: {}

Required constraints, allowed constraints, and allowed costs:

required_constraints:
-   resource
allowed_constraints:
-   energy_con
-   force_resource
-   resource
-   resource_area_equals
-   resource_scale
-   resource_unit
allowed_costs:
-   om_con

storage

../_images/storage.svg

Default constraints provided by the parent tech group:

essentials:
  parent:
constraints:
  energy_con: true
  energy_prod: true
  storage_cap_max: inf
costs: {}

Required constraints, allowed constraints, and allowed costs:

required_constraints: []
allowed_constraints:
-   charge_rate
-   energy_cap_per_storage_cap_min
-   energy_cap_per_storage_cap_max
-   energy_cap_per_storage_cap_equals
-   energy_cap_equals
-   energy_cap_equals_systemwide
-   energy_cap_max
-   energy_cap_max_systemwide
-   energy_cap_min
-   energy_cap_min_use
-   energy_cap_per_unit
-   energy_cap_scale
-   energy_con
-   energy_eff
-   energy_prod
-   energy_ramping
-   export_cap
-   export_carrier
-   force_asynchronous_prod_con
-   lifetime
-   storage_cap_equals
-   storage_cap_max
-   storage_cap_min
-   storage_cap_per_unit
-   storage_initial
-   storage_loss
-   storage_time_max
-   storage_discharge_depth
-   units_equals
-   units_equals_systemwide
-   units_max
-   units_max_systemwide
-   units_min
allowed_costs:
-   depreciation_rate
-   energy_cap
-   export
-   interest_rate
-   om_annual
-   om_annual_investment_fraction
-   om_prod
-   purchase
-   storage_cap

transmission

../_images/transmission.svg

Default constraints provided by the parent tech group:

essentials:
  parent:
constraints:
  energy_con: true
  energy_prod: true

##
# Default technology
##
costs: {}

Required constraints, allowed constraints, and allowed costs:

required_constraints: []
allowed_constraints:
-   energy_cap_equals
-   energy_cap_min
-   energy_cap_max
-   energy_cap_per_unit
-   energy_cap_scale
-   energy_con
-   energy_eff
-   energy_eff_per_distance
-   energy_prod
-   force_asynchronous_prod_con
-   lifetime
-   one_way
allowed_costs:
-   depreciation_rate
-   energy_cap
-   energy_cap_per_distance
-   interest_rate
-   om_annual
-   om_annual_investment_fraction
-   om_prod
-   purchase
-   purchase_per_distance

conversion

../_images/conversion.svg

Default constraints provided by the parent tech group:

essentials:
  parent:
constraints:
  energy_con: true
  energy_prod: true
costs: {}

Required constraints, allowed constraints, and allowed costs:

required_constraints: []
allowed_constraints:
-   energy_cap_equals
-   energy_cap_equals_systemwide
-   energy_cap_max
-   energy_cap_max_systemwide
-   energy_cap_min
-   energy_cap_min_use
-   energy_cap_per_unit
-   energy_cap_scale
-   energy_con
-   energy_eff
-   energy_prod
-   energy_ramping
-   export_cap
-   export_carrier
-   lifetime
-   units_equals
-   units_equals_systemwide
-   units_max
-   units_max_systemwide
-   units_min
allowed_costs:
-   depreciation_rate
-   energy_cap
-   export
-   interest_rate
-   om_annual
-   om_annual_investment_fraction
-   om_con
-   om_prod
-   purchase

conversion_plus

../_images/conversion_plus.svg

Default constraints provided by the parent tech group:

essentials:
  parent:
constraints:
  energy_con: true
  energy_prod: true
costs: {}

Required constraints, allowed constraints, and allowed costs:

required_constraints: []
allowed_constraints:
-   carrier_ratios
-   energy_cap_equals
-   energy_cap_equals_systemwide
-   energy_cap_max
-   energy_cap_max_systemwide
-   energy_cap_min
-   energy_cap_min_use
-   energy_cap_per_unit
-   energy_cap_scale
-   energy_con
-   energy_eff
-   energy_prod
-   energy_ramping
-   export_cap
-   export_carrier
-   lifetime
-   units_equals
-   units_equals_systemwide
-   units_max
-   units_max_systemwide
-   units_min
allowed_costs:
-   depreciation_rate
-   energy_cap
-   export
-   interest_rate
-   om_annual
-   om_annual_investment_fraction
-   om_con
-   om_prod
-   purchase

Previous: Advanced features | Next: Troubleshooting