12#ifndef WSFROCKETORBITALMANEUVERING_HPP
13#define WSFROCKETORBITALMANEUVERING_HPP
15#include "wsf_space_export.h"
32 bool Initialize(
const UtCalendar& aEpoch)
override;
46 const double GetTotalMass()
const {
return mRocket.GetTotalMass(); }
60 double GetDuration(
double aTotalMass,
double aDeltaV)
const;
61 double GetDeltaV(
double aTotalMass,
double aDuration)
const;
69 double GetSpecificImpulse()
const;
71 double Thrust(
double aTotalMass,
double aDuration,
double& aDeltaV);
108 double Thrust(
double aDuration,
double& aDeltaV);
110 double GetDeltaV(
double aDuration)
const;
120 typedef std::vector<Stage> Stages;
121 double GetTotalMass(
const Stages::iterator aFromStage)
const;
125 Stages::iterator mCurrentStageIter;
virtual bool ReduceAvailableDeltaV_By(double aDeltaV)
Definition WsfOrbitalManeuvering.cpp:91
virtual double GetRequiredDuration(double aDeltaV) const =0
Given a delta-v, return the required time to complete the maneuver.
virtual double GetAvailableDuration() const
Return the available duration corresponding with the available delta-v.
Definition WsfOrbitalManeuvering.cpp:84
bool ProcessInput(UtInput &aInput) override
Definition WsfOrbitalManeuvering.cpp:28
WsfOrbitalManeuvering * Clone() const override=0
virtual double GetAvailableDeltaV() const
Definition WsfOrbitalManeuvering.cpp:78
virtual bool Initialize(const UtCalendar &aEpoch)
Definition WsfOrbitalManeuvering.cpp:43
virtual double GetRequiredDeltaV(double aDuration) const =0
Given a maneuver duration, return the necessary delta-v.
virtual void SetPlatformAttributes(WsfPlatform *aPlatform) const
Definition WsfOrbitalManeuvering.hpp:43
virtual bool PerformStagingOperation()
Default method returns false (see WsfRocketOrbitalManeuvering).
Definition WsfOrbitalManeuvering.cpp:166
WsfOrbitalManeuvering()=default
Definition WsfRocketOrbitalManeuvering.hpp:98
double GetAvailableDuration() const
Definition WsfRocketOrbitalManeuvering.cpp:392
double GetDuration(double aDeltaV) const
Definition WsfRocketOrbitalManeuvering.cpp:372
double GetPayloadMass() const
Return the payload mass, which is the total mass of all subsequent stages, if any.
Definition WsfRocketOrbitalManeuvering.cpp:440
double Thrust(double aDuration, double &aDeltaV)
Definition WsfRocketOrbitalManeuvering.cpp:361
double GetEmptyMass() const
Definition WsfRocketOrbitalManeuvering.cpp:434
double GetTotalMass() const
Return the total mass of the rocket, including all stages.
Definition WsfRocketOrbitalManeuvering.cpp:415
double GetAvailableDeltaV() const
Return the total delta-v available for the entire multi-stage rocket.
Definition WsfRocketOrbitalManeuvering.cpp:385
Rocket & operator=(const Rocket &)=delete
bool Initialize()
Definition WsfRocketOrbitalManeuvering.cpp:313
double GetDeltaV(double aDuration) const
Definition WsfRocketOrbitalManeuvering.cpp:402
bool ProcessInput(UtInput &aInput)
Definition WsfRocketOrbitalManeuvering.cpp:49
Rocket()
Definition WsfRocketOrbitalManeuvering.cpp:305
bool PerformStagingOperation()
Perform a staging event for the rocket. If no other stages are present, false is returned.
Definition WsfRocketOrbitalManeuvering.cpp:457
double GetFuelMass() const
Return the fuel mass, considered to be the fuel for this stage only.
Definition WsfRocketOrbitalManeuvering.cpp:426
double GetBurnRate() const
Definition WsfRocketOrbitalManeuvering.hpp:67
double mBurnRate
The rate of fuel expenditure (Kg/Sec); this can be provided or derived from the exhaust velocity.
Definition WsfRocketOrbitalManeuvering.hpp:87
double mFuelMass
Definition WsfRocketOrbitalManeuvering.hpp:80
double GetDuration(double aTotalMass, double aDeltaV) const
Definition WsfRocketOrbitalManeuvering.cpp:288
double GetEmptyMass() const
Definition WsfRocketOrbitalManeuvering.hpp:64
double GetFuelMass() const
Definition WsfRocketOrbitalManeuvering.hpp:65
bool Initialize()
Definition WsfRocketOrbitalManeuvering.cpp:144
double GetExhaustVelocity() const
Definition WsfRocketOrbitalManeuvering.hpp:70
double mThrust
The thrust (N); this must be provided.
Definition WsfRocketOrbitalManeuvering.hpp:90
double GetThrust() const
Definition WsfRocketOrbitalManeuvering.hpp:68
double mEmptyMass
Definition WsfRocketOrbitalManeuvering.hpp:76
double GetDeltaV(double aTotalMass, double aDuration) const
Definition WsfRocketOrbitalManeuvering.cpp:299
double mTotalMass
Definition WsfRocketOrbitalManeuvering.hpp:84
double GetTotalMass() const
Definition WsfRocketOrbitalManeuvering.hpp:66
Stage()
Definition WsfRocketOrbitalManeuvering.cpp:134
double mExhaustVelocity
The exhaust velocity (m/s); this can be provided or derived from the burn rate.
Definition WsfRocketOrbitalManeuvering.hpp:93
double GetAvailableDeltaV(double aTotalMass) const
Definition WsfRocketOrbitalManeuvering.cpp:294
double GetAvailableDuration() const
Definition WsfRocketOrbitalManeuvering.hpp:63
bool ProcessInput(UtInput &aInput)
Definition WsfRocketOrbitalManeuvering.cpp:241
WsfRocketOrbitalManeuvering()=default
WsfRocketOrbitalManeuvering & operator=(const WsfRocketOrbitalManeuvering &)=delete
const double GetTotalMass() const
Definition WsfRocketOrbitalManeuvering.hpp:46