12#ifndef WSFSIXDOFROCKETSOLIDPROPELLANTENGINE_HPP
13#define WSFSIXDOFROCKETSOLIDPROPELLANTENGINE_HPP
15#include "wsf_six_dof_export.h"
21#include "UtCloneablePtr.hpp"
24#include "UtVec3dX.hpp"
44 bool Initialize(int64_t aSimTime_nanosec)
override;
55 double GetPercentMaxThrust()
const;
58 double GetFuelBurnRate_pph()
const override;
61 double GetMaximumPotentialThrust_lbs(
double aAlt_ft,
62 double aDynPress_lbsqft,
63 double aStatPress_lbssqft,
67 double aBeta_rad)
override;
70 double GetMinimumPotentialThrust_lbs(
double aAlt_ft,
71 double aDynPress_lbsqft,
72 double aStatPress_lbssqft,
76 double aBeta_rad)
override;
80 void SetThrottlePosition(
double aThrottleLeverPosition)
override;
83 double GetThrottlePosition()
const override;
86 void Ignite(int64_t aIgniteTimeInFrame_nanosec)
override;
88 void Shutdown(int64_t aTerminateTime_nanosec = 0)
override;
97 void CalculateThrust(
double aDeltaT_sec,
99 double aDynPress_lbsqft,
100 double aStatPress_lbssqft,
105 double& aForceAndMoment,
106 double& aFuelBurnRate_pps,
107 double& aFuelBurned_lbs,
108 bool aUpdateData)
override;
110 double Thrust_lbs(
double aBurnTime_Sec,
double aAlt_ft,
double& aMassFlow_pps);
112 void UpdatePropellantMass(
double aRemainingPropellant_lbs);
123 UtCloneablePtr<UtTable::Curve>
mIspAlt{
nullptr};
Engine(ThrustProducerObject *aParentObject)
Definition WsfSixDOF_Engine.cpp:16
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:33
RocketSolidPropellantEngine(ThrustProducerObject *aParentObject)
Definition WsfSixDOF_RocketSolidPropellantEngine.cpp:27
double mIspSeaLevel
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:125
bool mIsBurning
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:131
bool Initialize(int64_t aSimTime_nanosec) override
Definition WsfSixDOF_RocketSolidPropellantEngine.cpp:159
bool mGenerateSmokeTrail
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:136
UtCloneablePtr< UtTable::Curve > mThrustSeaLevelVersusTime
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:118
double mBurnTime_sec
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:132
double mIspVacuum
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:126
RocketSolidPropellantEngine & operator=(const RocketSolidPropellantEngine &other)=delete
double mLastThrust_lbs
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:129
bool ProcessInput(UtInput &aInput, TypeManager *aTypeManager) override
Definition WsfSixDOF_RocketSolidPropellantEngine.cpp:84
double mCurrentFuelBurnRate_pph
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:134
void DeriveFrom(const Engine *aSrc) override
Definition WsfSixDOF_RocketSolidPropellantEngine.cpp:56
void IgniteNow()
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:51
UtCloneablePtr< UtTable::Curve > mIspAlt
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:123
UtCloneablePtr< UtTable::Curve > mThrustVacuumVersusTime
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:119
double mRatedThrust_lbs
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:128
bool MayProduceSmokeTrail() const override
Definition WsfSixDOF_RocketSolidPropellantEngine.hpp:114
Engine * Clone() const override
Definition WsfSixDOF_RocketSolidPropellantEngine.cpp:51
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