MEASUR-Tools-Suite v1.0.11
The MEASUR Tools Suite is a collection of industrial efficiency calculations written in C++ and with bindings for compilation to WebAssembly.
Loading...
Searching...
No Matches
TurbineInput.h
1#ifndef TOOLS_SUITE_TURBINEINPUT_H
2#define TOOLS_SUITE_TURBINEINPUT_H
3
4#include <iostream>
5#include <type_traits>
6
10enum class CondensingTurbineOperation { POWER_GENERATION = 1, STEAM_FLOW = 0 };
11
15enum class PressureTurbineOperation {
16 BALANCE_HEADER = 2,
17 FLOW_RANGE = 4,
18 POWER_GENERATION = 1,
19 POWER_RANGE = 3,
20 STEAM_FLOW = 0
21};
22
23template <typename T>
24std::ostream& operator<<(typename std::enable_if<std::is_enum<T>::value, std::ostream>::type& stream, const T& e) {
25 return stream << static_cast<typename std::underlying_type<T>::type>(e);
26}
27
32 public:
33 CondensingTurbine(double isentropicEfficiency, double generationEfficiency, double condenserPressure,
34 CondensingTurbineOperation operationType, double operationValue, bool useTurbine);
35
36 friend std::ostream& operator<<(std::ostream& stream, const CondensingTurbine& ct);
37
38 double getIsentropicEfficiency() const;
39
40 double getGenerationEfficiency() const;
41
42 double getCondenserPressure() const;
43
44 CondensingTurbineOperation getOperationType() const;
45
46 double getOperationValue() const;
47
48 bool isUseTurbine() const;
49
50 private:
51 double isentropicEfficiency;
52 double generationEfficiency;
53 double condenserPressure;
54 CondensingTurbineOperation operationType;
55 double operationValue;
56 bool useTurbine;
57};
58
63 public:
64 PressureTurbine(double isentropicEfficiency, double generationEfficiency, PressureTurbineOperation operationType,
65 double operationValue1, double operationValue2, bool useTurbine);
66
67 friend std::ostream& operator<<(std::ostream& stream, const PressureTurbine& pt);
68
69 double getIsentropicEfficiency() const;
70
71 double getGenerationEfficiency() const;
72
73 PressureTurbineOperation getOperationType() const;
74
75 double getOperationValue1() const;
76
77 double getOperationValue2() const;
78
79 bool isUseTurbine() const;
80
81 private:
82 double isentropicEfficiency;
83 double generationEfficiency;
84 PressureTurbineOperation operationType;
85 double operationValue1;
86 double operationValue2;
87 bool useTurbine;
88};
89
94 public:
95 TurbineInput(const CondensingTurbine& condensingTurbine, const PressureTurbine& highToLowTurbine,
96 const PressureTurbine& highToMediumTurbine, const PressureTurbine& mediumToLowTurbine);
97
98 friend std::ostream& operator<<(std::ostream& stream, const TurbineInput& turbineInput);
99
100 CondensingTurbine getCondensingTurbine() const;
101
102 PressureTurbine getHighToLowTurbine() const;
103
104 PressureTurbine getHighToMediumTurbine() const;
105
106 PressureTurbine getMediumToLowTurbine() const;
107
108 private:
109 CondensingTurbine condensingTurbine;
110 PressureTurbine highToLowTurbine;
111 PressureTurbine highToMediumTurbine;
112 PressureTurbine mediumToLowTurbine;
113};
114
115#endif // TOOLS_SUITE_TURBINEINPUT_H