SEThermalCircuitPath.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 
13 #pragma once
14 #include <biogears/cdm/circuit/SECircuitPath.h>
15 #include <biogears/cdm/circuit/thermal/SEThermalCircuitNode.h>
16 #include <biogears/cdm/properties/SEScalarEnergy.h>
17 #include <biogears/cdm/properties/SEScalarHeatCapacitance.h>
18 #include <biogears/cdm/properties/SEScalarHeatInductance.h>
19 #include <biogears/cdm/properties/SEScalarHeatResistance.h>
20 #include <biogears/cdm/properties/SEScalarPower.h>
21 #include <biogears/cdm/properties/SEScalarTemperature.h>
22 
23 namespace biogears {
24 class SECircuitManager;
25 class BIOGEARS_API SEThermalCircuitPath : public SECircuitPath<THERMAL_CIRCUIT_PATH> {
26  friend class SECircuitManager;
27 
28 protected:
30  SEThermalCircuitPath(SEThermalCircuitNode& src, SEThermalCircuitNode& tgt, const std::string& name);
31 
32 public:
33  virtual ~SEThermalCircuitPath() override;
34 
35  virtual void Clear() override; //clear memory
36 
37  bool Load(const CDM::ThermalCircuitPathData& in);
38  CDM::ThermalCircuitPathData* Unload() const override;
39 
40 protected:
41  void Unload(CDM::ThermalCircuitPathData& data) const;
42 
43 public:
44  virtual SEThermalCircuitNode& GetSourceNode() const override { return m_ThermalSourceNode; }
45  virtual SEThermalCircuitNode& GetTargetNode() const override { return m_ThermalTargetNode; }
46 
47  virtual bool HasResistance() const override;
48  virtual SEScalarHeatResistance& GetResistance() override;
49  virtual double GetResistance(const HeatResistanceUnit& unit) const ;
50  virtual bool HasNextResistance() const override;
51  virtual SEScalarHeatResistance& GetNextResistance() override;
52  virtual double GetNextResistance(const HeatResistanceUnit& unit) const ;
53  virtual bool HasResistanceBaseline() const override;
54  virtual SEScalarHeatResistance& GetResistanceBaseline() override;
55  virtual double GetResistanceBaseline(const HeatResistanceUnit& unit) const ;
56 
57  virtual bool HasCapacitance() const override;
58  virtual SEScalarHeatCapacitance& GetCapacitance() override;
59  virtual double GetCapacitance(const HeatCapacitanceUnit& unit) const;
60  virtual bool HasNextCapacitance() const override;
61  virtual SEScalarHeatCapacitance& GetNextCapacitance() override;
62  virtual double GetNextCapacitance(const HeatCapacitanceUnit& unit) const;
63  virtual bool HasCapacitanceBaseline() const override;
64  virtual SEScalarHeatCapacitance& GetCapacitanceBaseline() override;
65  virtual double GetCapacitanceBaseline(const HeatCapacitanceUnit& unit) const;
66 
67  virtual bool HasInductance() const override;
68  virtual SEScalarHeatInductance& GetInductance() override;
69  virtual double GetInductance(const HeatInductanceUnit& unit) const;
70  virtual bool HasNextInductance() const override;
71  virtual SEScalarHeatInductance& GetNextInductance() override;
72  virtual double GetNextInductance(const HeatInductanceUnit& unit) const;
73  virtual bool HasInductanceBaseline() const override;
74  virtual SEScalarHeatInductance& GetInductanceBaseline() override;
75  virtual double GetInductanceBaseline(const HeatInductanceUnit& unit) const;
76 
77  virtual bool HasHeatTransferRate() const;
78  virtual SEScalarPower& GetHeatTransferRate();
79  virtual double GetHeatTransferRate(const PowerUnit& unit) const;
80  virtual bool HasNextHeatTransferRate() const;
81  virtual SEScalarPower& GetNextHeatTransferRate();
82  virtual double GetNextHeatTransferRate(const PowerUnit& unit) const;
83  virtual bool HasHeatSource() const;
84  virtual SEScalarPower& GetHeatSource();
85  virtual double GetHeatSource(const PowerUnit& unit) const;
86  virtual bool HasNextHeatSource() const;
87  virtual SEScalarPower& GetNextHeatSource();
88  virtual double GetNextHeatSource(const PowerUnit& unit) const;
89  virtual bool HasHeatSourceBaseline() const;
90  virtual SEScalarPower& GetHeatSourceBaseline();
91  virtual double GetHeatSourceBaseline(const PowerUnit& unit) const;
92 
93  virtual bool HasTemperatureSource() const;
94  virtual SEScalarTemperature& GetTemperatureSource();
95  virtual double GetTemperatureSource(const TemperatureUnit& unit) const;
96  virtual bool HasNextTemperatureSource() const;
97  virtual SEScalarTemperature& GetNextTemperatureSource();
98  virtual double GetNextTemperatureSource(const TemperatureUnit& unit) const;
99  virtual bool HasTemperatureSourceBaseline() const;
100  virtual SEScalarTemperature& GetTemperatureSourceBaseline();
101  virtual double GetTemperatureSourceBaseline(const TemperatureUnit& unit) const;
102  virtual bool HasValveBreakdownTemperature() const;
103  virtual SEScalarTemperature& GetValveBreakdownTemperature();
104  virtual double GetValveBreakdownTemperature(const TemperatureUnit& unit) const;
105 
106 protected:
109 };
110 }
Definition: SEThermalCircuitPath.h:25
Definition: SEScalarTemperature.h:36
Definition: SECircuitPath.h:28
Definition: SEScalarHeatCapacitance.h:36
Definition: SEScalarHeatResistance.h:18
Definition: SEScalarTemperature.h:18
SEThermalCircuitNode & m_ThermalSourceNode
Definition: SEThermalCircuitPath.h:107
virtual SEThermalCircuitNode & GetSourceNode() const override
Definition: SEThermalCircuitPath.h:44
Definition: SEScalarHeatResistance.h:36
virtual SEThermalCircuitNode & GetTargetNode() const override
Definition: SEThermalCircuitPath.h:45
SEThermalCircuitNode & m_ThermalTargetNode
Definition: SEThermalCircuitPath.h:108
Definition: SEThermalCircuitNode.h:20
Definition: SEScalarPower.h:38
Definition: SEScalarPower.h:18
Class corresponding to the ThermalCircuitPathData schema type.
Definition: Circuit.hxx:7455
Definition: SEScalarHeatInductance.h:33
Definition: SEScalarHeatInductance.h:18
Definition: SEElectricalCircuit.h:18
Definition: SECircuitManager.h:53
Definition: SEScalarHeatCapacitance.h:18