Click or drag to resize

BallisticPropagator Class

This class calculates a ballistic trajectory (two body gravity only) between two locations on a CentralBody.
Inheritance Hierarchy

Namespace:  AGI.Foundation.Propagators
Assembly:  AGI.Foundation.Models (in AGI.Foundation.Models.dll) Version: 24.3.420.0 (24.3.420.0)
Syntax
public class BallisticPropagator : CartesianOnePointPropagator

The BallisticPropagator type exposes the following members.

Constructors
  NameDescription
Public methodBallisticPropagator
Initializes a default instance. CentralBody is set to the Earth in the CalculationContext'sCentralBodiesFacet, and GravitationalParameter is set to GravitationalParameter. InitialTime, InitialPosition, FinalTime, and InitialVelocity must be set prior to calling CreatePoint or GetEvaluator(EvaluatorGroup), either directly or through the relevant configuration methods.
Protected methodBallisticPropagator(BallisticPropagator, CopyContext)
Initializes a new instance as a copy of an existing instance.
Public methodBallisticPropagator(CentralBody, Double, JulianDate, Cartesian)
Initializes a new instance. This constructor sets the CentralBody, GravitationalParameter, InitialTime, and InitialPosition properties. FinalTime and InitialVelocity must be set prior to calling CreatePoint or GetEvaluator(EvaluatorGroup), either directly or through the relevant configuration methods.
Top
Properties
  NameDescription
Public propertyCentralBody
Gets or sets the central body that the InitialPosition and target position are located on. By default this is set to the Earth in the CentralBodiesFacet in the CalculationContext.
Public propertyFinalTime
Gets or sets the time at which the object arrives at its target position. Generally this property and InitialVelocity are calculated by calling the configuration method that corresponds to your desired constraint.
Public propertyGravitationalParameter
Gets or sets the gravitational parameter of the CentralBody. By default this is set to GravitationalParameter.
Public propertyInitialPosition
Gets or sets the initial point of the ballistic trajectory, in the CentralBody's inertial frame. You can use ConfigureInitialPositionFromCartographic(Cartographic) or ConfigureInitialPositionFromFixedCartesian(Cartesian) to easily set this property from fixed coordinates if the InitialTime has already been set.
Public propertyInitialTime
Gets or sets the time at which the object leaves the InitialPosition and begins its ballistic flight.
Public propertyInitialVelocity
Gets or sets the initial velocity of the ballistic trajectory, in the CentralBody's inertial frame. Generally this property and FinalTime are calculated by calling the configuration method that corresponds to your desired constraint.
Public propertyIsFrozen
Gets a value indicating whether this object is frozen. A frozen object cannot be modified and an ObjectFrozenException will be thrown if an attempt is made to do so.
(Inherited from DefinitionalObject.)
Top
Methods
  NameDescription
