SEThermalCompartmentLink.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/compartment/SECompartmentLink.h"
9
11{
12 friend class PBCompartment;//friend the serialization class
14protected:
15 SEThermalCompartmentLink(SEThermalCompartment& src, SEThermalCompartment & tgt, const std::string& name);
16public:
18
19 void Clear() override;
20
21 const SEScalar* GetScalar(const std::string& name) override;
22
23 virtual bool HasHeatTransferRate() const;
24 virtual SEScalarPower& GetHeatTransferRate();
25 virtual double GetHeatTransferRate(const PowerUnit& unit) const;
26
27 virtual SEThermalCompartment& GetSourceCompartment() { return m_SourceCmpt; }
28 virtual SEThermalCompartment& GetTargetCompartment() { return m_TargetCmpt; }
29
30 virtual bool HasPath() { return m_Path != nullptr; }
31 virtual SEThermalCircuitPath* GetPath() { return m_Path; }
32 virtual void RemovePath() { m_Path = nullptr; }
33 virtual void MapPath(SEThermalCircuitPath& path) { Clear(); m_Path = &path; }
34
35protected:
40};
41
42#include "cdm/compartment/SECompartmentGraph.h"
43class SEThermalCompartmentGraph : public SECompartmentGraph<SEThermalCompartment, SEThermalCompartmentLink>
44{
45public:
46 SEThermalCompartmentGraph(const std::string& name, Logger* logger) : SECompartmentGraph(name, logger) {};
48};
Definition: Logger.h:71
Definition: PBCompartment.h:28
Definition: SEScalarPower.h:8
Definition: SECompartmentGraph.h:11
Definition: SECompartmentManager.h:25
Definition: SEScalar.h:19
Definition: SEScalarPower.h:29
Definition: SEThermalBlackBox.h:11
Definition: SEThermalCircuitPath.h:9
Definition: SEThermalCompartmentLink.h:44
SEThermalCompartmentGraph(const std::string &name, Logger *logger)
Definition: SEThermalCompartmentLink.h:46
virtual ~SEThermalCompartmentGraph()
Definition: SEThermalCompartmentLink.h:47
Definition: SEThermalCompartment.h:12

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.