WSF
WsfGuidedMover::Stage Class Reference

#include <WsfGuidedMover.hpp>

Collaboration diagram for WsfGuidedMover::Stage:

Public Types

enum  EngineType { cNONE , cROCKET , cJET }
enum  ThrustReference { cDEFAULT , cVACUUM , cSEA_LEVEL , cPAIRED }
enum  TurnMethod { cSKID_TO_TURN , cBANK_TO_TURN }

Public Member Functions

 Stage ()
 Stage (const Stage &aSrc)
 ~Stage ()
Stageoperator= (const Stage &)=delete
bool CompletePairedValues (WsfGuidedMover *aMoverPtr)
double ComputeTimeWeightedAverage (const UtTable::Curve &aCurve) const
bool ComputeUnknownValues (WsfGuidedMover *aMoverPtr, int &aRecursionDepth)
bool Initialize (double aSimTime, WsfGuidedMover *aMoverPtr, bool aShowStatus)
bool ProcessInput (UtInput &aInput)
void ShowStatus (WsfGuidedMover *aMoverPtr, ut::log::MessageStream &aMsgStream) const
double ComputeSpecificImpulse (double aAmbientPressure, double aSeaLevelPressure) const
double DetermineCurrentThrust (double aAmbientPressure, double aSeaLevelPressure, double aPhaseTime)

Input Values

EngineType mEngineType
 The type of the engine.
ThrustReference mThrustReference
 Reference for thrust.
ThrustReference mImpulseReference
 Reference for specific impulse.
double mEmptyMass
double mFuelMass
double mTotalMass
double mThrust
 The thrust (N).
double mThrustSeaLevel
 The thrust (N) at sea level.
double mThrustVacuum
 The thrust (N) in vacuum.
CurvePtr mThrustTablePtr
 Thrust as a function of time.
CurvePtr mSeaLevelThrustTablePtr
 Sea level thrust as a function of time.
CurvePtr mVacuumThrustTablePtr
 Vacuum thrust as a function of time.
double mNozzleExitArea
 The nozzle exit area (m^2).
double mSpecificImpulse
 The specific impulse (sec).
double mSpecificImpulseSeaLevel
 The specific impulse (sec) at sea level.
double mSpecificImpulseVacuum
 The specific impulse (sec) in vacuum.
double mBurnRate
 The rate of fuel expenditure (Kg/Sec).
CurvePtr mBurnRateTablePtr
 The rate of fuel expenditure as a function of time.
TablePtr mThrottlePtr
 The throttle setting.
double mThrustDuration
 The engine burn time (sec).
double mPreIgnitionCoastTime
 Coast time between separation of previous state and ignition of this stage.
double mPreSeparationCoastTime
WsfStringId mAeroId
 The string ID of the aerodynamic attributes to be used.
WsfAeromAeroPtr
 The pointer to the aerodynamic attributes to be used.
TablePtr mTimeConstantPtr
 The airframe time constant.
TablePtr mAngleOfAttackPtr
 The angle of attack.
double mMinTVC_Time
 The minimum time that thrust vector control can be used (relative to ignition start).
double mMaxTVC_Time
 The maximum time that thrust vector control can be used (relative to ignition start).
double mMaxTVC_Angle
 Maximum TVC angle.
double mLateralThrustGain
 Lateral thrust gain for TVC and divert.
double mIntegrationTimestep
 The integration timestep.
double mProbabilityOfSeparation
 The probability of separation of this stage from subsequent stages.
double mProbabilityOfIgnition
 The probability of ignition of this stage.
TurnMethod mTurnMethod
 The visual method for turns (skid or bank).
bool mReverseThrust
 'true' if the direction of the thrust should be reversed.
bool mFinalBoostStage

Derived values

double mPayloadMass

Member Enumeration Documentation

◆ EngineType

Enumerator
cNONE 
cROCKET 
cJET 

◆ ThrustReference

Enumerator
cDEFAULT 
cVACUUM 
cSEA_LEVEL 
cPAIRED 

◆ TurnMethod

Enumerator
cSKID_TO_TURN 
cBANK_TO_TURN 

Constructor & Destructor Documentation

◆ Stage() [1/2]

◆ Stage() [2/2]

◆ ~Stage()

WsfGuidedMover::Stage::~Stage ( )

References mAeroPtr.

Member Function Documentation

◆ CompletePairedValues()

bool WsfGuidedMover::Stage::CompletePairedValues ( WsfGuidedMover * aMoverPtr)

Complete paired values. If scalar reference values of thrust or specific impulse are employed this routine will attempt to derive any missing values and verify the consistency of known values. This routine may be called multiple times, but at the end, if ANY reference values were defined then ALL of them should be known and the reference for both pairs should be 'cPAIRED'.

This routine does nothing if thrust tables are employed.

Parameters
aMoverPtrPointer to the parent mover.
Returns
true if successful, false if not.

