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 
8 class CDM_DECL SEElectricalCircuitPath : public SECircuitPath<ELECTRICAL_CIRCUIT_PATH>
9 {
10  friend class PBCircuit;//friend the serialization class
11  friend class SECircuitManager;
12 protected:
13  SEElectricalCircuitPath(SEElectricalCircuitNode& src, SEElectricalCircuitNode& tgt, const std::string& name);
14 public:
15  virtual ~SEElectricalCircuitPath();
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 
100 protected:
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 & m_ElectricalTargetNode
Definition: SEElectricalCircuitPath.h:102
SEElectricalCircuitNode & m_ElectricalSourceNode
Definition: SEElectricalCircuitPath.h:101
SEElectricalCircuitNode & GetTargetNode() const override
Definition: SEElectricalCircuitPath.h:20
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.