Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
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
13  friend class SECompartmentManager;
14 protected:
15  SEThermalCompartmentLink(SEThermalCompartment& src, SEThermalCompartment & tgt, const std::string& name);
16 public:
17  virtual ~SEThermalCompartmentLink();
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 
35 protected:
40 };
41 
42 #include "cdm/compartment/SECompartmentGraph.h"
43 class SEThermalCompartmentGraph : public SECompartmentGraph<SEThermalCompartment, SEThermalCompartmentLink>
44 {
45 public:
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.