Public Interface

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

Controls

Resources and blends

EnergyModelsGasNetworks.ResourcePressure — Type
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.ResourcePooling — Type
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.SimpleCompressor — Type
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.PoolingNode — Type

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.RefConversion — Type
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.CapDirect — Type
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.PressureLinkData — Type
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.RefBlendData — Type
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.BlendLinkData — Type
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.FlowToEnergyData — Type
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