Module ml4opf.functional.incidence

Incidence matrices and related functions.

Functions

def adjacency(fbus: torch.Tensor, tbus: torch.Tensor, n_bus: int, n_branch: int) ‑> torch.Tensor

Sparse adjacency matrix.

Each row corresponds to a bus and each column corresponds to a bus. The value is 1 if there is a branch between the buses, and 0 otherwise.

Args

fbus : Tensor
From bus indices. (nbranch,)
tbus : Tensor
To bus indices. (nbranch,)
n_bus : int
Number of buses.
n_branch : int
Number of branches.

Returns

Tensor
Sparse adjacency matrix. (nbus, nbus)
def branch_from_incidence(fbus: torch.Tensor, n_bus: int, n_branch: int) ‑> torch.Tensor

Sparse branch from incidence matrix.

Each row corresponds to a bus and each column corresponds to a branch. The value is 1 if the branch is from the bus, and 0 otherwise.

Args

fbus : Tensor
From bus indices. (nbranch,)
n_bus : int
Number of buses.
n_branch : int
Number of branches.

Returns

Tensor
Sparse branch from incidence matrix. (nbus, nbranch)
def branch_incidence(fbus: torch.Tensor, tbus: torch.Tensor, n_bus: int, n_branch: int) ‑> torch.Tensor

Sparse branch incidence matrix.

Each row corresponds to a bus and each column corresponds to a branch. The value is 1 if the branch is from the bus, -1 if the branch is to the bus, and 0 otherwise.

Args

fbus : Tensor
From bus indices. (nbranch,)
tbus : Tensor
To bus indices. (nbranch,)
n_bus : int
Number of buses.
n_branch : int
Number of branches.

Returns

Tensor
Sparse branch incidence matrix. (nbus, nbranch)
def branch_to_incidence(tbus: torch.Tensor, n_bus: int, n_branch: int) ‑> torch.Tensor

Sparse branch to incidence matrix.

Each row corresponds to a bus and each column corresponds to a branch. The value is 1 if the branch is to the bus, and 0 otherwise.

Args

tbus : Tensor
To bus indices. (nbranch,)
n_bus : int
Number of buses.
n_branch : int
Number of branches.

Returns

Tensor
Sparse branch to incidence matrix. (nbus, nbranch)
def generator_incidence(gen_bus: torch.Tensor, n_bus: int, n_gen: int) ‑> torch.Tensor

Sparse generator incidence matrix.

Each row corresponds to a bus and each column corresponds to a generator. The value is 1 if the generator is at the bus, and 0 otherwise.

Args

gen_bus : Tensor
Generator bus indices. (ngen,)
n_bus : int
Number of buses.
n_gen : int
Number of generators.

Returns

Tensor
Sparse generator incidence matrix. (nbus, ngen)
def load_incidence(load_bus: torch.Tensor, n_bus: int, n_load: int) ‑> torch.Tensor

Sparse load incidence matrix.

Each row corresponds to a bus and each column corresponds to a load. The value is 1 if the load is at the bus, and 0 otherwise.

Args

load_bus : Tensor
Load bus indices. (nload,)
n_bus : int
Number of buses.
n_load : int
Number of loads.

Returns

Tensor
Sparse load incidence matrix. (nbus, nload)
def map_to_bus_matrix(x: torch.Tensor, x_matrix: torch.Tensor)

Map component-wise values to bus-wise values using matrix multiplication.

def map_to_bus_pad(x: torch.Tensor, x_per_bus: torch.Tensor)

Map component-wise values to bus-wise values using zero-padding.