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
HeaderFactory.h
1 #ifndef AMO_TOOLS_SUITE_HEADERFACTORY_H
2 #define AMO_TOOLS_SUITE_HEADERFACTORY_H
3 
4 #include <memory>
5 #include <ssmt/Boiler.h>
6 #include <ssmt/FlashTank.h>
7 #include <ssmt/Header.h>
8 #include <ssmt/HeatExchanger.h>
9 #include <ssmt/PRV.h>
10 #include <ssmt/Turbine.h>
11 #include <ssmt/api/BoilerInput.h>
12 #include <ssmt/api/HeaderInput.h>
13 #include <ssmt/api/TurbineInput.h>
14 #include "InletFactory.h"
15 #include "HighPressureHeaderCalculationsDomain.h"
16 #include "LowPressureFlashedSteamIntoHeaderCalculatorDomain.h"
17 #include "LowPressureHeaderCalculationsDomain.h"
18 #include "MediumPressureHeaderCalculationsDomain.h"
19 
20 class HeaderFactory {
21 public:
22  const Header make(const double &headerPressure, const Boiler &boiler) const;
23 
24  const Header make(const std::shared_ptr<HeaderNotHighestPressure> &mediumPressureHeaderInput,
25  const std::shared_ptr<PrvWithoutDesuperheating> &prvWithoutDesuperheating,
26  const PressureTurbine &highToMediumTurbineInput,
27  const std::shared_ptr<Turbine> &highToMediumPressureTurbine,
28  const std::shared_ptr<FlashTank> &highPressureCondensateFlashTank) const;
29 
30  const Header make(const std::shared_ptr<HeaderNotHighestPressure> &lowPressureHeaderInput,
31  const std::shared_ptr<FlashTank> &highPressureCondensateFlashTank,
32  const SteamSystemModelerTool::FluidProperties &mediumPressureCondensate) const;
33 
34  const Header make(const std::shared_ptr<HeaderNotHighestPressure> &lowPressureHeaderInput,
35  const SteamSystemModelerTool::FluidProperties &highPressureCondensate,
36  const SteamSystemModelerTool::FluidProperties &mediumPressureCondensate) const;
37 
38  const Header
39  make(const double headerCountInput, const std::shared_ptr<HeaderNotHighestPressure> &lowPressureHeaderInput,
40  const PressureTurbine &highToLowTurbineInput, const PressureTurbine &mediumToLowTurbineInput,
41  const BoilerInput &boilerInput,
42  const std::shared_ptr<PrvWithoutDesuperheating> &lowPressurePrvWithoutDesuperheating,
43  const std::shared_ptr<Turbine> &highToLowPressureTurbine, const std::shared_ptr<FlashTank> &blowdownFlashTank,
44  const LowPressureFlashedSteamIntoHeaderCalculatorDomain &lowPressureFlashedSteamIntoHeaderCalculatorDomain,
45  const std::shared_ptr<MediumPressureHeaderCalculationsDomain> &mediumPressureHeaderCalculationsDomain) const;
46 
47  const Header make(const int headerCountInput, const double headerPressure,
48  const std::shared_ptr<FlashTank> &highPressureCondensateFlashTank,
49  const HighPressureHeaderCalculationsDomain &highPressureHeaderCalculationsDomain,
50  const std::shared_ptr<MediumPressureHeaderCalculationsDomain> &mediumPressureHeaderCalculationsDomain,
51  const std::shared_ptr<LowPressureHeaderCalculationsDomain> &lowPressureHeaderCalculationsDomain) const;
52 
53  const Header make(const double headerPressure, const SteamSystemModelerTool::FluidProperties &returnCondensate,
54  const BoilerInput &boilerInput, const std::shared_ptr<HeatExchanger::Output> &heatExchangerOutput,
55  const SteamSystemModelerTool::FluidProperties &makeupWater,
56  const CondensingTurbine &condensingTurbineInput,
57  const std::shared_ptr<Turbine> &condensingTurbine) const;
58 
59  const Header
60  make(const int headerCountInput, const HighPressureHeaderCalculationsDomain &highPressureHeaderCalculationsDomain,
61  const std::shared_ptr<MediumPressureHeaderCalculationsDomain> &mediumPressureHeaderCalculationsDomain,
62  const std::shared_ptr<LowPressureHeaderCalculationsDomain> &lowPressureHeaderCalculationsDomain) const;
63 
64  double determineLowHeaderPressure(const int headerCountInput,
65  const HighPressureHeaderCalculationsDomain &highPressureHeaderCalculationsDomain,
66  const std::shared_ptr<LowPressureHeaderCalculationsDomain> &lowPressureHeaderCalculationsDomain) const;
67 
68  const std::shared_ptr<FlashTank>
70  const std::shared_ptr<MediumPressureHeaderCalculationsDomain> &mediumPressureHeaderCalculationsDomain,
71  const std::shared_ptr<LowPressureHeaderCalculationsDomain> &lowPressureHeaderCalculationsDomain) const;
72 
73 private:
74  const InletFactory inletFactory = InletFactory();
75 
76  bool isMediumPressureCondensateFlashTankNull(
77  const std::shared_ptr<LowPressureHeaderCalculationsDomain> &lowPressureHeaderCalculationsDomain) const;
78 };
79 
80 #endif //AMO_TOOLS_SUITE_HEADERFACTORY_H
Definition: Boiler.h:24
double determineLowHeaderPressure(const int headerCountInput, const HighPressureHeaderCalculationsDomain &highPressureHeaderCalculationsDomain, const std::shared_ptr< LowPressureHeaderCalculationsDomain > &lowPressureHeaderCalculationsDomain) const
const std::shared_ptr< FlashTank > selectHighPressureCondensateFlashTank(const std::shared_ptr< MediumPressureHeaderCalculationsDomain > &mediumPressureHeaderCalculationsDomain, const std::shared_ptr< LowPressureHeaderCalculationsDomain > &lowPressureHeaderCalculationsDomain) const
Definition: Header.h:44