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, setSystemOfEquations
public 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 ICloneWithContext
clone
in class NumericalIntegrator
context
- The context in which to create the copy.public double getCurrentStepSize()
getCurrentStepSize
in class NumericalIntegrator
public void updateSavedDerivatives(double[] derivativeCorrections)
updateSavedDerivatives
in class MultipleStepIntegrator
derivativeCorrections
- The corrections to the last step's derivatives.public void initialize(double x, double[] y)
initialize
in class NumericalIntegrator
x
- 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 NumericalIntegrator
public 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 NumericalIntegrator
public 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 NumericalIntegrator
stepSize
- The increment made to the InitialIndependentVariableValue
(get
/ set
)
to transition to the new FinalIndependentVariableValue
(get
/ set
).