Public interface
Module
EnergyModelsCO2
— ModuleEnergyModelsCO2
is representing several technologies that are relevant within CO₂ capture, transport, utilization, and storage chains.
Node types
General nodes
EnergyModelsCO2.CO2Source
— TypeCO2Source <: 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 generatedResource
s with conversion valueReal
.data::Array{<:Data}
is the additional data (e.g. for investments). The fielddata
is conditional through usage of a constructor.
EnergyModelsCO2.CO2Storage
— TypeCO2Storage{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 theCO2Storage
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 theCO2Storage
node. Depending on the chosen type, the charge parameters can include variable OPEX and/or fixed OPEX.stor_res::Resource
is the storedResource
.input::Dict{<:Resource, <:Real}
are the inputResource
s with conversion valueReal
.data::Array{<:Data}
is the additional data (e.g. for investments). The fielddata
is conditional through usage of a constructor.
CO₂ capture retrofit nodes
EnergyModelsCO2.NetworkNodeWithRetrofit
— TypeNetworkNodeWithRetrofit <:NetworkNode
Abstract supertype for allowing retrofitting CO₂ capture to a node. Its application requires the user to
- define their own node as subtype of
NetworkNodeWithRetrofit
and - include a field
co2_proxy
in said node or alternatively define a method forco2_proxy
for the node.
The application is best explained by RefNetworkNodeRetrofit
which illustrates it for a RefNetworkNode
node.
EnergyModelsCO2.RefNetworkNodeRetrofit
— TypeRefNetworkNodeRetrofit <: 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 inputResource
s with conversion valueReal
.output::Dict{<:Resource, <:Real}
are the generatedResource
s with conversion valueReal
.co2_proxy
is required to be included to be available to have CO₂ capture applied properly.co2_proxy::Resource
is the instance of theResource
used for calculating internally the CO₂ flow from theRefNetworkNodeRetrofit
to theCCSRetroFit
node.data::Array{<:Data}
is the additional data (e.g. for investments).
EnergyModelsCO2.CCSRetroFit
— TypeCCSRetroFit <: 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 inputResource
s with conversion valueReal
.output::Dict{<:Resource, <:Real}
are the generatedResource
s with conversion valueReal
. The CO₂ instance is required to be included to be available to have CO₂ capture applied properly.co2_proxy::Resource
is the instance of theResource
used for calculating internally the CO₂ flow from theRefNetworkNodeRetrofit
to theCCSRetroFit
node.data::Array{<:Data}
is the additional data (e.g. for investments).
Legacy constructors
EnergyModelsCO2.NetworkCCSRetrofit
— FunctionNetworkCCSRetrofit(args)
Legacy constructor NetworkCCSRetrofit
This type was renamed to RefNetworkNodeRetrofit
while everything else remains the same.
Data types
CaptureData
for CCSRetrofit
EnergyModelsCO2.CaptureFlueGas
— TypeCaptureFlueGas{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.
Legacy constructors
EnergyModelsCO2.CaptureNone
— FunctionCaptureNone(emissions::Dict{ResourceEmit,T}, co2_capture::Float64)
Legacy constructor for a CaptureNone
. This type was renamed to CaptureFlueGas
while everything else remains the same.