References cPAIRED, cSEA_LEVEL, cVACUUM, WsfGuidedMoverBase::mAtmosphere, mImpulseReference, mNozzleExitArea, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrustReference, mThrustSeaLevel, mThrustVacuum, ok, and WsfGuidedMover::WsfGuidedMover().

Referenced by ComputeUnknownValues(), Initialize(), and operator=().

◆ ComputeSpecificImpulse()

double WsfGuidedMover::Stage::ComputeSpecificImpulse ( double aAmbientPressure,
double aSeaLevelPressure ) const

◆ ComputeTimeWeightedAverage()

double WsfGuidedMover::Stage::ComputeTimeWeightedAverage ( const UtTable::Curve & aCurve) const

Compute the time-weighted average of a function represented by the supplied curve. It assumes the independent variable is 'time'.

Referenced by Initialize(), and operator=().

◆ ComputeUnknownValues()

bool WsfGuidedMover::Stage::ComputeUnknownValues ( WsfGuidedMover * aMoverPtr,
int & aRecursionDepth )

Compute unknown variables. This routine recursively calls itself attempting to determine as many unknown variables as possible. It is first called from Stage::Initialize with only the input values known.

References cDEFAULT, CompletePairedValues(), ComputeUnknownValues(), cPAIRED, cSEA_LEVEL, cVACUUM, mBurnRate, mEmptyMass, mFuelMass, mImpulseReference, mSpecificImpulse, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrust, mThrustDuration, mThrustReference, mThrustSeaLevel, mThrustVacuum, mTotalMass, ok, and WsfGuidedMover::WsfGuidedMover().

Referenced by ComputeUnknownValues(), Initialize(), and operator=().

◆ DetermineCurrentThrust()

double WsfGuidedMover::Stage::DetermineCurrentThrust ( double aAmbientPressure,
double aSeaLevelPressure,
double aPhaseTime )

◆ Initialize()

bool WsfGuidedMover::Stage::Initialize ( double aSimTime,
WsfGuidedMover * aMoverPtr,
bool aShowStatus )

◆ operator=()

◆ ProcessInput()

◆ ShowStatus()

Member Data Documentation

◆ mAeroId

WsfStringId WsfGuidedMover::Stage::mAeroId

The string ID of the aerodynamic attributes to be used.

Referenced by Initialize(), ProcessInput(), Stage(), and Stage().

◆ mAeroPtr

WsfAero* WsfGuidedMover::Stage::mAeroPtr

The pointer to the aerodynamic attributes to be used.

Referenced by WsfGuidedMover::ComputeAeroForces(), Initialize(), Stage(), Stage(), and ~Stage().

◆ mAngleOfAttackPtr

TablePtr WsfGuidedMover::Stage::mAngleOfAttackPtr

The angle of attack.

Referenced by WsfGuidedMover::PostUpdate(), ProcessInput(), Stage(), and Stage().

◆ mBurnRate

double WsfGuidedMover::Stage::mBurnRate

The rate of fuel expenditure (Kg/Sec).

