The circuit itself: MNA assembly, Jacobian, solve and timestep. More...
#include <cl_ElectricalCircuit.hpp>
Public Member Functions | |
| ElectricalCircuit (const uint aNumberOfNodes) | |
| ~ElectricalCircuit () override | |
| ElectricalCircuit (const ElectricalCircuit &)=delete | |
| ElectricalCircuit (ElectricalCircuit &&)=delete | |
| ElectricalCircuit & | operator= (const ElectricalCircuit &)=delete |
| ElectricalCircuit & | operator= (ElectricalCircuit &&)=delete |
| real | get_voltage_on_node (const index_t aIndex) const |
| real | get_current_on_component (const index_t aIndex) const |
| Component * | component (const index_t aIndex) const |
| Cell< FEMTwoTerminals * > & | terminal_pairs () |
| uint | number_of_nodes () const |
| uint | number_of_components () const |
| void | set_timestep (const real aDeltaTime) override |
| void | set_file (const string aFile) |
| void | set_output_currents (const Cell< string > aCurrents) |
| void | set_output_voltages (const Vector< id_t > aVoltages) |
| void | set_omega (const real aOmega) override |
| void | shift () override |
| void | shift_back () override |
| void | create_resistor (const real aValue, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | create_inductor (const real aValue, const uint aOrder, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | create_capacitor (const real aValue, const uint aOrder, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | create_voltage_source (SourceFunction *aFunction, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | create_current_source (SourceFunction *aFunction, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | create_switch (const bool aIsClosed, const real aTimeSwitch, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | create_diode (const real aIs, const real aVt, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | create_superconductor (const real aIc, const real aN, const real aEc, const real aLength, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | create_terminal_pair (const index_t aNIndex1, const index_t aNIndex2, const string aLabel="") |
| void | compute_adjacency () |
| uint | number_of_graph_vertices () const |
| number of vertices in the adjacency graph handed to the SpMatrix: the non-ground nodes, then one branch vertex per unknown-current component. | |
| uint | degree_of_graph_vertex (const index_t aIndex) const |
| adjacency-list length of one vertex of that graph, i.e. | |
| void | compute_jacobian_and_rhs () override |
| void | compute_MNA_matrix () override |
| void | solve () override |
| real | residual () const override |
| void | save_timestep () override |
| void | init_output_file () |
| real | current (const index_t aIndex) const override |
| real | voltage (const index_t aIndex) const override |
| void | set_current_and_voltage (const index_t aIndex, const real aI, const real aV) override |
| void | save_state (hid_t aFile) override |
| void | load_state (hid_t aFile) override |
| Public Member Functions inherited from belfem::Circuit | |
| Circuit ()=default | |
| virtual | ~Circuit ()=default |
| Circuit (const Circuit &)=delete | |
| Circuit (Circuit &&)=delete | |
| Circuit & | operator= (const Circuit &)=delete |
| Circuit & | operator= (Circuit &&)=delete |
The circuit itself: MNA assembly, Jacobian, solve and timestep.
| belfem::electronics::ElectricalCircuit::ElectricalCircuit | ( | const uint | aNumberOfNodes | ) |
|
override |
|
delete |
|
delete |
| void belfem::electronics::ElectricalCircuit::compute_adjacency | ( | ) |
|
overridevirtual |
Implements belfem::Circuit.
|
overridevirtual |
Implements belfem::Circuit.
| void belfem::electronics::ElectricalCircuit::create_capacitor | ( | const real | aValue, |
| const uint | aOrder, | ||
| const index_t | aNIndex1, | ||
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
| void belfem::electronics::ElectricalCircuit::create_current_source | ( | SourceFunction * | aFunction, |
| const index_t | aNIndex1, | ||
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
| void belfem::electronics::ElectricalCircuit::create_diode | ( | const real | aIs, |
| const real | aVt, | ||
| const index_t | aNIndex1, | ||
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
| void belfem::electronics::ElectricalCircuit::create_inductor | ( | const real | aValue, |
| const uint | aOrder, | ||
| const index_t | aNIndex1, | ||
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
| void belfem::electronics::ElectricalCircuit::create_resistor | ( | const real | aValue, |
| const index_t | aNIndex1, | ||
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
| void belfem::electronics::ElectricalCircuit::create_superconductor | ( | const real | aIc, |
| const real | aN, | ||
| const real | aEc, | ||
| const real | aLength, | ||
| const index_t | aNIndex1, | ||
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
| void belfem::electronics::ElectricalCircuit::create_switch | ( | const bool | aIsClosed, |
| const real | aTimeSwitch, | ||
| const index_t | aNIndex1, | ||
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
| void belfem::electronics::ElectricalCircuit::create_terminal_pair | ( | const index_t | aNIndex1, |
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
| void belfem::electronics::ElectricalCircuit::create_voltage_source | ( | SourceFunction * | aFunction, |
| const index_t | aNIndex1, | ||
| const index_t | aNIndex2, | ||
| const string | aLabel = "" ) |
|
inlineoverridevirtual |
Implements belfem::Circuit.
adjacency-list length of one vertex of that graph, i.e.
how many entries it contributes to the sparsity pattern. Zero until compute_adjacency() has filled the graph
| void belfem::electronics::ElectricalCircuit::init_output_file | ( | ) |
|
overridevirtual |
Implements belfem::Circuit.
| uint belfem::electronics::ElectricalCircuit::number_of_components | ( | ) | const |
| uint belfem::electronics::ElectricalCircuit::number_of_graph_vertices | ( | ) | const |
number of vertices in the adjacency graph handed to the SpMatrix: the non-ground nodes, then one branch vertex per unknown-current component.
NOT number_of_nodes(), which counts ground and no branches. Valid as soon as the circuit is built
| uint belfem::electronics::ElectricalCircuit::number_of_nodes | ( | ) | const |
|
delete |
|
delete |
|
overridevirtual |
Implements belfem::Circuit.
|
overridevirtual |
Implements belfem::Circuit.
|
overridevirtual |
Implements belfem::Circuit.
|
inlineoverridevirtual |
Implements belfem::Circuit.
| void belfem::electronics::ElectricalCircuit::set_file | ( | const string | aFile | ) |
|
overridevirtual |
Implements belfem::Circuit.
|
overridevirtual |
Implements belfem::Circuit.
|
overridevirtual |
Implements belfem::Circuit.
|
overridevirtual |
Implements belfem::Circuit.
|
overridevirtual |
Implements belfem::Circuit.
| Cell< FEMTwoTerminals * > & belfem::electronics::ElectricalCircuit::terminal_pairs | ( | ) |
|
inlineoverridevirtual |
Implements belfem::Circuit.