public class GaussJacksonIntegrator extends MultipleStepIntegrator
RungeKuttaFehlberg78Integrator to start the integration and a summed Adams first order integration algorithm.
For more detailed information, see: "Implementation of Gauss-Jackson Integration for Orbit Propagation." Berry, Matthew M. and Liam M. Healy. The Journal of the Astronautical Sciences, Vol. 52, No. 3, July-September 2004, pp. 331-357.
| Modifier | Constructor and Description |
|---|---|
|
GaussJacksonIntegrator()
Initializes a new instance.
|
protected |
GaussJacksonIntegrator(GaussJacksonIntegrator existingInstance,
CopyContext context)
Initializes a new instance as a copy of an existing instance.
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone(CopyContext context)
Create a copy of this integrator.
|
double |
getCurrentStepSize()
Gets the current (positive) size of the step which the integrator will use for the next integration step.
|
void |
initialize(double x,
double[] y)
Initialize the integrator's initial independent and dependent variables and reset the integration parameters.
|
void |
integrate()
Perform an integration step moving the independent and dependent variables from their
initial (the final values of the previous step) to their new final values,
using the
CurrentStepSize (get). |
void |
integrate(double stepSize)
Perform an integration step moving the independent and dependent variables from their
initial (the final values of the previous step) to their new final values.
|
void |
reintegrate(double stepSize)
Repeats the last integration of the differential equations.
|
protected void |
startNextStep()
This performs the task of setting the Initial values to the previous Final values prior to taking the next step.
|
void |
updateSavedDerivatives(double[] derivativeCorrections)
This method is used in order to update the last step's derivatives with any post integration corrections.
|
getDimension, getDirection, getFinalDependentVariableValues, getFinalIndependentVariableValue, getInitialDependentVariableValues, getInitialIndependentVariableValue, getInitialStepSize, getIsThreadSafe, getPreviousStepSize, getStepSizeInformation, getSystemOfEquations, setDirection, setFinalDependentVariableValues, setFinalIndependentVariableValue, setInitialDependentVariableValues, setInitialIndependentVariableValue, setInitialStepSize, setStepSizeInformation, setSystemOfEquationspublic GaussJacksonIntegrator()
protected GaussJacksonIntegrator(@Nonnull GaussJacksonIntegrator 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.public Object clone(CopyContext context)
clone in interface ICloneWithContextclone in class NumericalIntegratorcontext - The context in which to create the copy.public double getCurrentStepSize()
getCurrentStepSize in class NumericalIntegratorpublic void updateSavedDerivatives(double[] derivativeCorrections)
updateSavedDerivatives in class MultipleStepIntegratorderivativeCorrections - The corrections to the last step's derivatives.public void initialize(double x,
double[] y)
initialize in class NumericalIntegratorx - The value of the initial independent variable.y - The values for the initial dependent variables.IllegalStateException - Thrown if the SystemOfEquations (get / set) does not
represent a first or second order system (or mixed order of both first and second orders).protected void startNextStep()
startNextStep in class NumericalIntegratorpublic void integrate()
Perform an integration step moving the independent and dependent variables from their
initial (the final values of the previous step) to their new final values,
using the CurrentStepSize (get).
When overriding this method, GaussJacksonIntegrator.startNextStep() should be called prior to
integration.
integrate in class NumericalIntegratorpublic void integrate(double stepSize)
Perform an integration step moving the independent and dependent variables from their initial (the final values of the previous step) to their new final values.
When overriding this method, GaussJacksonIntegrator.startNextStep() should be called prior to
integration. Also note that the CurrentStepSize (get)
property should be unaffected by the stepSize parameter.
public void reintegrate(double stepSize)
Repeats the last integration of the differential equations.
When overriding this method, note that the CurrentStepSize (get)
property should be unaffected by the stepSize parameter.
reintegrate in class NumericalIntegratorstepSize - The increment made to the InitialIndependentVariableValue (get / set)
to transition to the new FinalIndependentVariableValue (get / set).