Referenced by ComputeUnknownValues(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().

◆ mBurnRateTablePtr

CurvePtr WsfGuidedMover::Stage::mBurnRateTablePtr

The rate of fuel expenditure as a function of time.

Referenced by WsfGuidedMover::GetHorizontalThrust(), Initialize(), ProcessInput(), Stage(), and Stage().

◆ mEmptyMass

double WsfGuidedMover::Stage::mEmptyMass

Mass of the THIS stage minus the mass of the fuel on THIS.

Note
This does NOT include the mass of the subsequent stages.

Referenced by ComputeUnknownValues(), WsfGuidedMover::Initialize(), Initialize(), WsfGuidedMover::InitiateStage(), ProcessInput(), ShowStatus(), Stage(), and Stage().

◆ mEngineType

EngineType WsfGuidedMover::Stage::mEngineType

The type of the engine.

Referenced by ProcessInput(), Stage(), and Stage().

◆ mFinalBoostStage

bool WsfGuidedMover::Stage::mFinalBoostStage

'true' if this is the final stage of 'boost' phase. Normally the last stage with 'thrust' defines the when boost phase is complete, but the user can define an earlier stage defines the completion.

Referenced by WsfGuidedMover::InitiateStage(), ProcessInput(), Stage(), and Stage().

◆ mFuelMass

double WsfGuidedMover::Stage::mFuelMass

Mass of just the fuel on THIS stage.

Note
This does NOT include the mass of the subsequent stages.

Referenced by ComputeUnknownValues(), WsfGuidedMover::Initialize(), Initialize(), WsfGuidedMover::InitiateStage(), ProcessInput(), ShowStatus(), Stage(), and Stage().

◆ mImpulseReference

ThrustReference WsfGuidedMover::Stage::mImpulseReference

◆ mIntegrationTimestep

double WsfGuidedMover::Stage::mIntegrationTimestep

◆ mLateralThrustGain

double WsfGuidedMover::Stage::mLateralThrustGain

Lateral thrust gain for TVC and divert.

Referenced by WsfGuidedMover::ComputeVectoredThrustForces(), ProcessInput(), Stage(), and Stage().

◆ mMaxTVC_Angle

double WsfGuidedMover::Stage::mMaxTVC_Angle

◆ mMaxTVC_Time

double WsfGuidedMover::Stage::mMaxTVC_Time

The maximum time that thrust vector control can be used (relative to ignition start).

Referenced by WsfGuidedMover::ComputeVectoredThrustForces(), ProcessInput(), Stage(), and Stage().

◆ mMinTVC_Time

double WsfGuidedMover::Stage::mMinTVC_Time

The minimum time that thrust vector control can be used (relative to ignition start).

Referenced by WsfGuidedMover::ComputeVectoredThrustForces(), ProcessInput(), Stage(), and Stage().

◆ mNozzleExitArea

double WsfGuidedMover::Stage::mNozzleExitArea

◆ mPayloadMass

double WsfGuidedMover::Stage::mPayloadMass

The sum of the initial masses of any subsequent stages (kg) Consider anything stacked on top of this stage as "payload".

Referenced by WsfGuidedMover::Initialize(), WsfGuidedMover::InitiateStage(), Stage(), and Stage().

◆ mPreIgnitionCoastTime

double WsfGuidedMover::Stage::mPreIgnitionCoastTime

Coast time between separation of previous state and ignition of this stage.

Referenced by WsfGuidedMover::InitiateStage(), ProcessInput(), Stage(), and Stage().

◆ mPreSeparationCoastTime

double WsfGuidedMover::Stage::mPreSeparationCoastTime

Coast time from burnout of this stage to separation.

Note
This is effectively ignored for the last stage.

Referenced by WsfGuidedMover::InitiateStage(), ProcessInput(), Stage(), and Stage().

◆ mProbabilityOfIgnition

double WsfGuidedMover::Stage::mProbabilityOfIgnition

The probability of ignition of this stage.

Referenced by ProcessInput(), Stage(), and Stage().

◆ mProbabilityOfSeparation

double WsfGuidedMover::Stage::mProbabilityOfSeparation

The probability of separation of this stage from subsequent stages.

Referenced by ProcessInput(), Stage(), and Stage().

◆ mReverseThrust

bool WsfGuidedMover::Stage::mReverseThrust

'true' if the direction of the thrust should be reversed.

Referenced by WsfGuidedMover::GetHorizontalThrust(), ProcessInput(), Stage(), and Stage().

◆ mSeaLevelThrustTablePtr

CurvePtr WsfGuidedMover::Stage::mSeaLevelThrustTablePtr

Sea level thrust as a function of time.

Referenced by DetermineCurrentThrust(), Initialize(), ProcessInput(), Stage(), and Stage().

◆ mSpecificImpulse

◆ mSpecificImpulseSeaLevel

double WsfGuidedMover::Stage::mSpecificImpulseSeaLevel

◆ mSpecificImpulseVacuum

double WsfGuidedMover::Stage::mSpecificImpulseVacuum

◆ mThrottlePtr

TablePtr WsfGuidedMover::Stage::mThrottlePtr

◆ mThrust

◆ mThrustDuration

double WsfGuidedMover::Stage::mThrustDuration

◆ mThrustReference

ThrustReference WsfGuidedMover::Stage::mThrustReference

◆ mThrustSeaLevel

double WsfGuidedMover::Stage::mThrustSeaLevel

◆ mThrustTablePtr

CurvePtr WsfGuidedMover::Stage::mThrustTablePtr

Thrust as a function of time.

Referenced by DetermineCurrentThrust(), Initialize(), ProcessInput(), Stage(), and Stage().

◆ mThrustVacuum

double WsfGuidedMover::Stage::mThrustVacuum

◆ mTimeConstantPtr

TablePtr WsfGuidedMover::Stage::mTimeConstantPtr

The airframe time constant.

Referenced by WsfGuidedMover::GetTimeConstant(), ProcessInput(), Stage(), and Stage().

◆ mTotalMass

double WsfGuidedMover::Stage::mTotalMass

The total mass of the THIS stage (empty mass plus fuel mass).

Note
This does NOT include the mass of the subsequent stages.

Referenced by ComputeUnknownValues(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().

◆ mTurnMethod

TurnMethod WsfGuidedMover::Stage::mTurnMethod

The visual method for turns (skid or bank).

Referenced by WsfGuidedMover::PostUpdate(), ProcessInput(), Stage(), and Stage().

◆ mVacuumThrustTablePtr

CurvePtr WsfGuidedMover::Stage::mVacuumThrustTablePtr

Vacuum thrust as a function of time.

Referenced by DetermineCurrentThrust(), Initialize(), ProcessInput(), Stage(), and Stage().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved