Network Model

struct Network <: AbstractNetwork

The Network model is used to store all the inputs required to create power flow and optimal power flow models. Underlying the Network model is a MetaGraphsNext.MetaGraph that stores the edge and node data in the network.

We leverage the AbstractNetwork type to make an intuitive interface for the Network model. For example, edges(network) returns it iterator of edge tuples with bus name values; (but if we used Graphs.edges(MetaGraph) we would get an iterator of Graphs.SimpleGraphs.SimpleEdge with integer values).

A Network can be created directly or via a filepath.

function Network(fp::String)

Construct a Network from a yaml at the file path fp.


The edges of the Network model include all power transfer elements, i.e. the devices in the power system that move power from one place to another and therefore have two or more busses. Edges include:

Within the network model edges are indexed via two-tuples of bus names (strings) like

using CommonOPF
# TODO code that runs using a test file
net = Network("yaml/filepath")
bus = collect(busses(net))[1]


The abstract node in the graph model is really an electrical bus. In single phase models a bus and a node are synonymous. However, in multi-phase models we can think of each bus have multiple nodes, or terminals, where each phase-wire connects. Busses are implicitly specified in the busses of the edge specifications.

Nodes contain: