Public interface

Module

EnergyModelsCO2Module

EnergyModelsCO2 is representing several technologies that are relevant within CO₂ capture, transport, utilization, and storage chains.

source

Node types

General nodes

EnergyModelsCO2.CO2SourceType
CO2Source <: Source

A CO₂ Source node. Its only difference from a RefSource is that is allows for CO₂ as outlet.

Fields

  • id is the name/identifier of the node.
  • cap::TimeProfile is the installed capacity.
  • opex_var::TimeProfile is the variational operational costs per energy unit produced.
  • opex_fixed::TimeProfile is the fixed operational costs.
  • output::Dict{<:Resource, <:Real} are the generated Resources with conversion value Real.
  • data::Array{<:Data} is the additional data (e.g. for investments). The field data is conditional through usage of a constructor.
source
EnergyModelsCO2.CO2StorageType
CO2Storage{T} <: Storage{T}

This node has an installed injection rate capacity through charge and a storage capacity level.

The storage level (accountet by the optimization variable stor_level) will increase during all strategic periods (sp), i.e., the stored resource can not be taken out of the storage.

The initial storage level in a strategic period is set to the storage level at the end of the prevoious sp. Note that the increased storage level during a sp is multiplied with the length of the sp when the initial storage level for the next sp is set.

This is achieved through the parametric input AccumulatingStrategic. This input is not a required input due to the utilization of an inner constructor.

Fields

  • id is the name/identifyer of the node.
  • charge::EMB.UnionCapacity are the charging parameters of the CO2Storage node. Depending on the chosen type, the charge parameters can include variable OPEX and/or fixed OPEX.
  • level::EMB.UnionCapacity are the level parameters of the CO2Storage node. Depending on the chosen type, the charge parameters can include variable OPEX and/or fixed OPEX.
  • stor_res::Resource is the stored Resource.
  • input::Dict{<:Resource, <:Real} are the input Resources with conversion value Real.
  • data::Array{<:Data} is the additional data (e.g. for investments). The field data is conditional through usage of a constructor.
source

CO₂ capture retrofit nodes

EnergyModelsCO2.NetworkNodeWithRetrofitType
NetworkNodeWithRetrofit <:NetworkNode

Abstract supertype for allowing retrofitting CO₂ capture to a node. Its application requires the user to

  1. define their own node as subtype of NetworkNodeWithRetrofit and
  2. include a field co2_proxy in said node or alternatively define a method for co2_proxy for the node.

The application is best explained by RefNetworkNodeRetrofit which illustrates it for a RefNetworkNode node.

source
EnergyModelsCO2.RefNetworkNodeRetrofitType
RefNetworkNodeRetrofit <: NetworkNodeWithRetrofit

This node allows for retrofitting CO₂ capture to a NetworkNode.

It corresponds to a RefNetworkNode node in which the CO₂ is not emitted. Instead, it is transferred to a co2_proxy that is fed subsequently to a node (CCSRetroFit) in which it is either captured, or emitted.

The co2_proxy does not have to be specified as output resource.

Fields

  • id is the name/identifier of the node.
  • cap::TimeProfile is the installed capacity.
  • opex_var::TimeProfile is the variational operational costs per energy unit produced.
  • opex_fixed::TimeProfile is the fixed operational costs.
  • input::Dict{<:Resource, <:Real} are the input Resources with conversion value Real.
  • output::Dict{<:Resource, <:Real} are the generated Resources with conversion value Real. co2_proxy is required to be included to be available to have CO₂ capture applied properly.
  • co2_proxy::Resource is the instance of the Resource used for calculating internally the CO₂ flow from the RefNetworkNodeRetrofit to the CCSRetroFit node.
  • data::Array{<:Data} is the additional data (e.g. for investments).
source
EnergyModelsCO2.CCSRetroFitType
CCSRetroFit <: Network

This node allows for investments into CO₂ capture retrofit to a RefNetworkNodeRetrofit node. The capture process is implemented through the variable :cap_use

The co2_proxy does not have to be specified as input resource.

Fields

  • id is the name/identifier of the node.
  • cap::TimeProfile is the installed capacity.
  • opex_var::TimeProfile is the variational operational costs per unit CO2 captured.
  • opex_fixed::TimeProfile is the fixed operational costs.
  • input::Dict{<:Resource, <:Real} are the input Resources with conversion value Real.
  • output::Dict{<:Resource, <:Real} are the generated Resources with conversion value Real. The CO₂ instance is required to be included to be available to have CO₂ capture applied properly.
  • co2_proxy::Resource is the instance of the Resource used for calculating internally the CO₂ flow from the RefNetworkNodeRetrofit to the CCSRetroFit node.
  • data::Array{<:Data} is the additional data (e.g. for investments).
source

Legacy constructors

EnergyModelsCO2.NetworkCCSRetrofitFunction
NetworkCCSRetrofit(args)

Legacy constructor NetworkCCSRetrofit This type was renamed to RefNetworkNodeRetrofit while everything else remains the same.

source

Data types

CaptureData for CCSRetrofit

EnergyModelsCO2.CaptureFlueGasType
CaptureFlueGas{T} <: CaptureData{T}

Capture the proxy CO₂ instance but not the energy usage related emissions and the process emissions. Does not require emissions as input, but can be supplied.

Fields

  • emissions::Dict{ResourceEmit, T} are the emissions per unit produced.
  • co2_capture::Float64 is the CO₂ capture rate.
source

Legacy constructors

EnergyModelsCO2.CaptureNoneFunction
CaptureNone(emissions::Dict{ResourceEmit,T}, co2_capture::Float64)

Legacy constructor for a CaptureNone. This type was renamed to CaptureFlueGas while everything else remains the same.

source