Iterates through the network removing edges until no edges are over the line limit and the network has stabilised.
Cascade2( g, g0 = NULL, node_power = node_power, edge_status = edge_status, AZero, LineProperties, Generation = "Generation", Demand = "Demand", EdgeName = "Link", VertexName = "name", Net_generation = "BalencedPower", power_flow = "PowerFlow", edge_limit = "Link.Limit" )
g | An igraph object. The graph at its current state in the attack process |
---|---|
g0 | An igraph object. An optional value that defines the reference network |
node_power | A vector of the current node power for this round |
edge_status | A vector of current edge status, this is an integer vector of 4 levels 0-3 |
AZero | A matrix. THe transmission matrix of the network |
LineProperties | The diagonal Line properties matrix |
Generation | The name of the node generation variable. A character string. |
Demand | the name of the node Load variable. A character string. |
EdgeName | The variable that holds the edge names, a character string. |
VertexName | The variable that holds the names of the nodes, to identify the slack ref. a character string |
Net_generation | The name that the net generation data for each node is held in |
power_flow | A character string. This value indicates the name of the edge attribute that holds power flow, the default is "PowerFlow" |
edge_limit | A character string. This value indicates the name of the edge attribute that holds the edge limit, the default is "Link.Limit" |
This version of cascade works with the attack_the_grid function. It is confusing as it is called cascade2 not one but there we go.
The function outputs a list of 3 elements. the first element is the updated igraph oobject after the cascade has terminated. The second element is a vector of node power values, the third element is a vector of the edge status.