Links

Links are connecting the individual Nodes for the exchange of energy/mass. Links are directional, that is transport of mass/energy is only allowed in a single direction.

Index

The following types for links are implemented in EnergyModelsBase. The thought process is to dispatch on the EMB.Formulation of a link as additional option. This is in the current stage not implemented.

EnergyModelsBase.DirectType

Direct <: Link

A direct link between two nodes.

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.
source

The following functions are declared for accessing fields from a Link type.

New link types

If you want to introduce new Link types, it is important that the function formulation is either functional for your new types or you have to declare a corresponding function. The first approach can be achieved through using the same name for the respective fields.

The following functions are declared for filtering on Link types.

EnergyModelsBase.has_capacityMethod
has_capacity(l::Link)

Checks whether link l has a capacity.

By default, links do not have a capacity. You must dispatch on this function if you want to introduce links with capacities.

source
EnergyModelsBase.has_emissionsMethod
has_emissions(l::Link)

Checks whether link l has emissions.

By default, links do not have emissions. You must dispatch on this function if you want to introduce links with associated emissions, e.g., through leakage.

source
EnergyModelsBase.has_opexMethod
has_opex(l::Link)

Checks whether link l has operational expenses.

By default, links do not have operational expenses. You must dispatch on this function if you want to introduce links with operational expenses.

source
EnergyModelsBase.is_unidirectionalMethod
is_unidirectional(l::Link)

Returns logic whether the link l can be used bidirectional or only unidirectional.

Bidirectional flow in links

In the current stage, EnergyModelsBase does not include any links which can be used bidirectional, that is with flow reversal.

If you plan to use bidirectional flow, you have to declare your own nodes and links which support this. You can then dispatch on this function for the incorporation.

source