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
8class CDM_DECL SEFluidCircuitPath : public SECircuitPath<FLUID_CIRCUIT_PATH>
9{
10 friend class PBCircuit;//friend the serialization class
11 friend class SECircuitManager;
12protected:
13 SEFluidCircuitPath(SEFluidCircuitNode& src, SEFluidCircuitNode& tgt, const std::string& name);
14public:
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
88protected:
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 & GetSourceNode() const override
Definition: SEFluidCircuitPath.h:19
SEFluidCircuitNode & m_FluidTargetNode
Definition: SEFluidCircuitPath.h:90
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.