WSF
WsfSixDOF_Fuel.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 2020 Infoscitex, a DCS 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#ifndef WSFSIXDOFFUEL_HPP
13#define WSFSIXDOFFUEL_HPP
14
15#include "wsf_six_dof_export.h"
16
17#include "WsfFuel.hpp"
18#include "WsfSixDOF_Mover.hpp"
19
20namespace wsf
21{
22namespace six_dof
23{
29// and higher-fidelity SixDOF fuel model simply cannot be simplified.
30
31class WSF_SIX_DOF_EXPORT Fuel : public WsfFuel
32{
33public:
34 explicit Fuel(WsfScenario& aScenario);
35 ~Fuel() = default;
36
37 Fuel& operator=(const Fuel& other) = delete;
38
39 WsfFuel* Clone() const override;
40
42
43 // bool Initialize(double aSimTime) override;
44 bool Initialize2(double aSimTime) override;
45 bool ProcessInput(UtInput& aInput) override;
46 void Update(double aSimTime) override;
48
49 // This sets the SixDOF mover for the fuel object
50 void SetMover(Mover* aMover) { mMoverPtr = aMover; }
51
52 // Returns the fuel consumption rate in kg/sec
53 double GetConsumptionRate() override;
54
55 // Returns the fuel consumption rate in kg/sec
56 // For now, this returns the current consumption rate. Later, it will utilize altitude and speed.
57 double GetConsumptionRate(const double aAltitude, const double aSpeed) override;
58
59 // Quantity is in kg
60 void SetMaximumQuantity(double aQuantity) override;
61
62 // Returns current fuel quantity (kg)
63 double GetQuantityRemaining() const override;
64
65 // void SetQuantityRemaining(double aQuantity) override;
66
67 // Instantaneous refueling
68 bool Refuel(double aSimTime) override;
69
70 // Quantity is in kg
71 bool Refuel(double aSimTime, double aQuantity) override;
72
73protected:
74 Fuel(const Fuel& aSrc);
75
76 void SetSixDOF_Mover();
77
78 void UpdateSixDOF_FuelData(double aSimTime);
79
80 // This calculates the fuel consumption under current conditions
81 double CalcConsumptionRate() override;
82
83 // This calculates the fuel consumption at specified conditions.
84 // Note: At the present time, this calculates the fuel consumption under current conditions.
85 double CalcConsumptionRateAltitudeSpeed(const double aAltitude, const double aSpeed) override;
86
87 Mover* mMoverPtr = nullptr;
88};
89} // namespace six_dof
90} // namespace wsf
91
92
93#endif
aObjectPtr Update(simTime)
WsfFuel(WsfScenario &aScenario)
Definition WsfFuel.cpp:30
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfSixDOF_Fuel.hpp:32
bool ProcessInput(UtInput &aInput) override
Definition WsfSixDOF_Fuel.cpp:65
WsfFuel * Clone() const override
Definition WsfSixDOF_Fuel.cpp:35
void SetMover(Mover *aMover)
Definition WsfSixDOF_Fuel.hpp:50
Mover * mMoverPtr
Definition WsfSixDOF_Fuel.hpp:87
Fuel(WsfScenario &aScenario)
Definition WsfSixDOF_Fuel.cpp:25
bool Initialize2(double aSimTime) override
Definition WsfSixDOF_Fuel.cpp:40
Fuel & operator=(const Fuel &other)=delete
This is a base class for detailed air movers. This umbrella can cover RB6 or PM6 models.
Definition WsfSixDOF_Mover.hpp:58
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved