12#ifndef WSFRIGIDBODYSIXDOFPROPULSIONSYSTEM_HPP
13#define WSFRIGIDBODYSIXDOFPROPULSIONSYSTEM_HPP
40 bool Initialize(int64_t aSimTime_nanosec)
override;
52 void CalculatePropulsionFM(
double aDeltaT_sec,
54 double aDynPress_lbsqft,
55 double aStatPress_lbssqft,
61 double& aFuelBurnRate_pps,
62 double& aFuelBurned_lbs);
69 void UpdatePropulsionFM(
double aDeltaT_sec,
71 double aDynPress_lbsqft,
72 double aStatPress_lbssqft,
78 double& aFuelBurnRate_pps,
79 double& aFuelBurned_lbs);
95 void SetThrottleLeverPosition(
double aThrottleLeverPosition)
override;
98 void EnableThrustVectoring(
bool aEnableThrustVectoring)
override;
101 void SetThrustVectoringYaw_deg(
double aThrustVectoringAngle_deg);
104 void SetThrustVectoringPitch_deg(
double aThrustVectoringAngle_deg);
107 void SetThrustReverser(
double aThrustReverserSetting);
110 void EnableThrustReverser(
bool aEnableThrustReverser);
116 bool AfterburnerIsPresent()
const override;
119 size_t GetNumThrustProducers()
const override;
122 void Ignite(int64_t aIgniteTimeInFrame_nanosec)
override;
126 void Shutdown(int64_t aTerminateTime_nanosec = 0)
override;
129 bool IsProducingThrust()
const override;
133 bool SetFuelFeed(std::string& aEngineName, std::string aFuelTankName)
override;
137 bool SetFuelFeed(std::string aFuelTankName)
override;
147 bool AnEngineIsOperating(
bool aTestSubobjects =
false)
const override;
152 bool AnEngineIsSmoking(
bool aTestSubobjects =
false)
const override;
157 bool AnEngineHasAfterburnerOn(
bool aTestSubobjects =
false)
const override;
162 bool AnEngineIsContrailing(
bool aTestSubobjects =
false)
const override;
167 bool AnEngineIsEmittingSmokeTrail(
bool aTestSubobjects =
false)
const override;
170 void MakeAnEngineSmoke(
int aEngineIndex)
override;
177 void PropulsionCalculationsFM(
double aDeltaT_sec,
179 double aDynPress_lbsqft,
180 double aStatPress_lbssqft,
186 double& aFuelBurnRate_pps,
187 double& aFuelBurned_lbs,
190 std::vector<std::unique_ptr<RigidBodyThrustProducerObject>>
mEngineList;
Definition WsfSixDOF_ForceAndMomentsObject.hpp:28
This is a base class for detailed air movers. This umbrella can cover RB6 or PM6 models.
Definition WsfSixDOF_Mover.hpp:58
PropulsionSystem()=default
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:44
Definition WsfRigidBodySixDOF_Mover.hpp:38
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:28
const std::vector< std::unique_ptr< RigidBodyThrustProducerObject > > & GetThrustProducerList() const
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:43
double mThrustReverserSetting
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:208
bool mThrustVectorYawSet
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:202
RigidBodyPropulsionSystem * Clone() const
Definition WsfRigidBodySixDOF_PropulsionSystem.cpp:38
bool mEnableThrustReverser
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:209
bool ThrustReverserEnabled() const
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:113
std::vector< std::unique_ptr< RigidBodyThrustProducerObject::ThrustControlInputValueData > > mThrustControlInputValueDataList
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:193
void SetParentVehicle(Mover *aParentVehicle) override
Definition WsfRigidBodySixDOF_PropulsionSystem.cpp:28
RigidBodyThrustProducerObject::ThrustControlInputValueData * mThrottleSettingMIL
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:195
RigidBodyThrustProducerObject::ThrustControlInputValueData * mThrottleSettingPitch
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:199
double mThrustVectoringAngleYaw_deg
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:205
double mThrustVectoringAnglePitch_deg
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:206
RigidBodyPropulsionSystem()=default
bool ProcessInput(UtInput &aInput, const TypeManager *aTypeManager)
Definition WsfRigidBodySixDOF_PropulsionSystem.cpp:180
bool Initialize(int64_t aSimTime_nanosec) override
Definition WsfRigidBodySixDOF_PropulsionSystem.cpp:106
RigidBodyThrustProducerObject::ThrustControlInputValueData * mThrottleSettingReverser
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:197
RigidBodyPropulsionSystem & operator=(const RigidBodyPropulsionSystem &other)=delete
bool mThrustReverserSet
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:201
RigidBodyThrustProducerObject::ThrustControlInputValueData * mThrottleSettingYaw
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:198
bool mThrustVectorPitchSet
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:203
RigidBodyThrustProducerObject::ThrustControlInputValueData * mThrottleSettingAB
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:196
std::vector< std::unique_ptr< RigidBodyThrustProducerObject > > mEngineList
Definition WsfRigidBodySixDOF_PropulsionSystem.hpp:190
Definition WsfSixDOF_ThrustProducerObject.hpp:35
Definition WsfSixDOF_TypeManager.hpp:32
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition WsfRigidBodySixDOF_ThrustProducerObject.hpp:120