SEElectricalCircuitPath.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/circuit/SECircuitPath.h"
6#include "cdm/circuit/electrical/SEElectricalCircuitNode.h"
7
8class CDM_DECL SEElectricalCircuitPath : public SECircuitPath<ELECTRICAL_CIRCUIT_PATH>
9{
10 friend class PBCircuit;//friend the serialization class
11 friend class SECircuitManager;
12protected:
14public:
16
17 void Clear() override; //clear memory
18
19 SEElectricalCircuitNode& GetSourceNode() const override { return m_ElectricalSourceNode; }
20 SEElectricalCircuitNode& GetTargetNode() const override { return m_ElectricalTargetNode; }
21
22 virtual bool HasCurrent() const;
23 virtual SEScalarElectricCurrent& GetCurrent();
24 virtual double GetCurrent(const ElectricCurrentUnit& unit) const;
25 virtual bool HasNextCurrent() const;
26 virtual SEScalarElectricCurrent& GetNextCurrent();
27 virtual double GetNextCurrent(const ElectricCurrentUnit& unit) const;
28
29 bool HasResistance() const override;
31 virtual double GetResistance(const ElectricResistanceUnit& unit) const;
32 bool HasNextResistance() const override;
34 virtual double GetNextResistance(const ElectricResistanceUnit& unit) const;
35 bool HasResistanceBaseline() const override;
37 virtual double GetResistanceBaseline(const ElectricResistanceUnit& unit) const;
38 virtual void RemoveResistance() override;
39
40 bool HasCapacitance() const override;
42 virtual double GetCapacitance(const ElectricCapacitanceUnit& unit) const;
43 bool HasNextCapacitance() const override;
45 virtual double GetNextCapacitance(const ElectricCapacitanceUnit& unit) const;
46 bool HasCapacitanceBaseline() const override;
48 virtual double GetCapacitanceBaseline(const ElectricCapacitanceUnit& unit) const;
49 virtual void RemoveCapacitance() override;
50
51 bool HasInductance() const override;
53 virtual double GetInductance(const ElectricInductanceUnit& unit) const;
54 bool HasNextInductance() const override;
56 virtual double GetNextInductance(const ElectricInductanceUnit& unit) const;
57 bool HasInductanceBaseline() const override;
59 virtual double GetInductanceBaseline(const ElectricInductanceUnit& unit) const;
60 virtual void RemoveInductance() override;
61
62 virtual bool HasCurrentSource() const;
63 virtual SEScalarElectricCurrent& GetCurrentSource();
64 virtual double GetCurrentSource(const ElectricCurrentUnit& unit) const;
65 virtual bool HasNextCurrentSource() const;
66 virtual SEScalarElectricCurrent& GetNextCurrentSource();
67 virtual double GetNextCurrentSource(const ElectricCurrentUnit& unit) const;
68 virtual bool HasCurrentSourceBaseline() const;
69 virtual SEScalarElectricCurrent& GetCurrentSourceBaseline();
70 virtual double GetCurrentSourceBaseline(const ElectricCurrentUnit& unit) const;
71 virtual void RemoveCurrentSource();
72
73 virtual bool HasVoltageSource() const;
74 virtual SEScalarElectricPotential& GetVoltageSource();
75 virtual double GetVoltageSource(const ElectricPotentialUnit& unit) const;
76 virtual bool HasNextVoltageSource() const;
77 virtual SEScalarElectricPotential& GetNextVoltageSource();
78 virtual double GetNextVoltageSource(const ElectricPotentialUnit& unit) const;
79 virtual bool HasVoltageSourceBaseline() const;
80 virtual SEScalarElectricPotential& GetVoltageSourceBaseline();
81 virtual double GetVoltageSourceBaseline(const ElectricPotentialUnit& unit) const;
82 virtual void RemoveVoltageSource();
83
84 virtual bool HasDiodeBreakdownVoltage() const;
85 virtual SEScalarElectricPotential& GetDiodeBreakdownVoltage();
86 virtual double GetDiodeBreakdownVoltage(const ElectricPotentialUnit& unit) const;
87
88 virtual eGate GetDiode() const;
89 virtual void SetDiode(eGate state);
90 virtual void FlipDiode();
91 virtual bool HasDiode() const;
92 virtual void InvalidateDiode();
93 virtual eGate GetNextDiode() const;
94 virtual void SetNextDiode(eGate state);
95 virtual void FlipNextDiode();
96 virtual bool HasNextDiode() const;
97 virtual void InvalidateNextDiode();
98 virtual void RemoveDiode();
99
100protected:
103};
Definition: SEScalarElectricCapacitance.h:8
Definition: SEScalarElectricCurrent.h:8
Definition: SEScalarElectricInductance.h:8
Definition: SEScalarElectricPotential.h:8
Definition: SEScalarElectricResistance.h:8
Definition: PBCircuit.h:26
Definition: SECircuitManager.h:38
Definition: SECircuitPath.h:37
virtual void RemoveCapacitance()
Definition: SECircuitPath.cpp:436
virtual bool HasInductance() const
Definition: SECircuitPath.cpp:450
virtual bool HasNextResistance() const
Definition: SECircuitPath.cpp:362
virtual bool HasResistance() const
Definition: SECircuitPath.cpp:350
virtual bool HasCapacitanceBaseline() const
Definition: SECircuitPath.cpp:424
virtual void Clear()
Definition: SECircuitPath.cpp:52
virtual ResistanceScalar & GetNextResistance()
Definition: SECircuitPath.cpp:367
virtual bool HasNextCapacitance() const
Definition: SECircuitPath.cpp:412
virtual bool HasNextInductance() const
Definition: SECircuitPath.cpp:462
virtual ResistanceScalar & GetResistanceBaseline()
Definition: SECircuitPath.cpp:379
virtual CapacitanceScalar & GetCapacitance()
Definition: SECircuitPath.cpp:405
virtual void RemoveInductance()
Definition: SECircuitPath.cpp:486
virtual InductanceScalar & GetInductanceBaseline()
Definition: SECircuitPath.cpp:479
virtual ResistanceScalar & GetResistance()
Definition: SECircuitPath.cpp:355
virtual CapacitanceScalar & GetCapacitanceBaseline()
Definition: SECircuitPath.cpp:429
virtual InductanceScalar & GetInductance()
Definition: SECircuitPath.cpp:455
virtual InductanceScalar & GetNextInductance()
Definition: SECircuitPath.cpp:467
virtual bool HasCapacitance() const
Definition: SECircuitPath.cpp:400
virtual bool HasResistanceBaseline() const
Definition: SECircuitPath.cpp:374
virtual bool HasInductanceBaseline() const
Definition: SECircuitPath.cpp:474
virtual CapacitanceScalar & GetNextCapacitance()
Definition: SECircuitPath.cpp:417
virtual void RemoveResistance()
Definition: SECircuitPath.cpp:386
Definition: SEElectricalCircuitNode.h:10
Definition: SEElectricalCircuitPath.h:9
SEElectricalCircuitNode & GetTargetNode() const override
Definition: SEElectricalCircuitPath.h:20
SEElectricalCircuitNode & m_ElectricalTargetNode
Definition: SEElectricalCircuitPath.h:102
SEElectricalCircuitNode & m_ElectricalSourceNode
Definition: SEElectricalCircuitPath.h:101
virtual eGate GetDiode() const
SEElectricalCircuitNode & GetSourceNode() const override
Definition: SEElectricalCircuitPath.h:19
Definition: SEScalarElectricCapacitance.h:24
Definition: SEScalarElectricCurrent.h:24
Definition: SEScalarElectricInductance.h:24
Definition: SEScalarElectricPotential.h:25
Definition: SEScalarElectricResistance.h:24

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.