#include <AdmittanceNetwork_SUPERLU.h>
Public Member Functions | |
AdmittanceNetwork_SUPERLU (int N, bool init_eye=false) | |
void | add_line (int i, int j, Complex y) |
void | add_line (int i, int j, Complex y, double turns, double phase_shift, int side) |
void | remove_line (int i, int j, Complex y) |
void | remove_line (int i, int j, Complex y, double turns, double phase_shift, int side) |
void | add_self (int i, Complex y) |
void | remove_self (int i, Complex y) |
void | solve_for_voltage (const Complex *I, Complex *V) |
void | solve_for_current (const Complex *V, Complex *I) |
Complex | get (int i, int j) const |
void | printAll () |
~AdmittanceNetwork_SUPERLU () |
This is a current and voltage solver that is based on the SuperLU code.
Definition at line 10 of file AdmittanceNetwork_SUPERLU.h.
AdmittanceNetwork_SUPERLU::AdmittanceNetwork_SUPERLU | ( | int | N, | |
bool | init_eye = false | |||
) |
Create a network with N busses. If init_eye = true then 1+j0 will be assigned to the diagonal entries. Otherwise, the initial value of the diagonals will be zero. Note that a usable admittance network must have non-zero entries on the diagonal. A zero on the diagonal indicates an islanded system, which is a serious problem for this model.
Definition at line 5 of file AdmittanceNetwork_SUPERLU.cpp.
AdmittanceNetwork_SUPERLU::~AdmittanceNetwork_SUPERLU | ( | ) |
Destructor
Definition at line 38 of file AdmittanceNetwork_SUPERLU.cpp.
void AdmittanceNetwork_SUPERLU::add_line | ( | int | i, | |
int | j, | |||
Complex | y | |||
) | [virtual] |
Add a line from bus i to bus j
Implements AdmittanceNetworkInterface.
Definition at line 168 of file AdmittanceNetwork_SUPERLU.cpp.
Referenced by remove_line().
void AdmittanceNetwork_SUPERLU::add_self | ( | int | i, | |
Complex | y | |||
) | [virtual] |
Add a self-impedence at bus i
Implements AdmittanceNetworkInterface.
Definition at line 184 of file AdmittanceNetwork_SUPERLU.cpp.
Referenced by remove_self().
Complex AdmittanceNetwork_SUPERLU::get | ( | int | i, | |
int | j | |||
) | const [virtual] |
Get the admittance at matrix entry i,j. If i!=j this is the line from i to j. If i=j then it is the impedence at a bus.
Implements AdmittanceNetworkInterface.
Definition at line 126 of file AdmittanceNetwork_SUPERLU.cpp.
void AdmittanceNetwork_SUPERLU::printAll | ( | ) |
Print all of the matrices.
void AdmittanceNetwork_SUPERLU::remove_line | ( | int | i, | |
int | j, | |||
Complex | y | |||
) | [virtual] |
Remove the line from bus i to bus j
Implements AdmittanceNetworkInterface.
Definition at line 179 of file AdmittanceNetwork_SUPERLU.cpp.
References add_line().
void AdmittanceNetwork_SUPERLU::remove_self | ( | int | i, | |
Complex | y | |||
) | [virtual] |
Remove a self-impedence at bus i
Implements AdmittanceNetworkInterface.
Definition at line 189 of file AdmittanceNetwork_SUPERLU.cpp.
References add_self().
void AdmittanceNetwork_SUPERLU::solve_for_current | ( | const Complex * | V, | |
Complex * | I | |||
) | [virtual] |
Get the bus currents given the bus voltages. The voltages are in V and the currents are written to I.
Implements AdmittanceNetworkInterface.
Definition at line 232 of file AdmittanceNetwork_SUPERLU.cpp.
void AdmittanceNetwork_SUPERLU::solve_for_voltage | ( | const Complex * | I, | |
Complex * | V | |||
) | [virtual] |
Get the the bus voltages give the bus currents. Injected currents are in I and the network voltages are written to V.
Implements AdmittanceNetworkInterface.
Definition at line 194 of file AdmittanceNetwork_SUPERLU.cpp.