AMO-Tools-Suite  v.0.9.0
Set of tools for calculating energy efficiency in industrial equipment
All Classes Namespaces Files Functions Variables Enumerations Friends Macros Pages
HeaderInput.h
1 #ifndef AMO_TOOLS_SUITE_HEADERINPUT_H
2 #define AMO_TOOLS_SUITE_HEADERINPUT_H
3 
4 #include <iostream>
5 #include <list>
6 #include <memory>
7 
11 class HeaderWithPressure {
12 public:
13  HeaderWithPressure(double pressure, double processSteamUsage, double condensationRecoveryRate, double heatLoss,
14  bool flashCondensate);
15 
16  double getPressure() const;
17 
18  double getProcessSteamUsage() const;
19 
20  double getCondensationRecoveryRate() const;
21 
22  double getHeatLoss() const;
23 
24  bool isFlashCondensate() const;
25 
26 protected:
27  double pressure;
28  double processSteamUsage;
29  double condensationRecoveryRate;
30  double heatLoss;
31  bool flashCondensate;
32 };
33 
38 public:
39  HeaderWithHighestPressure(double pressure, double processSteamUsage, double condensationRecoveryRate,
40  double heatLoss, double condensateReturnTemperature, bool flashCondensateReturn);
41 
42  friend std::ostream &operator<<(std::ostream &stream, const HeaderWithHighestPressure &header);
43 
44  double getCondensateReturnTemperature() const;
45 
46 private:
47  double condensateReturnTemperature;
48 };
49 
54 public:
55  HeaderNotHighestPressure(double pressure, double processSteamUsage, double condensationRecoveryRate,
56  double heatLoss, bool flashCondensateIntoHeader, bool desuperheatSteamIntoNextHighest,
57  double desuperheatSteamTemperature);
58 
59  friend std::ostream &operator<<(std::ostream &stream, const HeaderNotHighestPressure &header);
60 
61  bool isDesuperheatSteamIntoNextHighest() const;
62 
63  double getDesuperheatSteamTemperature() const;
64 
65 private:
66  bool desuperheatSteamIntoNextHighest;
67  double desuperheatSteamTemperature;
68 };
69 
73 class HeaderInput {
74 public:
75  HeaderInput(const HeaderWithHighestPressure &highPressureHeader,
76  const std::shared_ptr<HeaderNotHighestPressure> &mediumPressureHeader,
77  const std::shared_ptr<HeaderNotHighestPressure> &lowPressureHeader);
78 
79  friend std::ostream &operator<<(std::ostream &stream, const HeaderInput &headerInput);
80 
81  int getHeaderCount() const;
82 
83  double getPressureFromLowestPressureHeader() const;
84 
85  HeaderWithHighestPressure getHighPressureHeader() const;
86 
87  std::shared_ptr<HeaderNotHighestPressure> getLowPressureHeader() const;
88 
89  std::shared_ptr<HeaderNotHighestPressure> getMediumPressureHeader() const;
90 
91 private:
92  HeaderWithHighestPressure highPressureHeader;
93 
95  std::shared_ptr<HeaderNotHighestPressure> mediumPressureHeader;
96 
98  std::shared_ptr<HeaderNotHighestPressure> lowPressureHeader;
99 };
100 
101 #endif //AMO_TOOLS_SUITE_HEADERINPUT_H