NumericalPropagatorDefinition Class |
The definitional object that creates a NumericalPropagator.
It consists of the overall propagation state which represents individual scalar, vector, or custom parameters within IntegrationElements (which are integrated during propagation), and the AuxiliaryElements (which are not). It also contains StateCorrectors which correct the IntegrationElements and their derivatives in between propagation steps, the Epoch of the initial conditions, and the Integrator which integrates the IntegrationElements.
Call CreatePropagator in order to create the defined NumericalPropagator.
Namespace: AGI.Foundation.Propagators
The NumericalPropagatorDefinition type exposes the following members.
Name | Description | |
---|---|---|
NumericalPropagatorDefinition | Initializes a new instance. | |
NumericalPropagatorDefinition(NumericalPropagatorDefinition, CopyContext) | Initializes a new instance as a copy of an existing instance. |
Name | Description | |
---|---|---|
AuxiliaryElements |
Gets the collection of AuxiliaryStateElements which together
define the auxiliary output from the propagator. These values are computed after each step based on
the calculations performed during integration but are not integrated themselves.
| |
ComputeInitialConditionsOnCreation | Gets or sets a value indicating whether propagators created by this definition will have the initial conditions of their highest derivatives and auxiliary elements computed in their CurrentState just after creation. This is set to by default, however in some advanced use cases part of the propagation state is parameterized separately from the main propagator and not available for evaluation during the propagation creation process. If you are receiving exceptions from invalid parameterization during propagator creation setting this to is a possible fix. In that case right after the NumericalPropagator is created its CurrentState will have the correct initial state values that were specified during the initialization of the state elements. However, the indices representing the auxiliary elements, or the highest derivative information of the state elements if applicable, will read 0.0 instead of their actual value. Once propagation begins, or Reset is called the state array will have the correct values. | |
Epoch |
Gets or sets the time at which the initial conditions for each PropagationStateElement are defined.
| |
IntegrationElements |
Gets the collection of IntegrationStateElements which together
define the state for the numerical integrator.
| |
Integrator |
Gets or sets the NumericalIntegrator to use to integrate the
IntegrationElements.
| |
IsFrozen |
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.) | |
PhaseParameter |
Gets or sets a parameter which represents the propagation phase. In general,
users should never need to explicitly set this property. It should only be set
when multiple NumericalPropagator objects are running in the same EvaluatorGroup,
such as when elements of a state require additional instances of a NumericalPropagator
inside their implementation in order to produce their values. In such cases, it may
be necessary to distinguish between the phase of the exterior propagator and the
phase of the interior propagator. In these cases, it is up to the user to ensure
that both the NumericalPropagatorDefinition and all of its elements are configured with the same parameter.
Otherwise, the definition will throw an exception when creating its propagator.
| |
StateCorrectors |
Gets the collection of correctors which are called after each step but before values are recorded.
The correctors operate on the last step taken to correct the state and its derivatives for any
anomalies or constraint conditions encountered during the integration step.
| |
StateParameter |
Gets or sets a parameter which represents the state during propagation. In general,
users should never need to explicitly set this property. It should only be set
in cases where elements of a state require additional instances of a NumericalPropagator
inside their implementation in order to produce their values. In such cases, it may
be necessary to distinguish between the state of the exterior propagator and the
state of the interior propagator. In these cases, it is up to the user to ensure
that both the NumericalPropagatorDefinition and all of its elements are configured with the same parameter.
Otherwise, the definition will throw an exception when creating its propagator.
|
Name | Description | |
---|---|---|
Add(AuxiliaryStateElement) |
Adds the given auxiliary element to the set of AuxiliaryElements
which will be computed during propagation and stored in the raw state output.
| |
Add(PropagationStateCorrector) |
Adds the given state corrector to the set of StateCorrectors
which will operate on some or all of the IntegrationElements
during propagation.
| |
Add(PropagationStateElement) |
Adds the given state element to the set of IntegrationElements
to be integrated by the NumericalPropagator.
| |
CheckForSameDefinition(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).
(Overrides DefinitionalObjectCheckForSameDefinition(DefinitionalObject).) | |
CheckForSameDefinition(NumericalPropagatorDefinition) |
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).
| |
Clone |
Clones this object using the specified context.
(Overrides DefinitionalObjectClone(CopyContext).) | |
ComputeCurrentDefinitionHashCode |
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 DefinitionalObjectComputeCurrentDefinitionHashCode.) | |
CreateNumericalPropagatorState |
Creates a NumericalPropagatorState based on the current settings of this
NumericalPropagatorDefinition.
| |
CreateNumericalPropagatorState(EvaluatorGroup) |
Creates a NumericalPropagatorState based on the current settings of this
NumericalPropagatorDefinition.
| |
CreatePropagator |
Creates an object which can propagate the state over spans of time
or manually step the state from one time to the next.
| |
CreatePropagator(Boolean) |
Creates an object which can propagate the state over spans of time
or manually step the state from one time to the next.
| |
CreatePropagator(EvaluatorGroup) |
Creates an object which can propagate the state over spans of time
or manually step the state from one time to the next.
| |
CreatePropagator(Boolean, EvaluatorGroup) |
Creates an object which can propagate the state over spans of time
or manually step the state from one time to the next.
| |
CreatePropagatorWithoutComputingAuxiliaryState | Creates an object which can propagate the state over spans of time or manually step the state from one time to the next. This method differs from the similar CreatePropagator in that the resulting NumericalPropagator'sCurrentState will have a zeroed auxiliary elements. This can be necessary when working with advanced use cases where part of the propagation state is parameterized separately from the main propagator, and thus unavailable for calculating initial auxiliary elements. | |
CreatePropagatorWithoutComputingAuxiliaryState(Boolean) | Creates an object which can propagate the state over spans of time or manually step the state from one time to the next. This method differs from the similar CreatePropagator(Boolean) in that the resulting NumericalPropagator'sCurrentState will have a zeroed auxiliary elements. This can be necessary when working with advanced use cases where part of the propagation state is parameterized separately from the main propagator, and thus unavailable for calculating initial auxiliary elements. | |
CreatePropagatorWithoutComputingAuxiliaryState(EvaluatorGroup) | Creates an object which can propagate the state over spans of time or manually step the state from one time to the next. This method differs from the similar CreatePropagator(EvaluatorGroup) in that the resulting NumericalPropagator'sCurrentState will have a zeroed auxiliary elements. This can be necessary when working with advanced use cases where part of the propagation state is parameterized separately from the main propagator, and thus unavailable for calculating initial auxiliary elements. | |
CreatePropagatorWithoutComputingAuxiliaryState(Boolean, EvaluatorGroup) | Creates an object which can propagate the state over spans of time or manually step the state from one time to the next. This method differs from the similar CreatePropagator(Boolean, EvaluatorGroup) in that the resulting NumericalPropagator'sCurrentState will have a zeroed auxiliary elements. This can be necessary when working with advanced use cases where part of the propagation state is parameterized separately from the main propagator, and thus unavailable for calculating initial auxiliary elements. | |
EnumerateDependencies |
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).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
Freeze |
Freezes this object. Further attempts to modify it will result
in an ObjectFrozenException.
(Inherited from DefinitionalObject.) | |
FreezeAggregatedObjects |
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.
(Overrides DefinitionalObjectFreezeAggregatedObjects.) | |
GetDefinitionHashCode |
Gets a hash code representing the definition of this object.
(Inherited from DefinitionalObject.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
IsSameDefinition |
Determines if this object has the same definition as another object.
(Inherited from DefinitionalObject.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Remove(AuxiliaryStateElement) |
Remove the given auxiliary element from the propagation.
This will prevent the instance of this auxiliary element from being
evaluated during propagated.
| |
Remove(PropagationStateCorrector) |
Remove the given state corrector from the propagation.
This will prevent the instance of this corrector from operating on the
state elements during propagation.
| |
Remove(PropagationStateElement) |
Remove the given state element from the representation of the state.
This will prevent the instance of this state element from being
propagated.
| |
ThrowIfFrozen |
Throws ObjectFrozenException if this object IsFrozen.
This method should be called from any method or property that modifies this object.
(Inherited from DefinitionalObject.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |