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
SteamReducer.h
1 #ifndef AMO_TOOLS_SUITE_STEAMREDUCER_H
2 #define AMO_TOOLS_SUITE_STEAMREDUCER_H
3 
4 #include <ssmt/Turbine.h>
5 #include <ssmt/api/TurbineInput.h>
6 #include <ssmt/domain/TurbineFactory.h>
7 
8 //TODO extract class
9 class SteamReducerOutput {
10 public:
11  double remainingAdditionalSteamNeeded;
12  std::shared_ptr<Turbine> highToLowPressureTurbineUpdated;
13  std::shared_ptr<Turbine> highToLowPressureTurbineIdealUpdated;
14 
15  friend std::ostream &operator<<(std::ostream &stream, const SteamReducerOutput &output) {
16  stream << "Turbine["
17  << "remainingAdditionalSteamNeeded=" << static_cast< int >(output.remainingAdditionalSteamNeeded)
18  << ", highToLowPressureTurbineUpdated=" << output.highToLowPressureTurbineUpdated
19  << ", highToLowPressureTurbineIdealUpdated=" << output.highToLowPressureTurbineIdealUpdated
20  << "]";
21  return stream;
22  }
23 };
24 
28 class SteamReducer {
29 public:
35  reduceSteamThroughHighToLowTurbine(const double additionalSteamNeeded, const PressureTurbine &highToLowTurbineInput,
36  const std::shared_ptr<Turbine> &highToLowPressureTurbine,
37  const std::shared_ptr<Turbine> &highToLowPressureTurbineIdeal,
38  const SteamSystemModelerTool::FluidProperties &highPressureHeaderOutput,
39  const std::shared_ptr<HeaderNotHighestPressure> &lowPressureHeaderInput) const;
40 
41 private:
42  const TurbineFactory turbineFactory = TurbineFactory();
43 
45  reduceBalanceHeader(const double additionalSteamNeeded,
46  const PressureTurbine &highToLowTurbineInput,
47  const std::shared_ptr<Turbine> &highToLowPressureTurbine,
48  const std::shared_ptr<Turbine> &highToLowPressureTurbineIdeal,
49  const SteamSystemModelerTool::FluidProperties &highPressureHeaderOutput,
50  const std::shared_ptr<HeaderNotHighestPressure> &lowPressureHeaderInput) const;
51 
53  reducePowerRange(const double additionalSteamNeeded,
54  const PressureTurbine &highToLowTurbineInput,
55  const std::shared_ptr<Turbine> &highToLowPressureTurbine,
56  const std::shared_ptr<Turbine> &highToLowPressureTurbineIdeal,
57  const SteamSystemModelerTool::FluidProperties &highPressureHeaderOutput,
58  const std::shared_ptr<HeaderNotHighestPressure> &lowPressureHeaderInput) const;
59 
61  reduceFlowRange(const double additionalSteamNeeded,
62  const PressureTurbine &highToLowTurbineInput,
63  const std::shared_ptr<Turbine> &highToLowPressureTurbine,
64  const std::shared_ptr<Turbine> &highToLowPressureTurbineIdeal,
65  const SteamSystemModelerTool::FluidProperties &highPressureHeaderOutput,
66  const std::shared_ptr<HeaderNotHighestPressure> &lowPressureHeaderInput) const;
67 
68 };
69 
70 #endif //AMO_TOOLS_SUITE_STEAMREDUCER_H