Links
Link
s are connecting the individual Node
s for the exchange of energy/mass. Link
s are directional, that is transport of mass/energy is only allowed in a single direction.
Index
EnergyModelsBase.Direct
EnergyModelsBase.Linear
EnergyModelsBase.Link
EnergyModelsBase.formulation
EnergyModelsBase.has_capacity
EnergyModelsBase.has_emissions
EnergyModelsBase.has_opex
EnergyModelsBase.inputs
EnergyModelsBase.is_unidirectional
EnergyModelsBase.link_data
EnergyModelsBase.outputs
Link
types
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.Link
— TypeDeclaration of the general type for links connecting nodes.
EnergyModelsBase.Direct
— TypeDirect <: 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, aLinear
link is assumed.
EnergyModelsBase.Linear
— TypeLinear Formulation
, that is input equals output.
Functions for accessing fields of Link
types
The following functions are declared for accessing fields from a Link
type.
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.
EnergyModelsBase.inputs
— Methodinputs(n::Link)
Returns the input resources of a link l
.
The default approach is to use the function link_res(l::Link)
.
EnergyModelsBase.outputs
— Methodoutputs(n::Link)
Returns the output resources of a link l
.
The default approach is to use the function link_res(l::Link)
.
EnergyModelsBase.formulation
— Functionformulation(l::Link)
Return the formulation of a Link l
.
EnergyModelsBase.link_data
— FunctionFunctions for identifying Link
s
The following functions are declared for filtering on Link
types.
EnergyModelsBase.has_capacity
— Methodhas_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.
EnergyModelsBase.has_emissions
— Methodhas_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.
EnergyModelsBase.has_opex
— Methodhas_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.
EnergyModelsBase.is_unidirectional
— Methodis_unidirectional(l::Link)
Returns logic whether the link l
can be used bidirectional or only unidirectional.
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.