public abstract class PropagationStateElement extends DefinitionalObject
| Modifier | Constructor and Description | 
|---|---|
protected  | 
PropagationStateElement()
Initializes a new instance. 
 | 
protected  | 
PropagationStateElement(PropagationStateElement existingInstance,
                       CopyContext context)
Initializes a new instance as a copy of an existing instance. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
protected boolean | 
checkForSameDefinition(DefinitionalObject other)
Checks to determine if another instance has the same definition as this instance and
    returns  
true if it does. | 
protected abstract boolean | 
checkForSameDefinition(PropagationStateElement other)
Checks to determine if another instance has the same definition as this instance and
    returns  
true if it does. | 
protected int | 
computeCurrentDefinitionHashCode()
Computes a hash code based on the current properties of this object. 
 | 
abstract PropagationStateElementConverter | 
getConverter(EvaluatorGroup group,
            Motion1<int[]> stateInputIndices)
Gets an instance of an output type which can convert the output of propagation
    back into the native type of this state element. 
 | 
abstract PropagationStateElementEvaluator | 
getDerivatives(EvaluatorGroup group)
This is used by the  
NumericalPropagatorDefinition to obtain an instance of a state element evaluator 
    that can compute the derivatives of this element of the state during propagation. | 
abstract int | 
getDimension()
Gets the number of parameters (per  
Order (get)) within this element. | 
String | 
getIdentification()
Gets the string identifying this instance in the overall output. 
 | 
boolean | 
getIncludeHighestDerivativeInOutput()
Gets a value indicating whether to include the derivative computed at each step with the output. 
 | 
abstract int | 
getOrder()
Gets the order of the differential equation corresponding to this element. 
 | 
abstract PropagationStateParameter | 
getStateParameter()
Gets a parameter which represents the state during propagation. 
 | 
IUpdatePriorToStep | 
getStateUpdater(EvaluatorGroup group)
By default this method returns null. 
 | 
void | 
setIdentification(String value)
Sets the string identifying this instance in the overall output. 
 | 
void | 
setIncludeHighestDerivativeInOutput(boolean value)
Sets a value indicating whether to include the derivative computed at each step with the output. 
 | 
abstract void | 
setStateParameter(PropagationStateParameter value)
Sets a parameter which represents the state during propagation. 
 | 
areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, clone, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, dictionaryItemsAreSameDefinition, enumerateDependencies, freeze, freezeAggregatedObjects, getCollectionHashCode, getCollectionHashCode, getCollectionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDictionaryHashCode, getIsFrozen, isSameDefinition, throwIfFrozenprotected PropagationStateElement()
protected PropagationStateElement(@Nonnull PropagationStateElement existingInstance, @Nonnull CopyContext context)
    See ICloneWithContext.clone(CopyContext) for more information about how to implement this constructor
    in a derived class.
existingInstance - The existing instance to copy.context - A CopyContext that controls the depth of the copy.ArgumentNullException - Thrown when existingInstance or context is null.protected final boolean checkForSameDefinition(DefinitionalObject other)
true 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 false for all derived-class instances.
    Derived classes should check the type of other to preserve the symmetric nature of IEquatableDefinition.isSameDefinition(java.lang.Object).checkForSameDefinition in class DefinitionalObjectother - The other instance to compare to this one.true if the two objects are defined equivalently; otherwise false.protected abstract boolean checkForSameDefinition(PropagationStateElement other)
true 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 false for all derived-class instances.
    Derived classes should check the type of other to preserve the symmetric nature of IEquatableDefinition.isSameDefinition(java.lang.Object).other - The other instance to compare to this one.true if the two objects are defined equivalently; otherwise false.protected int computeCurrentDefinitionHashCode()
PropagationStateElement.checkForSameDefinition(agi.foundation.infrastructure.DefinitionalObject) method.computeCurrentDefinitionHashCode in class DefinitionalObjectpublic final String getIdentification()
public final void setIdentification(String value)
public abstract int getDimension()
Order (get)) within this element.public abstract int getOrder()
public final boolean getIncludeHighestDerivativeInOutput()
Order (get) of  the differential equation.public final void setIncludeHighestDerivativeInOutput(boolean value)
Order (get) of  the differential equation.public abstract PropagationStateParameter getStateParameter()
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 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 state and all of its elements are configured with the same parameter.
    Otherwise, the state will throw an exception when creating its propagator.public abstract void setStateParameter(PropagationStateParameter value)
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 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 state and all of its elements are configured with the same parameter.
    Otherwise, the state will throw an exception when creating its propagator.@Nonnull public abstract PropagationStateElementConverter getConverter(@Nonnull EvaluatorGroup group, @Nonnull Motion1<int[]> stateInputIndices)
EvaluatorGroup.group - The evaluator group in which to configure the parameters.stateInputIndices - The set of indices corresponding to the location
    of each value or derivative of this state element in the overall state.@Nonnull public abstract PropagationStateElementEvaluator getDerivatives(@Nonnull EvaluatorGroup group)
NumericalPropagatorDefinition to obtain an instance of a state element evaluator 
    that can compute the derivatives of this element of the state during propagation.  
    It cannot be used outside of a NumericalPropagator as the geometry for the propagation state
    will be unavailable.group - The group in which to create the evaluator and its dependents.@Nullable public IUpdatePriorToStep getStateUpdater(@Nonnull EvaluatorGroup group)
IUpdatePriorToStep
    object that the NumericalPropagator will call every time step.group - The EvaluatorGroup the state updater will be part of.