SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE > Class Template Reference

#include <SECircuitCalculator.h>

Inherits Loggable.

Public Member Functions

 SECircuitCalculator (const CapacitanceUnit &c, const FluxUnit &f, const InductanceUnit &i, const PotentialUnit &p, const QuantityUnit &q, const ResistanceUnit &r, Logger *logger)
 
virtual ~SECircuitCalculator ()
 
virtual void SetEigenSolver (EigenCircuitSolver s)
 
virtual void SetEigenSolver (EigenCircuitSolver::Type t)
 
virtual void Process (CircuitType &circuit, double timeStep_s)
 
virtual void PostProcess (CircuitType &circuit)
 
- Public Member Functions inherited from Loggable
 Loggable ()
 
 Loggable (Logger *log)
 
virtual ~Loggable ()
 
virtual LoggerGetLogger () const
 
virtual void Debug (std::string const &msg, std::string const &origin=empty) const
 
virtual void Debug (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Debug (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Info (std::string const &msg, std::string const &origin=empty) const
 
virtual void Info (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Info (const std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Info (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Warning (std::string const &msg, std::string const &origin=empty) const
 
virtual void Warning (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Warning (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Error (std::string const &msg, std::string const &origin=empty) const
 
virtual void Error (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Error (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::string const &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::ostream &msg, std::string const &origin=empty) const
 

Protected Member Functions

virtual void ParseIn ()
 
virtual void Solve ()
 
virtual void ParseOut ()
 
virtual void CalculateFluxes ()
 
virtual void CalculateQuantities ()
 
virtual bool CheckAndModifyValves ()
 
virtual bool IsCurrentValveStateUnique ()
 
virtual void PopulateAMatrix (NodeType &nKCL, PathType &p, double dMultiplier, bool hasPotentialSource=false)
 

Protected Attributes

std::stringstream m_ss
 
Eigen::MatrixXd m_AMatrix
 
Eigen::VectorXd m_xVector
 
Eigen::VectorXd m_bVector
 
double m_dT_s
 
double m_currentTime_s
 
double m_refPotential
 
CircuitType * m_circuit
 
EigenCircuitSolver m_solver
 
std::set< uint64_t > m_valveStates
 
std::map< PathType *, size_t > m_potentialSources
 
const CapacitanceUnit & m_CapacitanceUnit
 
const FluxUnit & m_FluxUnit
 
const InductanceUnit & m_InductanceUnit
 
const PotentialUnit & m_PotentialUnit
 
const QuantityUnit & m_QuantityUnit
 
const ResistanceUnit & m_ResistanceUnit
 
- Protected Attributes inherited from Loggable
Loggerm_Logger
 

Additional Inherited Members

- Static Public Attributes inherited from Loggable
static const std::string empty
 

Constructor & Destructor Documentation

◆ SECircuitCalculator()

template<CIRCUIT_CALCULATOR_TEMPLATE >
SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::SECircuitCalculator ( const CapacitanceUnit &  c,
const FluxUnit &  f,
const InductanceUnit &  i,
const PotentialUnit &  p,
const QuantityUnit &  q,
const ResistanceUnit &  r,
Logger logger 
)

◆ ~SECircuitCalculator()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::~SECircuitCalculator ( )
virtual

Member Function Documentation

◆ CalculateFluxes()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::CalculateFluxes ( )
protectedvirtual

◆ CalculateQuantities()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::CalculateQuantities ( )
protectedvirtual

◆ CheckAndModifyValves()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual bool SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::CheckAndModifyValves ( )
protectedvirtual

◆ IsCurrentValveStateUnique()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual bool SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::IsCurrentValveStateUnique ( )
protectedvirtual

◆ ParseIn()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::ParseIn ( )
protectedvirtual

◆ ParseOut()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::ParseOut ( )
protectedvirtual

◆ PopulateAMatrix()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::PopulateAMatrix ( NodeType &  nKCL,
PathType &  p,
double  dMultiplier,
bool  hasPotentialSource = false 
)
protectedvirtual

◆ PostProcess()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::PostProcess ( CircuitType &  circuit)
virtual

◆ Process()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::Process ( CircuitType &  circuit,
double  timeStep_s 
)
virtual

◆ SetEigenSolver() [1/2]

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::SetEigenSolver ( EigenCircuitSolver  s)
inlinevirtual

◆ SetEigenSolver() [2/2]

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::SetEigenSolver ( EigenCircuitSolver::Type  t)
inlinevirtual

◆ Solve()

template<CIRCUIT_CALCULATOR_TEMPLATE >
virtual void SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::Solve ( )
protectedvirtual

Member Data Documentation

◆ m_AMatrix

template<CIRCUIT_CALCULATOR_TEMPLATE >
Eigen::MatrixXd SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_AMatrix
protected

◆ m_bVector

template<CIRCUIT_CALCULATOR_TEMPLATE >
Eigen::VectorXd SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_bVector
protected

◆ m_CapacitanceUnit

template<CIRCUIT_CALCULATOR_TEMPLATE >
const CapacitanceUnit& SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_CapacitanceUnit
protected

◆ m_circuit

template<CIRCUIT_CALCULATOR_TEMPLATE >
CircuitType* SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_circuit
protected

◆ m_currentTime_s

template<CIRCUIT_CALCULATOR_TEMPLATE >
double SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_currentTime_s
protected

◆ m_dT_s

template<CIRCUIT_CALCULATOR_TEMPLATE >
double SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_dT_s
protected

◆ m_FluxUnit

template<CIRCUIT_CALCULATOR_TEMPLATE >
const FluxUnit& SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_FluxUnit
protected

◆ m_InductanceUnit

template<CIRCUIT_CALCULATOR_TEMPLATE >
const InductanceUnit& SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_InductanceUnit
protected

◆ m_potentialSources

template<CIRCUIT_CALCULATOR_TEMPLATE >
std::map<PathType*, size_t> SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_potentialSources
protected

◆ m_PotentialUnit

template<CIRCUIT_CALCULATOR_TEMPLATE >
const PotentialUnit& SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_PotentialUnit
protected

◆ m_QuantityUnit

template<CIRCUIT_CALCULATOR_TEMPLATE >
const QuantityUnit& SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_QuantityUnit
protected

◆ m_refPotential

template<CIRCUIT_CALCULATOR_TEMPLATE >
double SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_refPotential
protected

◆ m_ResistanceUnit

template<CIRCUIT_CALCULATOR_TEMPLATE >
const ResistanceUnit& SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_ResistanceUnit
protected

◆ m_solver

template<CIRCUIT_CALCULATOR_TEMPLATE >
EigenCircuitSolver SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_solver
protected

◆ m_ss

template<CIRCUIT_CALCULATOR_TEMPLATE >
std::stringstream SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_ss
protected

◆ m_valveStates

template<CIRCUIT_CALCULATOR_TEMPLATE >
std::set<uint64_t> SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_valveStates
protected

◆ m_xVector

template<CIRCUIT_CALCULATOR_TEMPLATE >
Eigen::VectorXd SECircuitCalculator< CIRCUIT_CALCULATOR_TEMPLATE >::m_xVector
protected