Public Interface

This page lists the main user-facing types and controls added by EnergyModelsGasNetworks.

Controls

Resources and blends

EnergyModelsGasNetworks.ResourcePressureType
ResourcePressure{T<:Real} <: CompoundResource

Resource with an associated pressure potential in addition to a flow rate.

Fields

  • id is the name/identifier of the resource.
  • co2_int::T is the CO₂ intensity (e.g. t/MWh).
source
EnergyModelsGasNetworks.ResourcePoolingType
ResourcePooling{T<:Real} <: EMB.Resource

Resource that represents a blend of subresources.

Note! When the subresources are ResourcePressure, the pressure formulation is also activated for the blend. Otherwise, the blend activates only the pooling constraints.

source

Nodes

EnergyModelsGasNetworks.SimpleCompressorType
SimpleCompressor <: Compressor

Compressor that adds a pressure increase (potential_Δ) and pays variable cost through an energy input proportional to cap_use.

Fields

  • id::Any is the name/identifier of the link.
  • cap::TimeProfile is the maximum flow that the compressor can handle.
  • opex_var::TimeProfile is the variable operational expenditure of the compressor, based on inflow.
  • opex_fixed::TimeProfile is the fixed operational expenditure of the compressor.
  • input::Dict{<:Resource,<:Real} is the input flow into the SimpleCompressor. Include both the inflow resource and the energy resource needed for the potential increase.
  • output::Dict{<:Resource,<:Real} is the output flow from the SimpleCompressor. Only include the outflow resource.
  • max_incr_potential::TimeProfile is the maximum potential increase the SimpleCompressor can provide.
source
EnergyModelsGasNetworks.PoolingNodeType

New NetworkNode that overwrite the function constraints flowin such that capuse is the sum of the flowin for blend resources. The constraint flowout remain as standard NetworkNodes where capuse = flowout (only one resource is out of PoolingNode)

TODO: Define a check that guarantees that only one resource is in output.

source
EnergyModelsGasNetworks.RefConversionType
struct RefConversion <: UnitConversion

Default UnitConversion node to convert units.

Fields

  • id::Any is the name/identifier of the node.
  • input::Dict{<:Resource,<:Real} is the input flow into the RefConversion. The conversion value Real is not used. #TODO: As the conversion value is not used, should we consider changing the type of input to Vector{<:Resource}?
  • output::Dict{<:Resource,<:Real} is the output flow from the RefConversion. The conversion value Real is not used. #TODO: As the conversion value is not used, should we consider changing the type of output to Vector{<:Resource}?
  • data::Vector{<:EMB.ExtensionData} is the vector of ExtensionData. This data will define the type of conversion (e.g., volumetric flow to energy).
source
EnergyModelsGasNetworks.CapDirectType
struct CapDirect{T} <: Link

A direct link between two nodes with a maximum capacity and data.

Fields

  • id is the name/identifier of the link.
  • from::Node is the node from which there is flow into the link.
  • to::Node is the node to which there is flow out of the link.
  • formulation::Formulation is the used formulation of links. If not specified, a Linear link is assumed.
  • cap::T is the maximum capacity of the link.
  • data::Vector{<:ExtensionData} is a vector of extension data associated with the link.
source

Data structures

EnergyModelsGasNetworks.PressureLinkDataType
PressureLinkData <: AbstractLinkPressureData

Data for Links necessary to model the flow-pressure behaviour.

Fields

  • weymouth::Real actual weymouth constant value of the line (pipe)
  • max_potential::Real is the maximum inlet pressure of the link, used to calculate the approximations.
  • min_potential::Real is the minimum inlet pressure of the link, used to calculate the approximations.
source
EnergyModelsGasNetworks.RefBlendDataType
RefBlendData{T<:CompoundResource} <: BlendData

Blending data for controlling the quality of Nodes. #TODO: Create a check that guarantees that the resources in maxproportion and minproportion are either ResourceComponent or ResourceComponentPotential.

source
EnergyModelsGasNetworks.BlendLinkDataType
BlendLinkData{T<:CompoundResource} <: BlendData

Blending data for Links. #TODO: Create a check that guarantees that the resources in maxproportion and minproportion are either ResourceComponent or ResourceComponentPotential.

source
EnergyModelsGasNetworks.FlowToEnergyDataType
struct FlowToEnergyData <: UnitsData

Data structure for converting flow units to energy units in UnitConversion nodes.

Fields

  • specific_energy_content::Union{Real, Dict{<:Resource,<:Real}} it contains the specific energy content of the resources involved in the conversion.

If the input into the UnitConversion node is a single resource, it is enough to provide the value as a Real. If the input into the UnitConversion node is a ResourcePooling, one must provide a Dict{<:Resource,<:Real} with the specific energy content of each resource in the blend.

source