12#ifndef CL_ELECTRICALCIRCUIT_HPP
13#define CL_ELECTRICALCIRCUIT_HPP
42 Cell < ElectricNode * > mNodes ;
45 Cell < Component * > mComponents ;
48 Cell < Component * > mComponentsUnknown ;
51 Cell < FEMTwoTerminals* > mTerminalPairs ;
54 Cell < graph::Vertex* > mVertices ;
60 uint mNumberOfComponents = 0;
63 uint mNumberOfUnknownCurrents = 0;
92 string mOutputFile =
"" ;
141 Cell < FEMTwoTerminals * > &
324 return mTerminalPairs( aIndex )->get_current() ;
332 return mTerminalPairs( aIndex )->get_node_plus()->get_voltage()-
333 mTerminalPairs( aIndex )->get_node_minus()->get_voltage() ;
341 mTerminalPairs( aIndex )->set_IV( aI, aV ) ;
Unified interface to the sparse direct solvers.
Definition cl_Solver.hpp:34
Definition cl_SourceFunction.hpp:80
Sparse matrix in CSR or CSC format.
Definition cl_SpMatrix.hpp:52
Base class for every circuit component.
Definition cl_Component.hpp:34
void create_capacitor(const real aValue, const uint aOrder, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="")
Definition cl_ElectricalCircuit.cpp:318
void create_resistor(const real aValue, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="")
Definition cl_ElectricalCircuit.cpp:298
real current(const index_t aIndex) const override
Definition cl_ElectricalCircuit.hpp:322
void shift() override
Definition cl_ElectricalCircuit.cpp:195
real voltage(const index_t aIndex) const override
Definition cl_ElectricalCircuit.hpp:330
uint number_of_components() const
Definition cl_ElectricalCircuit.cpp:120
void create_diode(const real aIs, const real aVt, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="")
Definition cl_ElectricalCircuit.cpp:376
void set_output_voltages(const Vector< id_t > aVoltages)
Definition cl_ElectricalCircuit.cpp:178
real get_current_on_component(const index_t aIndex) const
Definition cl_ElectricalCircuit.cpp:88
void load_state(hid_t aFile) override
Definition cl_ElectricalCircuit.cpp:1085
void save_timestep() override
Definition cl_ElectricalCircuit.cpp:1006
void set_current_and_voltage(const index_t aIndex, const real aI, const real aV) override
Definition cl_ElectricalCircuit.hpp:339
ElectricalCircuit(const ElectricalCircuit &)=delete
void create_switch(const bool aIsClosed, const real aTimeSwitch, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="")
Definition cl_ElectricalCircuit.cpp:357
void create_terminal_pair(const index_t aNIndex1, const index_t aNIndex2, const string aLabel="")
Definition cl_ElectricalCircuit.cpp:396
void init_output_file()
Definition cl_ElectricalCircuit.cpp:1040
void compute_adjacency()
Definition cl_ElectricalCircuit.cpp:417
void compute_MNA_matrix() override
Definition cl_ElectricalCircuit.cpp:610
void solve() override
Definition cl_ElectricalCircuit.cpp:948
ElectricalCircuit(ElectricalCircuit &&)=delete
void save_state(hid_t aFile) override
Definition cl_ElectricalCircuit.cpp:1061
uint number_of_nodes() const
Definition cl_ElectricalCircuit.cpp:112
uint degree_of_graph_vertex(const index_t aIndex) const
adjacency-list length of one vertex of that graph, i.e.
Definition cl_ElectricalCircuit.cpp:136
uint number_of_graph_vertices() const
number of vertices in the adjacency graph handed to the SpMatrix: the non-ground nodes,...
Definition cl_ElectricalCircuit.cpp:128
void create_inductor(const real aValue, const uint aOrder, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="")
Definition cl_ElectricalCircuit.cpp:308
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="")
Definition cl_ElectricalCircuit.cpp:386
void set_output_currents(const Cell< string > aCurrents)
Definition cl_ElectricalCircuit.cpp:170
real residual() const override
Definition cl_ElectricalCircuit.cpp:998
void set_omega(const real aOmega) override
Definition cl_ElectricalCircuit.cpp:186
ElectricalCircuit & operator=(const ElectricalCircuit &)=delete
void set_file(const string aFile)
Definition cl_ElectricalCircuit.cpp:162
ElectricalCircuit & operator=(ElectricalCircuit &&)=delete
real get_voltage_on_node(const index_t aIndex) const
Definition cl_ElectricalCircuit.cpp:80
void set_timestep(const real aDeltaTime) override
Definition cl_ElectricalCircuit.cpp:144
Component * component(const index_t aIndex) const
Definition cl_ElectricalCircuit.cpp:96
void compute_jacobian_and_rhs() override
Definition cl_ElectricalCircuit.cpp:749
Cell< FEMTwoTerminals * > & terminal_pairs()
Definition cl_ElectricalCircuit.cpp:104
void create_voltage_source(SourceFunction *aFunction, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="")
Definition cl_ElectricalCircuit.cpp:328
ElectricalCircuit(const uint aNumberOfNodes)
Definition cl_ElectricalCircuit.cpp:32
void shift_back() override
Definition cl_ElectricalCircuit.cpp:227
void create_current_source(SourceFunction *aFunction, const index_t aNIndex1, const index_t aNIndex2, const string aLabel="")
Definition cl_ElectricalCircuit.cpp:347
Definition cl_Capacitor.cpp:18
USER GUIDES:
Definition cl_Capacitor.cpp:16
int hid_t
Definition hdf5_types.hpp:20
unsigned int uint
Definition typedefs.hpp:30
@ SUPERLU
Definition en_SolverEnums.hpp:25
uint32_t index_t
Definition typedefs.hpp:52
double real
Definition typedefs.hpp:36