Public methodCalculateTrajectoryInformation
Creates an object that contains many metrics which describe the trajectory defined by this object. This object must be fully configured before this method is called.
Protected methodCheckForSameDefinition(BallisticPropagator)
Checks to determine if another instance has the same definition as this instance and returns if it does. Derived classes MUST override this method and check all new fields introduced by the derived class for definitional equivalence. It is NOT necessary to check base class fields because the base class will already have done that. When overriding this method, you should NOT call the base implementation because it will return for all derived-class instances. Derived classes should check the type of other to preserve the symmetric nature of IsSameDefinition(Object).
Protected methodCheckForSameDefinition(CartesianOnePointPropagator)
Checks to determine if another instance has the same definition as this instance and returns if it does. Derived classes MUST override this method and check all new fields introduced by the derived class for definitional equivalence. It is NOT necessary to check base class fields because the base class will already have done that. When overriding this method, you should NOT call the base implementation because it will return for all derived-class instances. Derived classes should check the type of other to preserve the symmetric nature of IsSameDefinition(Object).
(Overrides CartesianOnePointPropagatorCheckForSameDefinition(CartesianOnePointPropagator).)
Protected methodCheckForSameDefinition(DefinitionalObject)
Checks to determine if another instance has the same definition as this instance and returns if it does. Derived classes MUST override this method and check all new fields introduced by the derived class for definitional equivalence. It is NOT necessary to check base class fields because the base class will already have done that. When overriding this method, you should NOT call the base implementation because it will return for all derived-class instances. Derived classes should check the type of other to preserve the symmetric nature of IsSameDefinition(Object).
(Inherited from CartesianOnePointPropagator.)
Public methodClone
Clones this object using the specified context.
(Overrides DefinitionalObjectClone(CopyContext).)
Protected methodComputeCurrentDefinitionHashCode
Computes a hash code based on the current properties of this object. Derived classes MUST override this method and compute a hash code that combines: a unique hash code seed, the base implementation result, and the hash codes of all new fields introduced by the derived class which are used in the CheckForSameDefinition(DefinitionalObject) method.
(Overrides CartesianOnePointPropagatorComputeCurrentDefinitionHashCode.)
Public methodConfigureForMinimumEccentricity(Cartesian)
Populates the InitialVelocity and FinalTime values for the trajectory with the minimum orbital eccentricity. With an initial and final point on the surface of the central body this will correspond to a trajectory that skims the surface of the body. This trajectory is mainly used to determine the absolute lower bounds for a reasonable flight duration for a specific initial and final point.
Public methodConfigureForMinimumEccentricity(Cartographic)
Populates the InitialVelocity and FinalTime values for the trajectory with the minimum orbital eccentricity. With an initial and final point on the surface of the central body this will correspond to a trajectory that skims the surface of the body. This trajectory is mainly used to determine the absolute lower bounds for a reasonable flight duration for a specific initial and final point.
Public methodConfigureForMinimumEnergy(Cartesian)
Populates the InitialVelocity and FinalTime values for the trajectory with the minimum orbital energy. This will also correspond to the minimum delta-V required. All other properties must be set prior to calling this method, either directly, on construction, or by using ConfigureInitialPositionFromCartographic(Cartographic) or ConfigureInitialPositionFromFixedCartesian(Cartesian)
Public methodConfigureForMinimumEnergy(Cartographic)
Populates the InitialVelocity and FinalTime values for the trajectory with the minimum orbital energy. This will also correspond to the minimum delta-V required. All other properties must be set prior to calling this method, either directly, on construction, or by using ConfigureInitialPositionFromCartographic(Cartographic) or ConfigureInitialPositionFromFixedCartesian(Cartesian)
Public methodConfigureFromApogeeAltitude(Cartesian, Double)
Populates the InitialVelocity and FinalTime values for the trajectory which, at apogee, reaches the specified altitude.
Public methodConfigureFromApogeeAltitude(Cartographic, Double)
Populates the InitialVelocity and FinalTime values for the trajectory which, at apogee, reaches the specified altitude.
Public methodConfigureFromDeltaV(Cartesian, Double, Boolean)
Populates the InitialVelocity and FinalTime values for a trajectory which begins with the specified delta-V in the fixed frame. There will typically be two solutions with the same delta-V, highArc specifies whether to choose the trajectory that attains a higher or lower altitude. If the specified delta-V is too small for a valid trajectory then the minimum energy solution will be calculated InsufficientDeltaV will be returned.
Public methodConfigureFromDeltaV(Cartographic, Double, Boolean)
Populates the InitialVelocity and FinalTime values for a trajectory which begins with the specified velocity in the fixed frame. There will typically be two solutions with the same delta-V, highArc specifies whether to choose the trajectory that attains a higher or lower altitude. If the specified delta-V is too small for a valid trajectory then the minimum energy solution will be calculated InsufficientDeltaV will be returned.
Public methodConfigureFromFlightDuration(Cartesian, Duration)
Populates the InitialVelocity and FinalTime values for the trajectory with the specified flight duration. If this duration is too short for a valid trajectory then the minimum eccentricity solution will be calculated and InsufficientFlightDuration will be returned.
Public methodConfigureFromFlightDuration(Cartographic, Duration)
Populates the InitialVelocity and FinalTime values for the trajectory with the specified flight duration. If this duration is too short for a valid trajectory then the minimum eccentricity solution will be calculated and InsufficientFlightDuration will be returned.
Public methodConfigureInitialPositionFromCartographic
Populates the InitialPosition property with the position in the inertial frame which corresponds to the given position in the fixed frame at InitialTime. The InitialTime must be set prior to calling this method.
Public methodConfigureInitialPositionFromFixedCartesian
Populates the InitialPosition property with the position in the inertial frame which corresponds to the given position in the fixed frame at InitialTime. The InitialTime must be set prior to calling this method.
Public methodCreatePoint
Creates a Point defining the motion of an object following the calculated trajectory. This object must be fully configured before this method is called.
(Overrides CartesianOnePointPropagatorCreatePoint.)
Public methodEnumerateDependencies
Enumerates the dependencies of this object by calling EnumerateT(T) for each object that this object directly depends upon. Derived classes which contain additional dependencies MUST override this method, call the base implementation, and enumerate dependencies introduced by the derived class.
(Overrides DefinitionalObjectEnumerateDependencies(DependencyEnumerator).)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodFreeze
Freezes this object. Further attempts to modify it will result in an ObjectFrozenException.
(Inherited from DefinitionalObject.)
Protected methodFreezeAggregatedObjects
Called by Freeze to also freeze any objects that are considered to be a part of this object. Derived classes which contain additional aggregated objects MUST override this method, call the base implementation, and freeze aggregated objects introduced by the derived class. The objects that need to be frozen in this method are frequently created in this object's constructor and are not settable via properties.
(Inherited from DefinitionalObject.)
Public methodGetDefinitionHashCode
Gets a hash code representing the definition of this object.
(Inherited from DefinitionalObject.)
Public methodGetEvaluator

