Click or drag to resize

StoppablePropagator Class

A propagator that wraps some type that generates states and will sample some derived value from those states searching for events and eventually an event that will stop propagation with StoppingConditionEvaluators.
Inheritance Hierarchy

Namespace:  AGI.Foundation.Propagators
Assembly:  AGI.Foundation.Models (in AGI.Foundation.Models.dll) Version: 24.1.418.0 (24.1.418.0)
Syntax
public abstract class StoppablePropagator : IEvaluator, 
	IAvailability, IThreadAware, ICloneWithContext, IDisposable

The StoppablePropagator type exposes the following members.

Constructors
Properties
  NameDescription
Public propertyAdapters
Gets the list of StateElementAdapters that must be applied to the passed in initial state. Note these should not be applied to the stored initial state if no initial state was passed in.
Public propertyCurrentDate
Gets the date of the current state. This will get updated automatically after TakeStep(Duration, Boolean) and Restep(Duration) is called.
Public propertyCurrentState
Gets or sets the most recently computed state from the propagator. Assume that this state is mutable and that the instance will be updated at every step and restep. For performance considerations, make the derived state type mutable and update a single instance if possible.
Public propertyGroup
Gets the group that contains this evaluator.
Protected propertyInitialPropagationDirection
Public propertyIsThreadSafe
Gets a value indicating whether the methods on this instance are safe to call from multiple threads simultaneously.
Public propertyPreviousDate
Gets or sets the date of the previously propagated state. This will get updated automatically right after TakeStep(Duration, Boolean) is called.
Public propertyStoppingConditionEvaluators
Gets a read only collection of the stopping conditions that will be used by this propagator.
Top
Methods
  NameDescription
Protected methodAddEndOfAvailabilityStoppingConditions
Gets a pair of StoppingConditions based on the availability of this propagator. If the availability of this propagator is Infinite then no conditions will be returned. It is intended that this will be called when the concrete propagator is constructed if needed these conditions will be added to the propagator at that time. It is up types to decide if this needs to be called or not.
Public methodClone
Clones this object using the specified context.
Protected methodCreateStoppedPropagatorResult
Creates the results of the overall propagation after the stopping event has been found. This should be overridden when your propagator stores additional data during propagation that should be returned. When overriding this method, do not call the base implementation.
Public methodDispose
Releases any resources associated with this instance.
Protected methodDispose(Boolean)
Releases any resources associated with this instance.
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 methodGetAvailabilityIntervals
Gets the intervals over which data is available.
Public methodGetCachingWrapper
Gets a version of this evaluator that caches the previously computed value so that if it is evaluated twice at the same date the computation is done only once.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetInitialState
Creates the initial state from the wrapped propagator. Normal use cases will have the initial state passed into the PropagateUntilStop(ITimeBasedState, IEnumerableStoppingConditionEvaluator, IntegrationSense, Boolean, Int32, ITrackCalculationProgress) method. However should the propagator be configured to have an initial state it should be returned here.
Protected methodGetPropagatorsRecommendedStep
Gets the step size that the underlying propagator recommends to step. Note that StoppingConditions can know how to sample themselves and if their step size will be used if it is smaller than the propagators recommended value. Also when this StoppablePropagator is restepping to find the exact event, this value will be ignored.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitializePropagator
Initializes the wrapped propagator with the initial state. If the initialState is null, then it is the responsibility of the calling code for the initial state passed into the PropagateUntilStop(ITimeBasedState, IEnumerableStoppingConditionEvaluator, IntegrationSense, Boolean, Int32, ITrackCalculationProgress) method to already be in the correct ReferenceFrame or Axes.
Public methodIsAvailable
Determines if valid data is available for the given JulianDate.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPropagateUntilStop(ITimeBasedState, ITrackCalculationProgress)
Propagates forward until one of the saved StoppingConditionEvaluators are tripped. This will propagate forward in time.
Public methodPropagateUntilStop(ITimeBasedState, IntegrationSense, ITrackCalculationProgress)
Propagates until one of the saved StoppingConditionEvaluators are tripped.
Public methodPropagateUntilStop(ITimeBasedState, IEnumerableStoppingConditionEvaluator, IntegrationSense, Int32, ITrackCalculationProgress)
Propagates until one of the conditions are tripped.
Public methodPropagateUntilStop(ITimeBasedState, IEnumerableStoppingConditionEvaluator, IntegrationSense, Boolean, Int32, ITrackCalculationProgress)
Propagates until one of the conditions are tripped.
Protected methodRestep
Resteps the underlying propagator from the PreviousDate. This only needs to be overridden if the wrapped propagator keeps state and cares about taking a step vs. restepping. Do not call the base method if you override this method. A new instance of a state should always be returned by this method. Like the TakeStep(Duration, Boolean) method, no properties on this base type needs to be updated in this method. Note that the sign of the step matters, if is it negative then the step should be taken backwards.
Public methodTakeStep
Makes the propagator take a step. You do not need to update any other properties on the base type in the overridden method. Note that the sign of the step matters, if is it negative then the step should be taken backwards.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodCode exampleUpdateEvaluatorReferences
Updates the evaluator references held by this object using the reference-to-reference mapping in the specified CopyContext.
Top
Events
  NameDescription
Public eventStepTaken
Gets the instance of the event handler which will be triggered after every time this StoppablePropagator takes an integration step.
Top
See Also