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
SludgeVolumeIndex.h
1 #ifndef AMO_TOOLS_SUITE_SLUDGEVOLUMEINDEX_H
2 #define AMO_TOOLS_SUITE_SLUDGEVOLUMEINDEX_H
3 
4 class SludgeVolumeIndex {
5 public:
6  enum SVIParameter {
7  SVISN,
8  SVIGN,
9  SVIGS,
10  SVISS,
11  VoK
12  };
13 
14  struct GraphDataPoint
15  {
16  GraphDataPoint(double SolidsConcentration, double SolidsFlux) : SolidsConcentration(SolidsConcentration), SolidsFlux(SolidsFlux){}
17 
18  GraphDataPoint() = default;
19  double SolidsConcentration = 0, SolidsFlux = 0;
20  };
21 
22  struct Output
23  {
24  Output(double TotalAreaClarifier , double SurfaceOverflow , double AppliedSolidsLoading , double RasConcentration,
25  double UnderFlowRateX2, double UnderFlowRateY1, double OverFlowRateX2, double OverFlowRateY2, double StatePointX, double StatePointY,
26  std::vector<GraphDataPoint> GraphData) :
27  TotalAreaClarifier(TotalAreaClarifier), SurfaceOverflow(SurfaceOverflow), AppliedSolidsLoading(AppliedSolidsLoading), RasConcentration(RasConcentration),
28  UnderFlowRateX2(UnderFlowRateX2), UnderFlowRateY1(UnderFlowRateY1), OverFlowRateX2(OverFlowRateX2), OverFlowRateY2(OverFlowRateY2), StatePointX(StatePointX), StatePointY(StatePointY), GraphData(GraphData) {}
29 
30  Output() = default;
31  double TotalAreaClarifier = 0, SurfaceOverflow = 0, AppliedSolidsLoading = 0, RasConcentration = 0,
32  UnderFlowRateX2 = 0, UnderFlowRateY1 = 0, OverFlowRateX2 = 0, OverFlowRateY2 = 0, StatePointX = 0, StatePointY = 0;
33  std::vector<GraphDataPoint> GraphData;
34  };
35 
36  SludgeVolumeIndex(SVIParameter sviParameter, double sviValue, int numberOfClarifiers, double areaOfClarifier, double MLSS, double influentFlow, double rasFlow, double sludgeSettlingVelocity) :
37  sviParameter(sviParameter), sviValue(sviValue), numberOfClarifiers(numberOfClarifiers), areaOfClarifier(areaOfClarifier), MLSS(MLSS), influentFlow(influentFlow), rasFlow(rasFlow), sludgeSettlingVelocity(sludgeSettlingVelocity) {}
38 
39  Output calculate();
40 
41 private:
42  SVIParameter sviParameter = SVIParameter::SVISN;
43  double sviValue = 0;
44  int numberOfClarifiers = 0;
45  double areaOfClarifier = 0;
46  double MLSS = 0;
47  double influentFlow = 0;
48  double rasFlow = 0;
49  double sludgeSettlingVelocity = 0;
50 
51  static double Round(double value) { return (float)((int)(value * 100 + .5)) / 100; }
52 };
53 #endif //AMO_TOOLS_SUITE_SLUDGEVOLUMEINDEX_H