WSF
WsfVariableRateFuel.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFVARIABLERATEFUEL_HPP
16#define WSFVARIABLERATEFUEL_HPP
17
18#include "wsf_export.h"
19
20#include <map>
21
22#include "TblLookup.hpp"
23#include "WsfFuel.hpp"
24
34{
35public:
38 ~WsfVariableRateFuel() override;
39
40 WsfFuel* Clone() const override;
41
43
44 bool Initialize(double aSimTime) override;
45 bool ProcessInput(UtInput& aInput) override;
47
48 void SetMode(WsfStringId aMode) override;
49
57
66
68 {
69 double mAltitude; //<! Altitude independent value
70 TblIndVarU<double> mSpeeds; //<! Speed independent values
71 TblDepVar1<double> mRates; //<! the rate table f(altitude, speed)
72 TblLookupLU<double> mSpeedLookup;
73 };
74
76 typedef std::vector<AltitudeEntry> Altitudes;
77
78 class Table
79 {
80 public:
82 : mAltitudes()
83 , mConstantRateUsed(false)
84 , mRateTableUsed(false)
85 {
86 }
87
91 };
92
93protected:
94 typedef std::map<WsfStringId, Table> RateTables;
95 typedef RateTables::iterator RateTableIter;
96 typedef RateTables::const_iterator RateTableConstIter;
97 typedef std::pair<WsfStringId, Table> RateTablePair;
98
99 bool ProcessTablePairInput(UtInput& aInput, RateTablePair& aPair);
100
103
105 double CalcConsumptionRate() override;
106 double CalcConsumptionRateAltitudeSpeed(const double aAltitude, const double aSpeed) override;
107
108private:
109 Table* GetCurrentTable();
110
112 void CreateConstantTable(double aValue, Table& aTable);
113
115 void AddAltitudeEntry(double aAltitude, std::vector<double>& aSpeeds, std::vector<double>& aRates, Table& aTable);
116
117 RateTables mTables;
118 WsfStringId mInputMode;
119};
120
121#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfFuel(WsfScenario &aScenario)
Definition WsfFuel.cpp:30
virtual double CalcConsumptionRateAltitudeSpeed(const double aAltitude, const double aSpeed)
Definition WsfFuel.cpp:597
bool Initialize(double aSimTime) override
Definition WsfFuel.cpp:127
virtual double CalcConsumptionRate()
Definition WsfFuel.cpp:592
virtual void SetMode(WsfStringId aMode)
Definition WsfFuel.cpp:108
bool ProcessInput(UtInput &aInput) override
Definition WsfFuel.cpp:210
WsfFuel * Clone() const override
Definition WsfFuel.cpp:93
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfVariableRateFuel.hpp:79
Altitudes mAltitudes
Definition WsfVariableRateFuel.hpp:88
bool mConstantRateUsed
Definition WsfVariableRateFuel.hpp:89
Table()
Definition WsfVariableRateFuel.hpp:81
bool mRateTableUsed
True if only a single rate is provided.
Definition WsfVariableRateFuel.hpp:90
TableType
Enumeration to select the fuel consumption rate table lookup type.
Definition WsfVariableRateFuel.hpp:60
@ cTWO_D
A function of two independent variables.
Definition WsfVariableRateFuel.hpp:63
@ cTHREE_D
A function of three independent variables.
Definition WsfVariableRateFuel.hpp:64
@ cCONSTANT
Constant (No table lookup required).
Definition WsfVariableRateFuel.hpp:61
@ cONE_D
A function of one independent variable.
Definition WsfVariableRateFuel.hpp:62
std::map< WsfStringId, Table > RateTables
Definition WsfVariableRateFuel.hpp:94
std::pair< WsfStringId, Table > RateTablePair
Definition WsfVariableRateFuel.hpp:97
RateTables::const_iterator RateTableConstIter
Definition WsfVariableRateFuel.hpp:96
WsfVariableRateFuel & operator=(const WsfVariableRateFuel &)=delete
RateTables::iterator RateTableIter
Definition WsfVariableRateFuel.hpp:95
IndependentVariable
Enumeration to select the independent variable for a fuel flow table.
Definition WsfVariableRateFuel.hpp:52
@ cWEIGHT
A function of two independent variables.
Definition WsfVariableRateFuel.hpp:55
@ cALTITUDE
A function of one independent variable.
Definition WsfVariableRateFuel.hpp:54
@ cSPEED
Function of speed.
Definition WsfVariableRateFuel.hpp:53
bool ProcessTablePairInput(UtInput &aInput, RateTablePair &aPair)
Definition WsfVariableRateFuel.cpp:174
std::vector< AltitudeEntry > Altitudes
Fuel rate table.
Definition WsfVariableRateFuel.hpp:76
WsfVariableRateFuel(WsfScenario &aScenario)
Definition WsfVariableRateFuel.cpp:28
Definition WsfVariableRateFuel.hpp:68
TblIndVarU< double > mSpeeds
Definition WsfVariableRateFuel.hpp:70
TblDepVar1< double > mRates
Definition WsfVariableRateFuel.hpp:71
double mAltitude
Definition WsfVariableRateFuel.hpp:69
TblLookupLU< double > mSpeedLookup
Definition WsfVariableRateFuel.hpp:72
Copyrights Multiple, All Rights Reserved