|
WSF
|
#include <WsfSixDOF_PropulsionSystem.hpp>


Classes | |
| struct | FuelTransfer |
| struct | ThrustProducerInfo |
| struct | FuelTankData |
| struct | TankMatching |
Public Member Functions | |
| PropulsionSystem ()=default | |
| PropulsionSystem & | operator= (const PropulsionSystem &other)=delete |
| void | SetParentVehicle (Mover *aParentVehicle) override |
| virtual bool | Initialize (int64_t aSimTime_nanosec)=0 |
| virtual void | Update (int64_t aSimTime_nanosec) |
| void | SetLastSimTime (int64_t aLastSimTime_nanosec) |
| const std::unordered_map< std::string, UtCloneablePtr< FuelTank > > & | GetFuelTanks () const |
| FuelTank * | GetFuelTank (const std::string &aName) const |
| virtual ThrustProducerObject * | GetThrustProducerObjectByName (const std::string &aName) const =0 |
| virtual ThrustProducerObject * | GetThrustProducerByIndex (size_t aIndex) const =0 |
| virtual void | SetThrottleLeverPosition (double aThrottleLeverPosition)=0 |
| virtual void | EnableThrustVectoring (bool aEnableThrustVectoring)=0 |
| bool | ThrustVectoringEnabled () const |
| virtual bool | AfterburnerIsPresent () const =0 |
| virtual size_t | GetNumThrustProducers () const =0 |
| size_t | GetNumFuelTanks () const |
| virtual void | Ignite (int64_t aIgniteTimeInFrame_nanosec)=0 |
| virtual void | Shutdown (int64_t aTerminateTime_nanosec=0)=0 |
| bool | RemoveFuelTankByName (std::string aName) |
| bool | AddFuelTank (std::unique_ptr< FuelTank > aFuelTank) |
| bool | AddFuelTransfer (const std::string &aTransferName, const std::string &aSourceTankName, const std::string &aTargetTankName) |
| bool | AddFuelTransferAndConnect (const std::string &aTransferName, const std::string &aSourceTankName, const std::string &aTargetTankName) |
| bool | RemoveFuelTransfer (const std::string &aTransferName) |
| bool | ModifyFuelQuantity (const std::string &aTankName, double aQty_lbs) |
| bool | FuelTransferNameUnique (const std::string &aName) const |
| virtual bool | IsProducingThrust () const =0 |
| virtual bool | SetFuelFeed (std::string &aEngineName, std::string aFuelTankName)=0 |
| virtual bool | SetFuelFeed (std::string aFuelTankName)=0 |
| double | GetInternalFuelTankCapacity_lbs () const |
| double | GetCurrentInternalFuelTankQuantity_lbs () const |
| double | AddFuelQuantity_lbs (double aFuelToAdd_lbs) |
| double | FillAllTanks (double aPercentFull) |
| void | EmptyAllTanks () |
| const MassProperties | GetMassProperties () const |
| virtual bool | AnEngineIsOperating (bool aTestSubobjects=false) const =0 |
| virtual bool | AnEngineIsSmoking (bool aTestSubobjects=false) const =0 |
| virtual bool | AnEngineHasAfterburnerOn (bool aTestSubobjects=false) const =0 |
| virtual bool | AnEngineIsContrailing (bool aTestSubobjects=false) const =0 |
| virtual bool | AnEngineIsEmittingSmokeTrail (bool aTestSubobjects=false) const =0 |
| virtual void | MakeAnEngineSmoke (int aEngineIndex)=0 |
| Public Member Functions inherited from wsf::six_dof::Object | |
| Object ()=default | |
| virtual | ~Object ()=default |
| virtual std::string | GetName () const |
| virtual void | SetName (const std::string &aName) |
| virtual Mover * | GetParentVehicle () const |
Protected Member Functions | |
| PropulsionSystem (const PropulsionSystem &aSrc) | |
| void | RemoveInvalidFuelTransfers () |
| Protected Member Functions inherited from wsf::six_dof::Object | |
| Object (const Object &)=default | |
Protected Attributes | |
| std::vector< std::unique_ptr< FuelTransfer > > | mFuelTransferList |
| std::unordered_map< std::string, UtCloneablePtr< FuelTank > > | mFuelTankMap |
| int64_t | mLastSimTime_nanosec = 0 |
| double | mPropulsionSystemThrottleLeverPosition = 0.0 |
| bool | mThrottleLeverPositionSet = false |
| bool | mEnableThrustVectoring = false |
| Protected Attributes inherited from wsf::six_dof::Object | |
| std::string | mObjName = "" |
| Mover * | mParentVehicle = nullptr |
|
default |
Referenced by wsf::six_dof::PointMassPropulsionSystem::AnEngineHasAfterburnerOn(), wsf::six_dof::RigidBodyPropulsionSystem::AnEngineHasAfterburnerOn(), wsf::six_dof::PointMassPropulsionSystem::AnEngineIsContrailing(), wsf::six_dof::RigidBodyPropulsionSystem::AnEngineIsContrailing(), wsf::six_dof::PointMassPropulsionSystem::AnEngineIsEmittingSmokeTrail(), wsf::six_dof::RigidBodyPropulsionSystem::AnEngineIsEmittingSmokeTrail(), wsf::six_dof::PointMassPropulsionSystem::AnEngineIsOperating(), wsf::six_dof::RigidBodyPropulsionSystem::AnEngineIsOperating(), wsf::six_dof::PointMassPropulsionSystem::AnEngineIsSmoking(), wsf::six_dof::RigidBodyPropulsionSystem::AnEngineIsSmoking(), MakeAnEngineSmoke(), operator=(), wsf::six_dof::PointMassPropulsionSystem::PointMassPropulsionSystem(), PropulsionSystem(), and wsf::six_dof::RigidBodyPropulsionSystem::RigidBodyPropulsionSystem().
|
protected |
| double wsf::six_dof::PropulsionSystem::AddFuelQuantity_lbs | ( | double | aFuelToAdd_lbs | ) |
References FillAllTanks(), GetCurrentInternalFuelTankQuantity_lbs(), and GetInternalFuelTankCapacity_lbs().
Referenced by SetFuelFeed().
| bool wsf::six_dof::PropulsionSystem::AddFuelTank | ( | std::unique_ptr< FuelTank > | aFuelTank | ) |
| bool wsf::six_dof::PropulsionSystem::AddFuelTransfer | ( | const std::string & | aTransferName, |
| const std::string & | aSourceTankName, | ||
| const std::string & | aTargetTankName ) |
References FuelTransferNameUnique(), and mFuelTransferList.
Referenced by Shutdown().
| bool wsf::six_dof::PropulsionSystem::AddFuelTransferAndConnect | ( | const std::string & | aTransferName, |
| const std::string & | aSourceTankName, | ||
| const std::string & | aTargetTankName ) |
References FuelTransferNameUnique(), mFuelTransferList, and wsf::six_dof::Object::mParentVehicle.
Referenced by Shutdown().
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
| void wsf::six_dof::PropulsionSystem::EmptyAllTanks | ( | ) |
References mFuelTankMap.
Referenced by SetFuelFeed().
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
| double wsf::six_dof::PropulsionSystem::FillAllTanks | ( | double | aPercentFull | ) |
References mFuelTankMap.
Referenced by wsf::six_dof::Mover::AddFuelQuantity_lbs(), AddFuelQuantity_lbs(), wsf::six_dof::RigidBodyTableTool::CalculateStickForZeroMoment(), and SetFuelFeed().
| bool wsf::six_dof::PropulsionSystem::FuelTransferNameUnique | ( | const std::string & | aName | ) | const |
| double wsf::six_dof::PropulsionSystem::GetCurrentInternalFuelTankQuantity_lbs | ( | ) | const |
References mFuelTankMap.
Referenced by AddFuelQuantity_lbs(), and SetFuelFeed().
| wsf::six_dof::FuelTank * wsf::six_dof::PropulsionSystem::GetFuelTank | ( | const std::string & | aName | ) | const |
References mFuelTankMap.
Referenced by ModifyFuelQuantity().
|
inline |
References mFuelTankMap.
Referenced by wsf::six_dof::RigidBodyTableTool::CalculateStickForZeroMoment().
| double wsf::six_dof::PropulsionSystem::GetInternalFuelTankCapacity_lbs | ( | ) | const |
References mFuelTankMap.
Referenced by AddFuelQuantity_lbs(), and SetFuelFeed().
| const wsf::six_dof::MassProperties wsf::six_dof::PropulsionSystem::GetMassProperties | ( | ) | const |
References wsf::six_dof::FuelTank::CalculateCurrentMassProperties(), wsf::six_dof::FuelTank::GetMassProperties(), and mFuelTankMap.
Referenced by SetFuelFeed().
| size_t wsf::six_dof::PropulsionSystem::GetNumFuelTanks | ( | ) | const |
References mFuelTankMap.
Referenced by wsf::six_dof::RigidBodyTableTool::CalculateStickForZeroMoment(), and GetNumThrustProducers().
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
References GetNumFuelTanks().
Referenced by wsf::six_dof::MoverTestObject::GetLevelFlightFuelBurnRate(), wsf::six_dof::MoverTestObject::GetLevelFlightHorizontalThrust(), wsf::six_dof::Mover::IsExternalFuelTank(), wsf::six_dof::RigidBodyMoverTestObject::TurnRateAt(), wsf::six_dof::PointMassMoverTestObject::TurnRateWithConditions(), and wsf::six_dof::RigidBodyMoverTestObject::TurnRateWithConditions().
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
Referenced by wsf::six_dof::MoverTestObject::GetLevelFlightFuelBurnRate(), wsf::six_dof::MoverTestObject::GetLevelFlightHorizontalThrust(), wsf::six_dof::RigidBodyMoverTestObject::TurnRateAt(), wsf::six_dof::PointMassMoverTestObject::TurnRateWithConditions(), and wsf::six_dof::RigidBodyMoverTestObject::TurnRateWithConditions().
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
References PropulsionSystem(), and RemoveInvalidFuelTransfers().
| bool wsf::six_dof::PropulsionSystem::ModifyFuelQuantity | ( | const std::string & | aTankName, |
| double | aQty_lbs ) |
References GetFuelTank(), and wsf::six_dof::FuelTank::SetCurrentFuelQuantity().
Referenced by Shutdown().
|
delete |
References PropulsionSystem().
| bool wsf::six_dof::PropulsionSystem::RemoveFuelTankByName | ( | std::string | aName | ) |
References mFuelTankMap.
Referenced by Shutdown().
| bool wsf::six_dof::PropulsionSystem::RemoveFuelTransfer | ( | const std::string & | aTransferName | ) |
References mFuelTransferList.
Referenced by Shutdown().
|
protected |
References wsf::six_dof::FuelTank::FuelFlowPathIntact(), and mFuelTransferList.
Referenced by MakeAnEngineSmoke(), and Update().
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
|
pure virtual |
|
inline |
References mLastSimTime_nanosec.
|
overridevirtual |
Reimplemented from wsf::six_dof::Object.
Reimplemented in wsf::six_dof::RigidBodyPropulsionSystem.
References mFuelTankMap, and wsf::six_dof::Object::SetParentVehicle().
Referenced by wsf::six_dof::PointMassPropulsionSystem::SetParentVehicle(), and wsf::six_dof::RigidBodyPropulsionSystem::SetParentVehicle().
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
|
pure virtual |
Implemented in wsf::six_dof::PointMassPropulsionSystem, and wsf::six_dof::RigidBodyPropulsionSystem.
References AddFuelTank(), AddFuelTransfer(), AddFuelTransferAndConnect(), FuelTransferNameUnique(), ModifyFuelQuantity(), RemoveFuelTankByName(), and RemoveFuelTransfer().
Referenced by wsf::six_dof::Mover::Initialize().
|
inline |
References mEnableThrustVectoring.
|
virtual |
References wsf::six_dof::FuelTank::CalculateFuelTransfer(), wsf::six_dof::PropulsionSystem::FuelTankData::fuelActuallyProvided_lbs, wsf::six_dof::FuelTank::GetCurrentFuelQuantity_lbs(), wsf::six_dof::FuelTank::GetFuelCapacity_lbs(), wsf::six_dof::FuelTank::GetMaxFuelTransferRate_pps(), wsf::six_dof::Object::GetParentVehicle(), mFuelTransferList, mLastSimTime_nanosec, RemoveInvalidFuelTransfers(), wsf::six_dof::PropulsionSystem::FuelTankData::sourceTank, wsf::six_dof::PropulsionSystem::TankMatching::sourceTankList, wsf::six_dof::PropulsionSystem::TankMatching::targetAddTank, wsf::six_dof::utils::TimeToTime(), and wsf::six_dof::FuelTank::UpdateFuelTransfer().
|
protected |
Referenced by wsf::six_dof::PointMassPropulsionSystem::EnableThrustVectoring(), wsf::six_dof::RigidBodyPropulsionSystem::EnableThrustVectoring(), wsf::six_dof::RigidBodyPropulsionSystem::ProcessInput(), wsf::six_dof::RigidBodyPropulsionSystem::PropulsionCalculationsFM(), PropulsionSystem(), and ThrustVectoringEnabled().
|
protected |
Referenced by AddFuelTank(), EmptyAllTanks(), FillAllTanks(), GetCurrentInternalFuelTankQuantity_lbs(), GetFuelTank(), GetFuelTanks(), GetInternalFuelTankCapacity_lbs(), GetMassProperties(), GetNumFuelTanks(), wsf::six_dof::PointMassPropulsionSystem::Initialize(), wsf::six_dof::RigidBodyPropulsionSystem::Initialize(), PropulsionSystem(), RemoveFuelTankByName(), and SetParentVehicle().
|
protected |
Referenced by AddFuelTransfer(), AddFuelTransferAndConnect(), FuelTransferNameUnique(), wsf::six_dof::PointMassPropulsionSystem::Initialize(), wsf::six_dof::RigidBodyPropulsionSystem::Initialize(), wsf::six_dof::PointMassPropulsionSystem::ProcessInput(), wsf::six_dof::RigidBodyPropulsionSystem::ProcessInput(), PropulsionSystem(), RemoveFuelTransfer(), RemoveInvalidFuelTransfers(), and Update().
|
protected |
|
protected |
Referenced by wsf::six_dof::PointMassPropulsionSystem::Ignite(), wsf::six_dof::RigidBodyPropulsionSystem::Ignite(), PropulsionSystem(), wsf::six_dof::PointMassPropulsionSystem::SetThrottleLeverPosition(), wsf::six_dof::RigidBodyPropulsionSystem::SetThrottleLeverPosition(), wsf::six_dof::PointMassPropulsionSystem::Shutdown(), and wsf::six_dof::RigidBodyPropulsionSystem::Shutdown().
|
protected |
Referenced by wsf::six_dof::PointMassPropulsionSystem::PropulsionCalculationsFM(), wsf::six_dof::RigidBodyPropulsionSystem::PropulsionCalculationsFM(), PropulsionSystem(), wsf::six_dof::PointMassPropulsionSystem::SetThrottleLeverPosition(), and wsf::six_dof::RigidBodyPropulsionSystem::SetThrottleLeverPosition().