SECircuitPath.hxx
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4template<CIRCUIT_PATH_TEMPLATE>
5SECircuitPath<CIRCUIT_PATH_TYPES>::SECircuitPath(SECircuitNode<CIRCUIT_NODE_TYPES>& src, SECircuitNode<CIRCUIT_NODE_TYPES>& tgt, const std::string& name) : Loggable(src.GetLogger()), m_Name(name), m_SourceNode(src), m_TargetNode(tgt)
6{
7 m_Resistance = nullptr;
8 m_NextResistance = nullptr;
9 m_ResistanceBaseline = nullptr;
10 m_Capacitance = nullptr;
11 m_NextCapacitance = nullptr;
12 m_CapacitanceBaseline = nullptr;
13 m_Inductance = nullptr;
14 m_NextInductance = nullptr;
15 m_InductanceBaseline = nullptr;
16 m_Flux = nullptr;
17 m_NextFlux = nullptr;
18 m_FluxSource = nullptr;
19 m_NextFluxSource = nullptr;
20 m_FluxSourceBaseline = nullptr;
21 m_PotentialSource = nullptr;
22 m_NextPotentialSource = nullptr;
23 m_PotentialSourceBaseline = nullptr;
24 m_ValveBreakdownPotential = nullptr;
25 m_Switch = eGate::NullGate;
26 m_Valve = eGate::NullGate;
27 m_NextSwitch = eGate::NullGate;
28 m_NextValve = eGate::NullGate;
29 m_NextPolarizedState = eGate::NullGate;
30 m_PolarizedState = eGate::NullGate;
31
32 m_NumElements = 0;
33 m_NumNextElements = 0;
34
35 if (&m_SourceNode == &m_TargetNode)
36 {
37 std::stringstream ss;
38 ss << "Path " << GetName() << " has the same Source and Target Nodes. They cannot be the same Node.";
39 Fatal(ss);
40 }
41}
42
43template<CIRCUIT_PATH_TEMPLATE>
45{
46 Clear();
47}
48
49template<CIRCUIT_PATH_TEMPLATE>
51{
52 m_Switch = eGate::NullGate;
53 m_Valve = eGate::NullGate;
54 m_NextSwitch = eGate::NullGate;
55 m_NextValve = eGate::NullGate;
56 m_NextPolarizedState = eGate::NullGate;
57 m_PolarizedState = eGate::NullGate;
58 SAFE_DELETE(m_Resistance);
59 SAFE_DELETE(m_NextResistance);
60 SAFE_DELETE(m_ResistanceBaseline);
61 SAFE_DELETE(m_Capacitance);
62 SAFE_DELETE(m_NextCapacitance);
63 SAFE_DELETE(m_CapacitanceBaseline);
64 SAFE_DELETE(m_Inductance);
65 SAFE_DELETE(m_NextInductance);
66 SAFE_DELETE(m_InductanceBaseline);
67 SAFE_DELETE(m_Flux);
68 SAFE_DELETE(m_NextFlux);
69 SAFE_DELETE(m_FluxSource);
70 SAFE_DELETE(m_NextFluxSource);
71 SAFE_DELETE(m_FluxSourceBaseline);
72 SAFE_DELETE(m_PotentialSource);
73 SAFE_DELETE(m_NextPotentialSource);
74 SAFE_DELETE(m_PotentialSourceBaseline);
75 SAFE_DELETE(m_ValveBreakdownPotential);
76}
77
78template<CIRCUIT_PATH_TEMPLATE>
80{
81 return m_Name;
82}
83
84template<CIRCUIT_PATH_TEMPLATE>
86{
87 return m_IsPartOfBlackBox;
88}
89template<CIRCUIT_PATH_TEMPLATE>
91{
92 m_IsPartOfBlackBox = b;
93}
94
95template<CIRCUIT_PATH_TEMPLATE>
97{
98 return m_SourceNode;
99}
100template<CIRCUIT_PATH_TEMPLATE>
102{
103 return m_TargetNode;
104}
105
107// Valves and Switches //
109template<CIRCUIT_PATH_TEMPLATE>
111{
112 unsigned short numRCI = (HasResistance() ? 1 : 0) +
113 (HasCapacitance() ? 1 : 0) +
114 (HasInductance() ? 1 : 0);
115 unsigned short numNextRCI = (HasNextResistance() ? 1 : 0) +
116 (HasNextCapacitance() ? 1 : 0) +
117 (HasNextInductance() ? 1 : 0);
118 unsigned short numSrcState = (HasSwitch() ? 1 : 0) +
119 (HasValve() ? 1 : 0) +
120 (HasFluxSource() ? 1 : 0) +
121 (HasPotentialSource() ? 1 : 0);
122 unsigned short numNextSrcState = (HasNextSwitch() ? 1 : 0) +
123 (HasNextValve() ? 1 : 0) +
124 (HasNextFluxSource() ? 1 : 0) +
125 (HasNextPotentialSource() ? 1 : 0);
126 m_NumElements = numRCI + numSrcState;
127 m_NumNextElements = numNextRCI + numNextSrcState;
128 if (m_NumElements > 1 || m_NumNextElements > 1)
129 {
130 Error("There is only one element allowed per path.");
131 return false;
132 }
133 if (HasPolarizedState())
134 {
135 if (numRCI == 0)
136 {
137 Error("You must have a Resistance, Capacitance or Inductance on the path if you have a polarized state.");
138 return false;
139 }
140 if (numSrcState > 0)
141 {
142 Error("You cannot have a Switch, Valve, FluxSource or PotentialSource on a path with a polarized state.");
143 return false;
144 }
145 }
146 if (HasNextPolarizedState())
147 {
148 if (numNextRCI == 0)
149 {
150 Error("You must have a Resistance, Capacitance or Inductance on the path if you have a polarized state.");
151 return false;
152 }
153 if (numNextSrcState > 0)
154 {
155 Error("You cannot have a Switch, Valve, FluxSource or PotentialSource on a path with a polarized state.");
156 return false;
157 }
158 }
159 if (HasValveBreakdownPotential())
160 {
161 if (!HasValve())
162 {
163 Error("You cannot have a ValveBreakdownPotential if you do not have a valve.");
164 return false;
165 }
166 if (m_ValveBreakdownPotential->IsNegative())
167 {
168 Error("A negative Breakdown Potential is not allowed. Consider adding a Valve with reversed polarity.");
169 return false;
170 }
171 }
172 return true;
173}
174
175template<CIRCUIT_PATH_TEMPLATE>
177{
178 return m_Switch;
179}
180template<CIRCUIT_PATH_TEMPLATE>
182{
183 m_Switch = state;
184}
185template<CIRCUIT_PATH_TEMPLATE>
187{
188 m_Switch = (m_Switch == eGate::Open) ? eGate::Closed : eGate::Open;
189}
190template<CIRCUIT_PATH_TEMPLATE>
192{
193 return m_Switch == eGate::NullGate ? false : true;
194}
195template<CIRCUIT_PATH_TEMPLATE>
197{
198 m_Switch = eGate::NullGate;
199}
200
201template<CIRCUIT_PATH_TEMPLATE>
203{
204 return m_NextSwitch;
205}
206template<CIRCUIT_PATH_TEMPLATE>
208{
209 m_NextSwitch = state;
210}
211template<CIRCUIT_PATH_TEMPLATE>
213{
214 m_NextSwitch = (m_NextSwitch == eGate::Open) ? eGate::Closed : eGate::Open;
215}
216template<CIRCUIT_PATH_TEMPLATE>
218{
219 return m_NextSwitch == eGate::NullGate ? false : true;
220}
221template<CIRCUIT_PATH_TEMPLATE>
223{
224 m_NextSwitch = eGate::NullGate;
225}
226template<CIRCUIT_PATH_TEMPLATE>
228{
229 m_Switch = eGate::NullGate;
230 m_NextSwitch = eGate::NullGate;
231}
232
233template<CIRCUIT_PATH_TEMPLATE>
235{
236 return m_Valve;
237}
238template<CIRCUIT_PATH_TEMPLATE>
240{
241 m_Valve = state;
242}
243template<CIRCUIT_PATH_TEMPLATE>
245{
246 m_Valve = (m_Valve == eGate::Open) ? eGate::Closed : eGate::Open;
247}
248template<CIRCUIT_PATH_TEMPLATE>
250{
251 return m_Valve == eGate::NullGate ? false : true;
252}
253template<CIRCUIT_PATH_TEMPLATE>
255{
256 m_Valve = eGate::NullGate;
257}
258
259template<CIRCUIT_PATH_TEMPLATE>
261{
262 return m_NextValve;
263}
264template<CIRCUIT_PATH_TEMPLATE>
266{
267 m_NextValve = state;
268}
269template<CIRCUIT_PATH_TEMPLATE>
271{
272 m_NextValve = (m_NextValve == eGate::Open) ? eGate::Closed : eGate::Open;
273}
274template<CIRCUIT_PATH_TEMPLATE>
276{
277 return m_NextValve == eGate::NullGate ? false : true;
278}
279template<CIRCUIT_PATH_TEMPLATE>
281{
282 m_NextValve = eGate::NullGate;
283}
284template<CIRCUIT_PATH_TEMPLATE>
286{
287 m_Valve = eGate::NullGate;
288 m_NextValve = eGate::NullGate;
289}
290
291template<CIRCUIT_PATH_TEMPLATE>
293{
294 return m_NextPolarizedState;
295}
296template<CIRCUIT_PATH_TEMPLATE>
298{
299 m_NextPolarizedState = state;
300}
301template<CIRCUIT_PATH_TEMPLATE>
303{
304 m_NextPolarizedState = (m_NextPolarizedState == eGate::Open) ? eGate::Closed : eGate::Open;
305}
306template<CIRCUIT_PATH_TEMPLATE>
308{
309 return m_NextPolarizedState == eGate::NullGate ? false : true;
310}
311template<CIRCUIT_PATH_TEMPLATE>
313{
314 m_NextPolarizedState = eGate::NullGate;
315}
316
317template<CIRCUIT_PATH_TEMPLATE>
319{
320 return m_PolarizedState;
321}
322template<CIRCUIT_PATH_TEMPLATE>
324{
325 m_PolarizedState = state;
326}
327template<CIRCUIT_PATH_TEMPLATE>
329{
330 m_PolarizedState = (m_PolarizedState == eGate::Open) ? eGate::Closed : eGate::Open;
331}
332template<CIRCUIT_PATH_TEMPLATE>
334{
335 return m_PolarizedState == eGate::NullGate ? false : true;
336}
337template<CIRCUIT_PATH_TEMPLATE>
339{
340 m_PolarizedState = eGate::NullGate;
341}
342
343
345// Resistance //
347template<CIRCUIT_PATH_TEMPLATE>
349{
350 return m_Resistance == nullptr ? false : m_Resistance->IsValid();
351}
352template<CIRCUIT_PATH_TEMPLATE>
354{
355 if (m_Resistance == nullptr)
356 m_Resistance = new ResistanceScalar();
357 return *m_Resistance;
358}
359template<CIRCUIT_PATH_TEMPLATE>
361{
362 return m_NextResistance == nullptr ? false : m_NextResistance->IsValid();
363}
364template<CIRCUIT_PATH_TEMPLATE>
366{
367 if (m_NextResistance == nullptr)
368 m_NextResistance = new ResistanceScalar();
369 return *m_NextResistance;
370}
371template<CIRCUIT_PATH_TEMPLATE>
373{
374 return m_ResistanceBaseline == nullptr ? false : m_ResistanceBaseline->IsValid();
375}
376template<CIRCUIT_PATH_TEMPLATE>
378{
379 if (m_ResistanceBaseline == nullptr)
380 m_ResistanceBaseline = new ResistanceScalar();
381 return *m_ResistanceBaseline;
382}
383template<CIRCUIT_PATH_TEMPLATE>
385{
386 if (m_Resistance != nullptr)
387 m_Resistance->ForceInvalidate();
388 if (m_NextResistance != nullptr)
389 m_NextResistance->ForceInvalidate();
390 if (m_ResistanceBaseline != nullptr)
391 m_ResistanceBaseline->ForceInvalidate();
392}
393
395// Capacitance Types //
397template<CIRCUIT_PATH_TEMPLATE>
399{
400 return m_Capacitance == nullptr ? false : m_Capacitance->IsValid();
401}
402template<CIRCUIT_PATH_TEMPLATE>
404{
405 if (m_Capacitance == nullptr)
406 m_Capacitance = new CapacitanceScalar();
407 return *m_Capacitance;
408}
409template<CIRCUIT_PATH_TEMPLATE>
411{
412 return m_NextCapacitance == nullptr ? false : m_NextCapacitance->IsValid();
413}
414template<CIRCUIT_PATH_TEMPLATE>
416{
417 if (m_NextCapacitance == nullptr)
418 m_NextCapacitance = new CapacitanceScalar();
419 return *m_NextCapacitance;
420}
421template<CIRCUIT_PATH_TEMPLATE>
423{
424 return m_CapacitanceBaseline == nullptr ? false : m_CapacitanceBaseline->IsValid();
425}
426template<CIRCUIT_PATH_TEMPLATE>
428{
429 if (m_CapacitanceBaseline == nullptr)
430 m_CapacitanceBaseline = new CapacitanceScalar();
431 return *m_CapacitanceBaseline;
432}
433template<CIRCUIT_PATH_TEMPLATE>
435{
436 if (m_Capacitance != nullptr)
437 m_Capacitance->ForceInvalidate();
438 if (m_NextCapacitance != nullptr)
439 m_NextCapacitance->ForceInvalidate();
440 if (m_CapacitanceBaseline != nullptr)
441 m_CapacitanceBaseline->ForceInvalidate();
442}
443
445// Inductance Types //
447template<CIRCUIT_PATH_TEMPLATE>
449{
450 return m_Inductance == nullptr ? false : m_Inductance->IsValid();
451}
452template<CIRCUIT_PATH_TEMPLATE>
454{
455 if (m_Inductance == nullptr)
456 m_Inductance = new InductanceScalar();
457 return *m_Inductance;
458}
459template<CIRCUIT_PATH_TEMPLATE>
461{
462 return m_NextInductance == nullptr ? false : m_NextInductance->IsValid();
463}
464template<CIRCUIT_PATH_TEMPLATE>
466{
467 if (m_NextInductance == nullptr)
468 m_NextInductance = new InductanceScalar();
469 return *m_NextInductance;
470}
471template<CIRCUIT_PATH_TEMPLATE>
473{
474 return m_InductanceBaseline == nullptr ? false : m_InductanceBaseline->IsValid();
475}
476template<CIRCUIT_PATH_TEMPLATE>
478{
479 if (m_InductanceBaseline == nullptr)
480 m_InductanceBaseline = new InductanceScalar();
481 return *m_InductanceBaseline;
482}
483template<CIRCUIT_PATH_TEMPLATE>
485{
486 if (m_Inductance != nullptr)
487 m_Inductance->ForceInvalidate();
488 if (m_NextInductance != nullptr)
489 m_NextInductance->ForceInvalidate();
490 if (m_InductanceBaseline != nullptr)
491 m_InductanceBaseline->ForceInvalidate();
492}
493
495// Flux Types //
497template<CIRCUIT_PATH_TEMPLATE>
499{
500 return m_Flux == nullptr ? false : m_Flux->IsValid();
501}
502template<CIRCUIT_PATH_TEMPLATE>
504{
505 if (m_Flux == nullptr)
506 m_Flux = new FluxScalar();
507 return *m_Flux;
508}
509template<CIRCUIT_PATH_TEMPLATE>
511{
512 return m_NextFlux == nullptr ? false : m_NextFlux->IsValid();
513}
514template<CIRCUIT_PATH_TEMPLATE>
516{
517 if (m_NextFlux == nullptr)
518 m_NextFlux = new FluxScalar();
519 return *m_NextFlux;
520}
521template<CIRCUIT_PATH_TEMPLATE>
523{
524 return m_FluxSource == nullptr ? false : m_FluxSource->IsValid();
525}
526template<CIRCUIT_PATH_TEMPLATE>
528{
529 if (m_FluxSource == nullptr)
530 m_FluxSource = new FluxScalar();
531 return *m_FluxSource;
532}
533template<CIRCUIT_PATH_TEMPLATE>
535{
536 return m_NextFluxSource == nullptr ? false : m_NextFluxSource->IsValid();
537}
538template<CIRCUIT_PATH_TEMPLATE>
540{
541 if (m_NextFluxSource == nullptr)
542 m_NextFluxSource = new FluxScalar();
543 return *m_NextFluxSource;
544}
545template<CIRCUIT_PATH_TEMPLATE>
547{
548 return m_FluxSourceBaseline == nullptr ? false : m_FluxSourceBaseline->IsValid();
549}
550template<CIRCUIT_PATH_TEMPLATE>
552{
553 if (m_FluxSourceBaseline == nullptr)
554 m_FluxSourceBaseline = new FluxScalar();
555 return *m_FluxSourceBaseline;
556}
557template<CIRCUIT_PATH_TEMPLATE>
559{
560 if (m_FluxSource != nullptr)
561 m_FluxSource->ForceInvalidate();
562 if (m_NextFluxSource != nullptr)
563 m_NextFluxSource->ForceInvalidate();
564 if (m_FluxSourceBaseline != nullptr)
565 m_FluxSourceBaseline->ForceInvalidate();
566}
567
568template<CIRCUIT_PATH_TEMPLATE>
570{
571 m_FluxType = eBlackBox_Property_Type::Calculate;
572}
573template<CIRCUIT_PATH_TEMPLATE>
575{
576 return m_FluxType == eBlackBox_Property_Type::Imposed;
577}
578template<CIRCUIT_PATH_TEMPLATE>
579void SECircuitPath<CIRCUIT_PATH_TYPES>::ImposeFlux(double v, const FluxUnit& unit)
580{
581 m_FluxType = eBlackBox_Property_Type::Imposed;
582 if (m_NextFlux == nullptr)
583 m_NextFlux = new FluxScalar();
584 m_NextFlux->SetValue(v, unit);
585}
586template<CIRCUIT_PATH_TEMPLATE>
587void SECircuitPath<CIRCUIT_PATH_TYPES>::ImposeFlux(const FluxScalar& s)
588{
589 m_FluxType = eBlackBox_Property_Type::Imposed;
590 if (m_NextFlux == nullptr)
591 m_NextFlux = new FluxScalar();
592 m_NextFlux->Set(s);
593}
594
596// Potential Types //
598template<CIRCUIT_PATH_TEMPLATE>
600{
601 return m_PotentialSource == nullptr ? false : m_PotentialSource->IsValid();
602}
603template<CIRCUIT_PATH_TEMPLATE>
605{
606 if (m_PotentialSource == nullptr)
607 m_PotentialSource = new PotentialScalar();
608 return *m_PotentialSource;
609}
610template<CIRCUIT_PATH_TEMPLATE>
612{
613 return m_NextPotentialSource == nullptr ? false : m_NextPotentialSource->IsValid();
614}
615template<CIRCUIT_PATH_TEMPLATE>
617{
618 if (m_NextPotentialSource == nullptr)
619 m_NextPotentialSource = new PotentialScalar();
620 return *m_NextPotentialSource;
621}
622template<CIRCUIT_PATH_TEMPLATE>
624{
625 return m_PotentialSourceBaseline == nullptr ? false : m_PotentialSourceBaseline->IsValid();
626}
627template<CIRCUIT_PATH_TEMPLATE>
629{
630 if (m_PotentialSourceBaseline == nullptr)
631 m_PotentialSourceBaseline = new PotentialScalar();
632 return *m_PotentialSourceBaseline;
633}
634template<CIRCUIT_PATH_TEMPLATE>
636{
637 if (m_PotentialSource != nullptr)
638 m_PotentialSource->ForceInvalidate();
639 if (m_NextPotentialSource != nullptr)
640 m_NextPotentialSource->ForceInvalidate();
641 if (m_PotentialSourceBaseline != nullptr)
642 m_PotentialSourceBaseline->ForceInvalidate();
643}
644
645
646template<CIRCUIT_PATH_TEMPLATE>
648{
649 return m_ValveBreakdownPotential == nullptr ? false : m_ValveBreakdownPotential->IsValid();
650}
651template<CIRCUIT_PATH_TEMPLATE>
653{
654 if (m_ValveBreakdownPotential == nullptr)
655 m_ValveBreakdownPotential = new PotentialScalar();
656 return *m_ValveBreakdownPotential;
657}
658
659#include "cdm/circuit/fluid/SEFluidCircuitPath.h"
661#include "cdm/circuit/electrical/SEElectricalCircuitPath.h"
663#include "cdm/circuit/thermal/SEThermalCircuitPath.h"
Definition: Logger.h:23
virtual bool HasNextPotentialSource() const
Definition: SECircuitPath.cpp:613
virtual void SetNextValve(eGate state)
Definition: SECircuitPath.cpp:267
virtual bool HasNextValve() const
Definition: SECircuitPath.cpp:277
virtual void RemoveImposedFlux()
Definition: SECircuitPath.cpp:571
virtual void RemoveCapacitance()
Definition: SECircuitPath.cpp:436
virtual bool HasPolarizedState() const
Definition: SECircuitPath.cpp:335
virtual bool HasInductance() const
Definition: SECircuitPath.cpp:450
virtual bool HasNextSwitch() const
Definition: SECircuitPath.cpp:219
virtual bool IsPartOfBlackBox() const
Definition: SECircuitPath.cpp:87
virtual void SetPolarizedState(eGate state)
Definition: SECircuitPath.cpp:325
virtual bool HasNextResistance() const
Definition: SECircuitPath.cpp:362
virtual void InvalidateNextPolarizedState()
Definition: SECircuitPath.cpp:314
virtual bool HasSwitch() const
Definition: SECircuitPath.cpp:193
virtual bool HasResistance() const
Definition: SECircuitPath.cpp:350
virtual bool HasCapacitanceBaseline() const
Definition: SECircuitPath.cpp:424
virtual eGate GetSwitch() const
Definition: SECircuitPath.cpp:178
virtual FluxScalar & GetNextFlux()
Definition: SECircuitPath.cpp:517
virtual void InvalidateSwitch()
Definition: SECircuitPath.cpp:198
virtual void SetPartOfBlackBox(bool b)
Definition: SECircuitPath.cpp:92
virtual void RemoveValve()
Definition: SECircuitPath.cpp:287
SECircuitPath(SECircuitNode< CIRCUIT_NODE_TYPES > &src, SECircuitNode< CIRCUIT_NODE_TYPES > &tgt, const std::string &name)
Definition: SECircuitPath.cpp:7
virtual void FlipSwitch()
Definition: SECircuitPath.cpp:188
virtual void Clear()
Definition: SECircuitPath.cpp:52
virtual ResistanceScalar & GetNextResistance()
Definition: SECircuitPath.cpp:367
virtual std::string GetName() const
Definition: SECircuitPath.cpp:81
virtual bool HasNextCapacitance() const
Definition: SECircuitPath.cpp:412
virtual void FlipNextValve()
Definition: SECircuitPath.cpp:272
virtual void SetValve(eGate state)
Definition: SECircuitPath.cpp:241
virtual ~SECircuitPath()
Definition: SECircuitPath.cpp:46
virtual FluxScalar & GetFlux()
Definition: SECircuitPath.cpp:505
virtual void SetSwitch(eGate state)
Definition: SECircuitPath.cpp:183
virtual bool HasNextInductance() const
Definition: SECircuitPath.cpp:462
virtual bool HasFluxSourceBaseline() const
Definition: SECircuitPath.cpp:548
virtual FluxScalar & GetNextFluxSource()
Definition: SECircuitPath.cpp:541
virtual bool HasNextFlux() const
Definition: SECircuitPath.cpp:512
virtual eGate GetNextSwitch() const
Definition: SECircuitPath.cpp:204
virtual void RemovePotentialSource()
Definition: SECircuitPath.cpp:637
virtual bool IsFluxImposed() const
Definition: SECircuitPath.cpp:576
virtual ResistanceScalar & GetResistanceBaseline()
Definition: SECircuitPath.cpp:379
virtual void FlipNextPolarizedState()
Definition: SECircuitPath.cpp:304
virtual CapacitanceScalar & GetCapacitance()
Definition: SECircuitPath.cpp:405
virtual bool HasValveBreakdownPotential() const
Definition: SECircuitPath.cpp:649
virtual void RemoveInductance()
Definition: SECircuitPath.cpp:486
virtual bool HasFluxSource() const
Definition: SECircuitPath.cpp:524
virtual eGate GetNextValve() const
Definition: SECircuitPath.cpp:262
virtual InductanceScalar & GetInductanceBaseline()
Definition: SECircuitPath.cpp:479
virtual SECircuitNode< CIRCUIT_NODE_TYPES > & GetTargetNode() const
Definition: SECircuitPath.cpp:103
virtual bool HasValve() const
Definition: SECircuitPath.cpp:251
virtual ResistanceScalar & GetResistance()
Definition: SECircuitPath.cpp:355
virtual eGate GetNextPolarizedState() const
Definition: SECircuitPath.cpp:294
virtual void InvalidatePolarizedState()
Definition: SECircuitPath.cpp:340
virtual bool HasFlux() const
Definition: SECircuitPath.cpp:500
virtual bool HasPotentialSource() const
Definition: SECircuitPath.cpp:601
virtual PotentialScalar & GetValveBreakdownPotential()
Definition: SECircuitPath.cpp:654
virtual bool HasPotentialSourceBaseline() const
Definition: SECircuitPath.cpp:625
virtual CapacitanceScalar & GetCapacitanceBaseline()
Definition: SECircuitPath.cpp:429
virtual void RemoveSwitch()
Definition: SECircuitPath.cpp:229
virtual InductanceScalar & GetInductance()
Definition: SECircuitPath.cpp:455
virtual FluxScalar & GetFluxSource()
Definition: SECircuitPath.cpp:529
virtual PotentialScalar & GetPotentialSource()
Definition: SECircuitPath.cpp:606
virtual bool HasNextPolarizedState() const
Definition: SECircuitPath.cpp:309
virtual InductanceScalar & GetNextInductance()
Definition: SECircuitPath.cpp:467
virtual void ImposeFlux(const FluxScalar &s)
Definition: SECircuitPath.cpp:589
virtual void InvalidateNextValve()
Definition: SECircuitPath.cpp:282
virtual void InvalidateValve()
Definition: SECircuitPath.cpp:256
virtual void FlipValve()
Definition: SECircuitPath.cpp:246
virtual void SetNextSwitch(eGate state)
Definition: SECircuitPath.cpp:209
virtual bool HasCapacitance() const
Definition: SECircuitPath.cpp:400
virtual bool HasResistanceBaseline() const
Definition: SECircuitPath.cpp:374
virtual void FlipNextSwitch()
Definition: SECircuitPath.cpp:214
virtual void FlipPolarizedState()
Definition: SECircuitPath.cpp:330
virtual FluxScalar & GetFluxSourceBaseline()
Definition: SECircuitPath.cpp:553
virtual eGate GetValve() const
Definition: SECircuitPath.cpp:236
virtual bool HasInductanceBaseline() const
Definition: SECircuitPath.cpp:474
virtual bool HasNextFluxSource() const
Definition: SECircuitPath.cpp:536
virtual void RemoveFluxSource()
Definition: SECircuitPath.cpp:560
virtual PotentialScalar & GetPotentialSourceBaseline()
Definition: SECircuitPath.cpp:630
virtual void SetNextPolarizedState(eGate state)
Definition: SECircuitPath.cpp:299
virtual PotentialScalar & GetNextPotentialSource()
Definition: SECircuitPath.cpp:618
virtual SECircuitNode< CIRCUIT_NODE_TYPES > & GetSourceNode() const
Definition: SECircuitPath.cpp:98
virtual CapacitanceScalar & GetNextCapacitance()
Definition: SECircuitPath.cpp:417
virtual eGate GetPolarizedState() const
Definition: SECircuitPath.cpp:320
virtual bool HasValidElements() const
Definition: SECircuitPath.cpp:112
virtual void InvalidateNextSwitch()
Definition: SECircuitPath.cpp:224
virtual void RemoveResistance()
Definition: SECircuitPath.cpp:386

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.