1 #ifndef AMO_TOOLS_SUITE_FANCURVE_H 2 #define AMO_TOOLS_SUITE_FANCURVE_H 28 ResultData(
const double flow,
const double pressure,
const double power,
const double efficiency)
32 efficiency(efficiency)
35 const double flow, pressure, power, efficiency;
56 BaseCurve(
const double flow,
const double pressure,
const double power)
62 const double flow, pressure, power;
68 RatedPoint(
const double flow,
const double pressure,
const double power,
const double density,
69 const double speed,
const double speedCorrected)
73 speedCorrected(speedCorrected)
76 const double density, speed, speedCorrected;
80 struct BaseOperatingPoint :
public RatedPoint {
82 BaseOperatingPoint(
const double flow,
const double pressure,
const double power,
const double density,
83 const double speed,
const double speedCorrected,
const double pressureBarometric,
84 const bool usePt1Factor,
const double pt1 = 0)
85 :
RatedPoint(flow, pressure, power, density, speed, speedCorrected),
86 pressureBarometric(pressureBarometric), usePt1Factor(usePt1Factor), pt1(pt1)
89 const double pressureBarometric;
96 : curveType(curveType),
97 baseCurveData(std::move(baseCurveData)),
98 calcType(CalculationType::BaseCurve)
102 : curveType(curveType),
103 ratedPointData(std::move(ratedPointData)),
104 calcType(CalculationType::RatedPoint)
108 : curveType(curveType),
109 baseOperatingPointData(std::move(baseOperatingPointData)),
110 calcType(CalculationType::BaseOperatingPoint)
115 std::vector<BaseCurve> baseCurveData;
116 std::vector<RatedPoint> ratedPointData;
117 std::vector<BaseOperatingPoint> baseOperatingPointData;
126 FanCurve(
const double density,
const double densityCorrected,
const double speed,
const double speedCorrected,
127 const double pressureBarometric,
const double pressureBarometricCorrected,
const double pt1Factor,
128 const double gamma,
const double gammaCorrected,
const double area1,
const double area2,
FanCurveData data)
130 densityCorrected(densityCorrected),
132 speedCorrected(speedCorrected),
133 pressureBarometric(pressureBarometric),
134 pressureBarometricCorrected(pressureBarometricCorrected),
135 pt1Factor(pt1Factor),
137 gammaCorrected(gammaCorrected),
140 curveData(std::move(data))
143 std::vector<ResultData> calculate();
146 std::vector<ResultData> calculateBaseCurve();
147 std::vector<ResultData> calculateBaseOperatingPoint();
148 std::vector<ResultData> calculateRatedPoint();
150 double density, densityCorrected, speed, speedCorrected, pressureBarometric, pressureBarometricCorrected;
151 double pt1Factor, gamma, gammaCorrected, area1, area2;
156 #endif //AMO_TOOLS_SUITE_FANCURVE_H