Gets an evaluator that can propagate at individual dates.

This evaluator propagates the orbit state. The result of evaluating will be a MotionT corresponding to the orbital state at the given JulianDate expressed in the propagator's ReferenceFrame.

Note: when evaluating with this evaluator, it may be more efficient to specify times using an arithmetically safe TimeStandard to avoid the need to convert in order to perform the propagation. The length of a time step may be different in different TimeStandards. So be careful when specifying times.

(Inherited from CartesianOnePointPropagator.)
Public methodGetEvaluator(EvaluatorGroup)

Gets an evaluator that can propagate at individual dates.

This evaluator propagates the orbit state from the InitialTime to the FinalTime based on the InitialPosition, InitialVelocity, and GravitationalParameter. The result of evaluating will be a Motion<Cartesian> corresponding to the orbital position and velocity at the given JulianDate expressed in the propagator's ReferenceFrame.

(Overrides CartesianOnePointPropagatorGetEvaluator(EvaluatorGroup).)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Protected methodGetMotionReferenceFrame
Gets the reference frame in which the motion is defined.
(Overrides CartesianOnePointPropagatorGetMotionReferenceFrame.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIsSameDefinition
Determines if this object has the same definition as another object.
(Inherited from DefinitionalObject.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPropagate(JulianDate, JulianDate, Duration, Int32, ReferenceFrame)

Calculates position (and zero or more derivatives) for regular time steps over an interval.

Note: when propagating, it may be more efficient to specify times using an arithmetically safe TimeStandard to avoid the need to convert in order to perform the propagation. The length of a time step may be different in different TimeStandards. So be careful when specifying times.

(Inherited from CartesianOnePointPropagator.)
Public methodPropagate(JulianDate, JulianDate, Duration, Int32, ReferenceFrame, ITrackCalculationProgress)

Calculates position (and zero or more derivatives) for regular time steps over an interval.

Note: when evaluating with this evaluator, it may be more efficient to specify times using an arithmetically safe TimeStandard to avoid the need to convert in order to perform the propagation. The length of a time step may be different in different TimeStandards. So be careful when specifying times.

(Inherited from CartesianOnePointPropagator.)
Protected methodThrowIfFrozen
Throws ObjectFrozenException if this object IsFrozen. This method should be called from any method or property that modifies this object.
(Inherited from DefinitionalObject.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
See Also