WSF
wsf::space::DescendingRadiusCondition Class Reference

A condition indicating the point at which the propagator passes a given radius while moving closer to the central body. More...

#include <WsfSpaceOrbitalPropagatorCondition.hpp>

Inheritance diagram for wsf::space::DescendingRadiusCondition:
Collaboration diagram for wsf::space::DescendingRadiusCondition:

Public Member Functions

 DescendingRadiusCondition ()
DescendingRadiusConditionClone () const override
std::pair< bool, double > InitialGuess (const UtOrbitalPropagatorBase &aPropagator) const override
bool Objective (UtOrbitalPropagatorBase &aPropagator, const UtCalendar &aBaseEpoch, double aOffsetTime) const override
void Accept (OrbitalPropagatorConditionVisitor &aVisitor) override
 Accept a visitor.
std::string GetConditionString () const override
 Return the string identifying the condition.
Public Member Functions inherited from wsf::space::RadiusCondition
 RadiusCondition ()=default
bool ProcessInput (UtInput &aInput) override
UtLengthValue GetRadius () const
void SetRadius (const UtLengthValue &aRadius)
bool ValidateParameterRanges () const override
Public Member Functions inherited from wsf::space::OrbitalPropagatorOptimizingCondition
bool GetTimeToCondition (const UtOrbitalPropagatorBase &aPropagator, double &aTimeToCondition) const final
 This template pattern method performs the search for the time at which the condition obtains.
virtual bool HandleSpecialCases (const UtOrbitalPropagatorBase &aPropagator, double &aTimeToCondition) const
Public Member Functions inherited from wsf::space::OrbitalPropagatorCondition
unsigned GetOrbitNumber () const
 Return the orbit number.
void SetOrbitNumber (unsigned aOrbitNumber)
 Set the orbit number.
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 {"descending_radius"}

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
Protected Attributes inherited from wsf::space::RadiusCondition
UtLengthValue mRadius {}
Protected Attributes inherited from wsf::space::OrbitalPropagatorCondition
unsigned mOrbitNumber {0}

Detailed Description

A condition indicating the point at which the propagator passes a given radius while moving closer to the central body.

Constructor & Destructor Documentation

◆ DescendingRadiusCondition()

wsf::space::DescendingRadiusCondition::DescendingRadiusCondition ( )
inline

References cTYPE, and WsfObject::SetType().

Referenced by Clone().

Member Function Documentation

◆ Accept()

void wsf::space::DescendingRadiusCondition::Accept ( OrbitalPropagatorConditionVisitor & aVisitor)
overridevirtual

◆ Clone()

DescendingRadiusCondition * wsf::space::DescendingRadiusCondition::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 wsf::space::OrbitalPropagatorCondition.

References DescendingRadiusCondition().

◆ GetConditionString()

std::string wsf::space::DescendingRadiusCondition::GetConditionString ( ) const
inlineoverridevirtual

Return the string identifying the condition.

Implements wsf::space::OrbitalPropagatorCondition.

◆ InitialGuess()

std::pair< bool, double > wsf::space::DescendingRadiusCondition::InitialGuess ( const UtOrbitalPropagatorBase & aPropagator) const
overridevirtual

Produce an initial guess for when the condition might obtain. The initial guess produced by this method is used to set the initial search area for the root. In some rare cases, it may be impossible to form an initial guess.

Parameters
aPropagator- The propagator for which an initial guess is to be returned.
Returns
- a pair, with a first member set to true if an initial guess was able to be computed, and a second member set to the time of the initial guess.

Implements wsf::space::OrbitalPropagatorOptimizingCondition.

References wsf::space::OrbitalPropagatorCondition::mOrbitNumber, wsf::space::RadiusCondition::mRadius, and ok.

◆ Objective()

bool wsf::space::DescendingRadiusCondition::Objective ( UtOrbitalPropagatorBase & aPropagator,
const UtCalendar & aBaseEpoch,
double aOffsetTime ) const
overridevirtual

This function is the objective function whose root gives the time of the condition. The provided propagator will be advanced to aOffsetTime seconds after the provided aBaseEpoch and the resulting state will be used to evaluate the condition. The condition needs to be formulated so that a boolean is returned, where the value of the boolean indicates if aOffsetTime is in a region before or after the root. The condition can return either true or false for values before the root, and the choice is up to the convenience of the implementer.

Parameters
aPropagator- The propagator for which the objective is being examined.
aBaseEpoch- A base epoch from which the offset will be specified.
aOffsetTime- The offset from the base epoch at which the objective will be computed.
Returns
If the given aOffsetTime is before the root.

Implements wsf::space::OrbitalPropagatorOptimizingCondition.

References wsf::space::RadiusCondition::mRadius.

Member Data Documentation

◆ cTYPE


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