WSF
WsfAtmosphericDragTerm Class Reference

An orbital dynamics term that represents the drag experienced by the spacecraft. More...

#include <WsfAtmosphericDragTerm.hpp>

Inheritance diagram for WsfAtmosphericDragTerm:
Collaboration diagram for WsfAtmosphericDragTerm:

Public Member Functions

 WsfAtmosphericDragTerm ()=default
 WsfAtmosphericDragTerm (const WsfAtmosphericDragTerm &aOther)=default
 ~WsfAtmosphericDragTerm () override=default
bool ProcessInput (UtInput &aInput) override
WsfAtmosphericDragTermClone () const override
const char * GetScriptClassName () const override
UtVec3d ComputeAcceleration (double aMass, const UtCalendar &aTime, const UtVec3d &aPosition, const UtVec3d &aVelocity) const override
bool Initialize (const WsfOrbitalDynamics &aDynamics) override
double GetDragCoefficient () const
 Return the drag coefficient used by this term.
void SetDragCoefficient (double aDragCoefficient)
 Set the drag coefficient used by this term.
double GetCrossSectionalArea () const
 Return the cross sectional area in m^2 used by this term.
void SetCrossSectionalArea (double aCrossSectionalArea)
const std::string & GetAtmosphereModelName () const
 Get the name of the atmosphere model used by this term to compute the density.
void SetAtmosphereModelName (const std::string &aModelName)
 Set the name of the atmosphere model used by this term to compute the density.
std::string GetTermType () const override
 Return a string indicating the type of term.
Public Member Functions inherited from WsfOrbitalDynamicsTerm
 WsfOrbitalDynamicsTerm ()
 WsfOrbitalDynamicsTerm (const WsfOrbitalDynamicsTerm &aOther)
WsfOrbitalDynamicsTermoperator= (const WsfOrbitalDynamicsTerm &aOther)=delete
const char * GetScriptClassName () const override
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)

Static Public Attributes

static constexpr const char * cTYPE {"atmospheric_drag"}

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Protected Member Functions inherited from WsfOrbitalDynamicsTerm
const WsfOrbitalDynamicsGetDynamics () const
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Detailed Description

An orbital dynamics term that represents the drag experienced by the spacecraft.

Constructor & Destructor Documentation

◆ WsfAtmosphericDragTerm() [1/2]

WsfAtmosphericDragTerm::WsfAtmosphericDragTerm ( )
default

Referenced by Clone(), and WsfAtmosphericDragTerm().

◆ WsfAtmosphericDragTerm() [2/2]

WsfAtmosphericDragTerm::WsfAtmosphericDragTerm ( const WsfAtmosphericDragTerm & aOther)
default

◆ ~WsfAtmosphericDragTerm()

WsfAtmosphericDragTerm::~WsfAtmosphericDragTerm ( )
overridedefault

Member Function Documentation

◆ Clone()

WsfAtmosphericDragTerm * WsfAtmosphericDragTerm::Clone ( ) const
inlineoverridevirtual

Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.

Implements WsfOrbitalDynamicsTerm.

References WsfAtmosphericDragTerm().

◆ ComputeAcceleration()

UtVec3d WsfAtmosphericDragTerm::ComputeAcceleration ( double aMass,
const UtCalendar & aTime,
const UtVec3d & aPosition,
const UtVec3d & aVelocity ) const
overridevirtual

Return the acceleration in the ECI frame.

This routine computes the acceleration represented by this term that would be experienced by a body of the given aMass at the given aTime, aPosition and aVelocity. The given aPosition and aVelocity are in the ECI frame, and the returned acceleration is also in the ECI frame.

Parameters
aMass- The mass of the object that would experience this dynamical term.
aTime- The time at which the acceleration is being computed.
aPosition- The position of the body that would experience this acceleration.
aVelocity- The velocity of the body that would experience this acceleration.
Returns
- The acceleration corresponding to this dynamical term.

Implements WsfOrbitalDynamicsTerm.

References WsfOrbitalDynamicsTerm::GetDynamics().

◆ GetAtmosphereModelName()

const std::string & WsfAtmosphericDragTerm::GetAtmosphereModelName ( ) const
inline

Get the name of the atmosphere model used by this term to compute the density.

◆ GetCrossSectionalArea()

double WsfAtmosphericDragTerm::GetCrossSectionalArea ( ) const
inline

Return the cross sectional area in m^2 used by this term.

◆ GetDragCoefficient()

double WsfAtmosphericDragTerm::GetDragCoefficient ( ) const
inline

Return the drag coefficient used by this term.

◆ GetScriptClassName()

const char * WsfAtmosphericDragTerm::GetScriptClassName ( ) const
inlineoverride

◆ GetTermType()

std::string WsfAtmosphericDragTerm::GetTermType ( ) const
inlineoverridevirtual

Return a string indicating the type of term.

Implements WsfOrbitalDynamicsTerm.

References cTYPE.

◆ Initialize()

bool WsfAtmosphericDragTerm::Initialize ( const WsfOrbitalDynamics & aDynamics)
overridevirtual

Initialize the term.

This is called when the owning WsfOrbitalDynamics is initialized. This enables terms that might need to inspect their owning dynamics.

Parameters
aDynamics- the dynamics to which this term belongs.

Reimplemented from WsfOrbitalDynamicsTerm.

References wsf::space::AtmosphereSimulationExtension::Get(), wsf::space::AtmosphereSimulationExtension::GetAtmosphere(), WsfOrbitalDynamics::GetSimulation(), and WsfOrbitalDynamicsTerm::Initialize().

◆ ProcessInput()

bool WsfAtmosphericDragTerm::ProcessInput ( UtInput & aInput)
overridevirtual

Process input from a generic source.

Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.

Parameters
aInputa reference to a UtInput object.
Returns
'true' if the command was one recognized by the class or 'false' if not.
Exceptions
UtInput::ExceptionBase(or an object derived from it) if the command was recognized but contains some sort of error.
Note
If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.

Reimplemented from WsfObject.

◆ SetAtmosphereModelName()

void WsfAtmosphericDragTerm::SetAtmosphereModelName ( const std::string & aModelName)
inline

Set the name of the atmosphere model used by this term to compute the density.

◆ SetCrossSectionalArea()

void WsfAtmosphericDragTerm::SetCrossSectionalArea ( double aCrossSectionalArea)
inline

◆ SetDragCoefficient()

void WsfAtmosphericDragTerm::SetDragCoefficient ( double aDragCoefficient)
inline

Set the drag coefficient used by this term.

Member Data Documentation

◆ cTYPE

const char* WsfAtmosphericDragTerm::cTYPE {"atmospheric_drag"}
staticconstexpr

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