SEFluidCircuitPath.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/fluid/SEFluidCircuitNode.h"
7 
8 class CDM_DECL SEFluidCircuitPath : public SECircuitPath<FLUID_CIRCUIT_PATH>
9 {
10  friend class PBCircuit;//friend the serialization class
11  friend class SECircuitManager;
12 protected:
13  SEFluidCircuitPath(SEFluidCircuitNode& src, SEFluidCircuitNode& tgt, const std::string& name);
14 public:
15  virtual ~SEFluidCircuitPath();
16 
17  void Clear() override; //clear memory
18 
19  SEFluidCircuitNode& GetSourceNode() const override { return m_FluidSourceNode; }
20  SEFluidCircuitNode& GetTargetNode() const override { return m_FluidTargetNode; }
21 
22  virtual bool HasFlow() const;
23  virtual SEScalarVolumePerTime& GetFlow();
24  virtual double GetFlow(const VolumePerTimeUnit& unit) const;
25  virtual bool HasNextFlow() const;
26  virtual SEScalarVolumePerTime& GetNextFlow();
27  virtual double GetNextFlow(const VolumePerTimeUnit& unit) const;
28 
29  bool HasResistance() const override;
31  virtual double GetResistance(const PressureTimePerVolumeUnit& unit) const;
32  bool HasNextResistance() const override;
34  virtual double GetNextResistance(const PressureTimePerVolumeUnit& unit) const;
35  bool HasResistanceBaseline() const override;
37  virtual double GetResistanceBaseline(const PressureTimePerVolumeUnit& unit) const;
38  virtual void RemoveResistance() override;
39 
40  virtual bool HasCompliance() const;
41  virtual SEScalarVolumePerPressure& GetCompliance();
42  virtual double GetCompliance(const VolumePerPressureUnit& unit) const;
43  virtual bool HasNextCompliance() const;
44  virtual SEScalarVolumePerPressure& GetNextCompliance();
45  virtual double GetNextCompliance(const VolumePerPressureUnit& unit) const;
46  virtual bool HasComplianceBaseline() const;
47  virtual SEScalarVolumePerPressure& GetComplianceBaseline();
48  virtual double GetComplianceBaseline(const VolumePerPressureUnit& unit) const;
49  virtual void RemoveCompliance();
50 
51  virtual bool HasInertance() const;
52  virtual SEScalarPressureTimeSquaredPerVolume& GetInertance();
53  virtual double GetInertance(const PressureTimeSquaredPerVolumeUnit& unit) const;
54  virtual bool HasNextInertance() const;
55  virtual SEScalarPressureTimeSquaredPerVolume& GetNextInertance();
56  virtual double GetNextInertance(const PressureTimeSquaredPerVolumeUnit& unit) const;
57  virtual bool HasInertanceBaseline() const;
58  virtual SEScalarPressureTimeSquaredPerVolume& GetInertanceBaseline();
59  virtual double GetInertanceBaseline(const PressureTimeSquaredPerVolumeUnit& unit) const;
60  virtual void RemoveInertance();
61 
62  virtual bool HasFlowSource() const;
63  virtual SEScalarVolumePerTime& GetFlowSource();
64  virtual double GetFlowSource(const VolumePerTimeUnit& unit) const;
65  virtual bool HasNextFlowSource() const;
66  virtual SEScalarVolumePerTime& GetNextFlowSource();
67  virtual double GetNextFlowSource(const VolumePerTimeUnit& unit) const;
68  virtual bool HasFlowSourceBaseline() const;
69  virtual SEScalarVolumePerTime& GetFlowSourceBaseline();
70  virtual double GetFlowSourceBaseline(const VolumePerTimeUnit& unit) const;
71  virtual void RemoveFlowSource();
72 
73  virtual bool HasPressureSource() const;
74  virtual SEScalarPressure& GetPressureSource();
75  virtual double GetPressureSource(const PressureUnit& unit) const;
76  virtual bool HasNextPressureSource() const;
77  virtual SEScalarPressure& GetNextPressureSource();
78  virtual double GetNextPressureSource(const PressureUnit& unit) const;
79  virtual bool HasPressureSourceBaseline() const;
80  virtual SEScalarPressure& GetPressureSourceBaseline();
81  virtual double GetPressureSourceBaseline(const PressureUnit& unit) const;
82  virtual void RemovePressureSource();
83 
84  virtual bool HasValveBreakdownPressure() const;
85  virtual SEScalarPressure& GetValveBreakdownPressure();
86  virtual double GetValveBreakdownPressure(const PressureUnit& unit) const;
87 
88 protected:
91 };
Definition: PBCircuit.h:26
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressureTimeSquaredPerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SECircuitManager.h:38
Definition: SECircuitPath.h:37
virtual bool HasNextResistance() const
Definition: SECircuitPath.cpp:362
virtual bool HasResistance() const
Definition: SECircuitPath.cpp:350
virtual void Clear()
Definition: SECircuitPath.cpp:52
virtual ResistanceScalar & GetNextResistance()
Definition: SECircuitPath.cpp:367
virtual ResistanceScalar & GetResistanceBaseline()
Definition: SECircuitPath.cpp:379
virtual ResistanceScalar & GetResistance()
Definition: SECircuitPath.cpp:355
virtual bool HasResistanceBaseline() const
Definition: SECircuitPath.cpp:374
virtual void RemoveResistance()
Definition: SECircuitPath.cpp:386
Definition: SEFluidCircuitNode.h:10
Definition: SEFluidCircuitPath.h:9
SEFluidCircuitNode & GetTargetNode() const override
Definition: SEFluidCircuitPath.h:20
SEFluidCircuitNode & m_FluidSourceNode
Definition: SEFluidCircuitPath.h:89
SEFluidCircuitNode & m_FluidTargetNode
Definition: SEFluidCircuitPath.h:90
SEFluidCircuitNode & GetSourceNode() const override
Definition: SEFluidCircuitPath.h:19
Definition: SEScalarPressure.h:29
Definition: SEScalarPressureTimePerVolume.h:29
Definition: SEScalarPressureTimeSquaredPerVolume.h:28
Definition: SEScalarVolumePerPressure.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SEScalarVolumePerPressure.h:8
Definition: SEScalarVolumePerTime.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.