WSF
WsfTabularRateFuel.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 WSFTABULARRATEFUEL_HPP
16#define WSFTABULARRATEFUEL_HPP
17
18#include "wsf_export.h"
19
20#include <map>
21
22#include "UtInput.hpp"
23class UtInputBlock;
24#include "WsfFuel.hpp"
25class WsfFuelFlow;
26#include "UtAtmosphere.hpp"
27
40{
41public:
51
60
61 struct Array
62 {
65 , ConvFactor(1.0)
66 , Values()
67 {
68 }
69
71 double ConvFactor;
72 std::vector<double> Values;
73 void Check(UtInput& aInput);
74 };
75
76 struct InputData
77 {
79 : Mode()
81 , FirstIV()
82 , SecondIV()
83 , ThirdIV()
84 , Data()
85 {
86 }
87
88 // This structure is used to capture fuel flow table input
89 // before the full type is known (constant, 1D, 2D, 3D table).
96 };
97
100 ~WsfTabularRateFuel() override;
101
102 WsfFuel* Clone() const override;
103
105
106 bool Initialize(double aSimTime) override;
107 bool ProcessInput(UtInput& aInput) override;
109
110 void SetMode(WsfStringId aMode) override;
111
112 using RateTableMap = std::map<WsfStringId, WsfFuelFlow*>;
115
116 virtual const RateTableMap& GetRateTableMap() { return mTables; }
118
119protected:
120 void ProcessTableBlock(UtInputBlock& aInputBlock);
121 void ProcessVarBlock(UtInputBlock& aInputBlock, UtInput::ValueType aType, Array& aArray);
122 void ProcessMachBlock(UtInputBlock& aInputBlock, Array& aArray);
123 using RateTablePair = std::pair<WsfStringId, WsfFuelFlow*>;
124 // typedef std::pair<int, WsfFuelFlow*> RateTablePair;
125 using RateTableConstIter = RateTableMap::const_iterator;
126 using RateTableIter = RateTableMap::iterator;
127
130
132 double CalcConsumptionRate() override;
133 double CalcConsumptionRateAltitudeSpeed(const double aAltitude, const double aSpeed) override;
134
136
137private:
138 bool mSpeedInMach;
139 RateTableMap mTables;
140 UtAtmosphere mAtmosphere;
141};
142
143#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Constant flow rate fuel consumption table object.
Definition WsfFuelFlowTables.hpp:26
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
WsfTabularRateFuel(WsfScenario &aScenario)
Definition WsfTabularRateFuel.cpp:27
VarType
Enumeration to identify the variable for a fuel flow table.
Definition WsfTabularRateFuel.hpp:44
@ cALTITUDE
Function of altitude.
Definition WsfTabularRateFuel.hpp:47
@ cMASS
Function of mass.
Definition WsfTabularRateFuel.hpp:48
@ cSPEED
Function of speed.
Definition WsfTabularRateFuel.hpp:46
@ cNO_VARTYPE
Not yet set.
Definition WsfTabularRateFuel.hpp:45
@ cRATES
Fuel Flow Rate (dependent variable).
Definition WsfTabularRateFuel.hpp:49
std::pair< WsfStringId, WsfFuelFlow * > RateTablePair
Definition WsfTabularRateFuel.hpp:123
virtual const RateTableMap & GetRateTableMap()
Definition WsfTabularRateFuel.hpp:116
WsfFuelFlow * GetCurrentTable()
Definition WsfTabularRateFuel.cpp:498
TableType
Enumeration to select the fuel consumption rate table lookup type.
Definition WsfTabularRateFuel.hpp:54
@ cTWO_D
A function of two independent variables.
Definition WsfTabularRateFuel.hpp:57
@ cONE_D
A function of one independent variable.
Definition WsfTabularRateFuel.hpp:56
@ cCONSTANT
Constant (No table lookup required).
Definition WsfTabularRateFuel.hpp:55
@ cTHREE_D
A function of three independent variables.
Definition WsfTabularRateFuel.hpp:58
WsfTabularRateFuel & operator=(const WsfTabularRateFuel &)=delete
RateTableMap::const_iterator RateTableConstIter
Definition WsfTabularRateFuel.hpp:125
RateTableMap::iterator RateTableIter
Definition WsfTabularRateFuel.hpp:126
std::map< WsfStringId, WsfFuelFlow * > RateTableMap
Definition WsfTabularRateFuel.hpp:112
Definition WsfTabularRateFuel.hpp:62
void Check(UtInput &aInput)
Definition WsfTabularRateFuel.cpp:509
std::vector< double > Values
Definition WsfTabularRateFuel.hpp:72
Array()
Definition WsfTabularRateFuel.hpp:63
double ConvFactor
Definition WsfTabularRateFuel.hpp:71
VarType Variable
Definition WsfTabularRateFuel.hpp:70
TableType Table
Definition WsfTabularRateFuel.hpp:91
WsfStringId Mode
Definition WsfTabularRateFuel.hpp:90
Array Data
Definition WsfTabularRateFuel.hpp:95
Array ThirdIV
Definition WsfTabularRateFuel.hpp:94
Array SecondIV
Definition WsfTabularRateFuel.hpp:93
InputData()
Definition WsfTabularRateFuel.hpp:78
Array FirstIV
Definition WsfTabularRateFuel.hpp:92
Copyrights Multiple, All Rights Reserved