Public interface
Module
EnergyModelsCO2 — Module
EnergyModelsCO2 is representing several technologies that are relevant within CO₂ capture, transport, utilization, and storage chains.
Node types
General nodes
EnergyModelsCO2.CO2Source — Type
CO2Source <: SourceA CO₂ Source node. Its only difference from a RefSource is that is allows for CO₂ as outlet.
Fields
idis the name/identifier of the node.cap::TimeProfileis the installed capacity.opex_var::TimeProfileis the variational operational costs per energy unit produced.opex_fixed::TimeProfileis the fixed operational costs.output::Dict{<:Resource, <:Real}are the generatedResources with conversion valueReal.data::Array{<:ExtensionData}is the additional data (e.g. for investments). The fielddatais conditional through usage of a constructor.
EnergyModelsCO2.CO2Storage — Type
CO2Storage{T<:Accumulating} <: 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. It requires hence to use an Accumulating StorageBehavior.
The initial storage level in a strategic period is set to the storage level at the end of the previous 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 outer constructor.
Fields
idis the name/identifyer of the node.charge::EMB.UnionCapacityare the charging parameters of theCO2Storagenode. Depending on the chosen type, the charge parameters can include variable OPEX and/or fixed OPEX.level::EMB.UnionCapacityare the level parameters of theCO2Storagenode. Depending on the chosen type, the charge parameters can include variable OPEX and/or fixed OPEX.stor_res::Resourceis the storedResource.input::Dict{<:Resource, <:Real}are the inputResources with conversion valueReal.data::Array{<:ExtensionData}is the additional data (e.g. for investments). The fielddatais conditional through usage of a constructor.
CO₂ capture retrofit nodes
EnergyModelsCO2.NetworkNodeWithRetrofit — Type
NetworkNodeWithRetrofit <:NetworkNodeAbstract supertype for allowing retrofitting CO₂ capture to a node. Its application requires the user to
- define their own node as subtype of
NetworkNodeWithRetrofitand - include a field
co2_proxyin said node or alternatively define a method forco2_proxyfor the node.
The application is best explained by RefNetworkNodeRetrofit which illustrates it for a RefNetworkNode node.
EnergyModelsCO2.RefNetworkNodeRetrofit — Type
RefNetworkNodeRetrofit <: NetworkNodeWithRetrofitThis 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
idis the name/identifier of the node.cap::TimeProfileis the installed capacity.opex_var::TimeProfileis the variational operational costs per energy unit produced.opex_fixed::TimeProfileis the fixed operational costs.input::Dict{<:Resource, <:Real}are the inputResources with conversion valueReal.output::Dict{<:Resource, <:Real}are the generatedResources with conversion valueReal.co2_proxyis required to be included to be available to have CO₂ capture applied properly.co2_proxy::Resourceis the instance of theResourceused for calculating internally the CO₂ flow from theRefNetworkNodeRetrofitto theCCSRetroFitnode.data::Array{<:ExtensionData}is the additional data (e.g. for investments).
EnergyModelsCO2.CCSRetroFit — Type
CCSRetroFit <: NetworkThis 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
idis the name/identifier of the node.cap::TimeProfileis the installed capacity.opex_var::TimeProfileis the variational operational costs per unit CO2 captured.opex_fixed::TimeProfileis the fixed operational costs.input::Dict{<:Resource, <:Real}are the inputResources with conversion valueReal.output::Dict{<:Resource, <:Real}are the generatedResources with conversion valueReal. The CO₂ instance is required to be included to be available to have CO₂ capture applied properly.co2_proxy::Resourceis the instance of theResourceused for calculating internally the CO₂ flow from theRefNetworkNodeRetrofitto theCCSRetroFitnode.data::Array{<:ExtensionData}is the additional data (e.g. for investments).
Legacy constructors
EnergyModelsCO2.NetworkCCSRetrofit — Function
NetworkCCSRetrofit(args)Legacy constructor NetworkCCSRetrofit This type was renamed to RefNetworkNodeRetrofit while everything else remains the same.
ExtensionData types
CaptureData for CCSRetrofit
EnergyModelsCO2.CaptureFlueGas — Type
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::Float64is the CO₂ capture rate.
Legacy constructors
EnergyModelsCO2.CaptureNone — Function
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.