BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::electronics::ElectricalCircuit Class Reference

The circuit itself: MNA assembly, Jacobian, solve and timestep. More...

#include <cl_ElectricalCircuit.hpp>

Inheritance diagram for belfem::electronics::ElectricalCircuit:
[legend]
Collaboration diagram for belfem::electronics::ElectricalCircuit:
[legend]

Public Member Functions

 ElectricalCircuit (const uint aNumberOfNodes)
 ~ElectricalCircuit () override
 ElectricalCircuit (const ElectricalCircuit &)=delete
 ElectricalCircuit (ElectricalCircuit &&)=delete
ElectricalCircuitoperator= (const ElectricalCircuit &)=delete
ElectricalCircuitoperator= (ElectricalCircuit &&)=delete
real get_voltage_on_node (const index_t aIndex) const
real get_current_on_component (const index_t aIndex) const
Componentcomponent (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
Circuitoperator= (const Circuit &)=delete
Circuitoperator= (Circuit &&)=delete

Detailed Description

The circuit itself: MNA assembly, Jacobian, solve and timestep.

See also
Circuit Module Usage Guide

Constructor & Destructor Documentation

◆ ElectricalCircuit() [1/3]

belfem::electronics::ElectricalCircuit::ElectricalCircuit ( const uint aNumberOfNodes)

◆ ~ElectricalCircuit()

belfem::electronics::ElectricalCircuit::~ElectricalCircuit ( )
override

◆ ElectricalCircuit() [2/3]

belfem::electronics::ElectricalCircuit::ElectricalCircuit ( const ElectricalCircuit & )
delete

◆ ElectricalCircuit() [3/3]

belfem::electronics::ElectricalCircuit::ElectricalCircuit ( ElectricalCircuit && )
delete

Member Function Documentation

◆ component()

Component * belfem::electronics::ElectricalCircuit::component ( const index_t aIndex) const

◆ compute_adjacency()

void belfem::electronics::ElectricalCircuit::compute_adjacency ( )

◆ compute_jacobian_and_rhs()

void belfem::electronics::ElectricalCircuit::compute_jacobian_and_rhs ( )
overridevirtual

Implements belfem::Circuit.

◆ compute_MNA_matrix()

void belfem::electronics::ElectricalCircuit::compute_MNA_matrix ( )
overridevirtual

Implements belfem::Circuit.

◆ create_capacitor()

void belfem::electronics::ElectricalCircuit::create_capacitor ( const real aValue,
const uint aOrder,
const index_t aNIndex1,
const index_t aNIndex2,
const string aLabel = "" )

◆ create_current_source()

void belfem::electronics::ElectricalCircuit::create_current_source ( SourceFunction * aFunction,
const index_t aNIndex1,
const index_t aNIndex2,
const string aLabel = "" )

◆ create_diode()

void belfem::electronics::ElectricalCircuit::create_diode ( const real aIs,
const real aVt,
const index_t aNIndex1,
const index_t aNIndex2,
const string aLabel = "" )

◆ create_inductor()

void belfem::electronics::ElectricalCircuit::create_inductor ( const real aValue,
const uint aOrder,
const index_t aNIndex1,
const index_t aNIndex2,
const string aLabel = "" )

◆ create_resistor()

void belfem::electronics::ElectricalCircuit::create_resistor ( const real aValue,
const index_t aNIndex1,
const index_t aNIndex2,
const string aLabel = "" )

◆ create_superconductor()

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 = "" )

◆ create_switch()

void belfem::electronics::ElectricalCircuit::create_switch ( const bool aIsClosed,
const real aTimeSwitch,
const index_t aNIndex1,
const index_t aNIndex2,
const string aLabel = "" )

◆ create_terminal_pair()

void belfem::electronics::ElectricalCircuit::create_terminal_pair ( const index_t aNIndex1,
const index_t aNIndex2,
const string aLabel = "" )

◆ create_voltage_source()

void belfem::electronics::ElectricalCircuit::create_voltage_source ( SourceFunction * aFunction,
const index_t aNIndex1,
const index_t aNIndex2,
const string aLabel = "" )

◆ current()

real belfem::electronics::ElectricalCircuit::current ( const index_t aIndex) const
inlineoverridevirtual

Implements belfem::Circuit.

◆ degree_of_graph_vertex()

uint belfem::electronics::ElectricalCircuit::degree_of_graph_vertex ( const index_t aIndex) const

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

◆ get_current_on_component()

real belfem::electronics::ElectricalCircuit::get_current_on_component ( const index_t aIndex) const

◆ get_voltage_on_node()

real belfem::electronics::ElectricalCircuit::get_voltage_on_node ( const index_t aIndex) const

◆ init_output_file()

void belfem::electronics::ElectricalCircuit::init_output_file ( )

◆ load_state()

void belfem::electronics::ElectricalCircuit::load_state ( hid_t aFile)
overridevirtual

Implements belfem::Circuit.

◆ number_of_components()

uint belfem::electronics::ElectricalCircuit::number_of_components ( ) const

◆ number_of_graph_vertices()

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

◆ number_of_nodes()

uint belfem::electronics::ElectricalCircuit::number_of_nodes ( ) const

◆ operator=() [1/2]

ElectricalCircuit & belfem::electronics::ElectricalCircuit::operator= ( const ElectricalCircuit & )
delete

◆ operator=() [2/2]

ElectricalCircuit & belfem::electronics::ElectricalCircuit::operator= ( ElectricalCircuit && )
delete

◆ residual()

real belfem::electronics::ElectricalCircuit::residual ( ) const
overridevirtual

Implements belfem::Circuit.

◆ save_state()

void belfem::electronics::ElectricalCircuit::save_state ( hid_t aFile)
overridevirtual

Implements belfem::Circuit.

◆ save_timestep()

void belfem::electronics::ElectricalCircuit::save_timestep ( )
overridevirtual

Implements belfem::Circuit.

◆ set_current_and_voltage()

void belfem::electronics::ElectricalCircuit::set_current_and_voltage ( const index_t aIndex,
const real aI,
const real aV )
inlineoverridevirtual

Implements belfem::Circuit.

◆ set_file()

void belfem::electronics::ElectricalCircuit::set_file ( const string aFile)

◆ set_omega()

void belfem::electronics::ElectricalCircuit::set_omega ( const real aOmega)
overridevirtual

Implements belfem::Circuit.

◆ set_output_currents()

void belfem::electronics::ElectricalCircuit::set_output_currents ( const Cell< string > aCurrents)

◆ set_output_voltages()

void belfem::electronics::ElectricalCircuit::set_output_voltages ( const Vector< id_t > aVoltages)

◆ set_timestep()

void belfem::electronics::ElectricalCircuit::set_timestep ( const real aDeltaTime)
overridevirtual

Implements belfem::Circuit.

◆ shift()

void belfem::electronics::ElectricalCircuit::shift ( )
overridevirtual

Implements belfem::Circuit.

◆ shift_back()

void belfem::electronics::ElectricalCircuit::shift_back ( )
overridevirtual

Implements belfem::Circuit.

◆ solve()

void belfem::electronics::ElectricalCircuit::solve ( )
overridevirtual

Implements belfem::Circuit.

◆ terminal_pairs()

Cell< FEMTwoTerminals * > & belfem::electronics::ElectricalCircuit::terminal_pairs ( )

◆ voltage()

real belfem::electronics::ElectricalCircuit::voltage ( const index_t aIndex) const
inlineoverridevirtual

Implements belfem::Circuit.


The documentation for this class was generated from the following files: