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

Base class for every circuit component. More...

#include <cl_Component.hpp>

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

Public Member Functions

 Component (const uint aNumTerminals, Cell< ElectricNode * > &aTerminals, string aLabel="")
 ~Component () override
virtual ComponentType component_type () const
uint number_of_terminals () const
ElectricNodenode (index_t tIndex) const
virtual real get_value () const
virtual real dIdV () const
virtual real get_discretized_resistance () const
virtual real get_discretized_source () const
virtual real get_current () const
string get_label () const
virtual void set_current (const real aCurrent)
virtual void compute_current ()
virtual void set_timestep (const real aDeltaTime)
virtual void shift (const real aTime, const real aDeltaTime)
virtual void shift_back ()
virtual void save_state (hid_t aGroup, const string &aPrefix)
 write this component's time-stepping state into the restart group, dataset names prefixed with aPrefix.
virtual void load_state (hid_t aGroup, const string &aPrefix)
 restore the state written by save_state().
virtual bool is_closed () const
virtual void switch_state ()
virtual ElectricNodeget_node_plus () const
virtual ElectricNodeget_node_minus () const
Public Member Functions inherited from belfem::graph::Vertex
 Vertex ()=default
virtual ~Vertex ()
void set_id (const id_t aID)
id_t id () const
virtual void set_index (const index_t aIndex)
virtual index_t index () const
virtual void set_owner (const proc_t aOwner)
virtual proc_t owner () const
index_t level () const
void set_level (const index_t aLevel)
virtual void flag (const uint8_t aIndex=0)
virtual void unflag (const uint8_t aIndex=0)
virtual bool is_flagged (const uint8_t aIndex=0) const
void increment_vertex_counter ()
void init_vertex_container ()
void init_vertex_container (const uint aSize)
void reset_vertex_container ()
void insert_vertex (Vertex *aVertex)
uint number_of_vertices () const
virtual Vertexvertex (const uint aIndex)
virtual auto vertex (const uint aIndex) const -> decltype(this)
virtual void init_element_container ()
virtual void reset_element_container ()
void sort_vertices ()
 sorts the vertices according to their index
void reverse_vertices ()

Protected Attributes

const uint mNumTerminals
 Number of terminals.
string mLabel
 Label.
ElectricNode ** mTerminals = nullptr
 Nodes at each terminal ( non-owning ).
Protected Attributes inherited from belfem::graph::Vertex
uint32_t mVertexCounter = 0
Vertex ** mVertices = nullptr

Detailed Description

Base class for every circuit component.

See also
Circuit Module Usage Guide

Constructor & Destructor Documentation

◆ Component()

belfem::electronics::Component::Component ( const uint aNumTerminals,
Cell< ElectricNode * > & aTerminals,
string aLabel = "" )

◆ ~Component()

belfem::electronics::Component::~Component ( )
override

Member Function Documentation

◆ component_type()

◆ compute_current()

◆ dIdV()

real belfem::electronics::Component::dIdV ( ) const
virtual

◆ get_current()

real belfem::electronics::Component::get_current ( ) const
virtual

◆ get_discretized_resistance()

real belfem::electronics::Component::get_discretized_resistance ( ) const
virtual

◆ get_discretized_source()

real belfem::electronics::Component::get_discretized_source ( ) const
virtual

◆ get_label()

string belfem::electronics::Component::get_label ( ) const

◆ get_node_minus()

ElectricNode * belfem::electronics::Component::get_node_minus ( ) const
virtual

◆ get_node_plus()

ElectricNode * belfem::electronics::Component::get_node_plus ( ) const
virtual

◆ get_value()

◆ is_closed()

bool belfem::electronics::Component::is_closed ( ) const
virtual

Reimplemented in belfem::electronics::Switch.

◆ load_state()

void belfem::electronics::Component::load_state ( hid_t aGroup,
const string & aPrefix )
virtual

restore the state written by save_state().

The loaded object is coherent for both legal continuations: the controller triad ( set_timestep - shift - stamp ) and a stamp without shift. Calling shift_back() before the first post-restore shift() is forbidden

Reimplemented in belfem::electronics::Capacitor, belfem::electronics::CurrentSource, belfem::electronics::FEMTwoTerminals, belfem::electronics::Inductor, belfem::electronics::Switch, and belfem::electronics::VoltageSource.

◆ node()

ElectricNode * belfem::electronics::Component::node ( index_t tIndex) const

◆ number_of_terminals()

uint belfem::electronics::Component::number_of_terminals ( ) const

◆ save_state()

void belfem::electronics::Component::save_state ( hid_t aGroup,
const string & aPrefix )
virtual

write this component's time-stepping state into the restart group, dataset names prefixed with aPrefix.

Default: no state ( resistors, diodes and superconductors recompute from voltages )

Reimplemented in belfem::electronics::Capacitor, belfem::electronics::CurrentSource, belfem::electronics::FEMTwoTerminals, belfem::electronics::Inductor, belfem::electronics::Switch, and belfem::electronics::VoltageSource.

◆ set_current()

void belfem::electronics::Component::set_current ( const real aCurrent)
virtual

◆ set_timestep()

void belfem::electronics::Component::set_timestep ( const real aDeltaTime)
virtual

◆ shift()

◆ shift_back()

void belfem::electronics::Component::shift_back ( )
virtual

◆ switch_state()

void belfem::electronics::Component::switch_state ( )
virtual

Reimplemented in belfem::electronics::Switch.

Member Data Documentation

◆ mLabel

string belfem::electronics::Component::mLabel
protected

Label.

◆ mNumTerminals

const uint belfem::electronics::Component::mNumTerminals
protected

Number of terminals.

◆ mTerminals

ElectricNode** belfem::electronics::Component::mTerminals = nullptr
protected

Nodes at each terminal ( non-owning ).


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