T - the type of the field elementspublic abstract class AdamsFieldIntegrator<T extends RealFieldElement<T>> extends MultistepFieldIntegrator<T>
Adams-Bashforth and
Adams-Moulton integrators.nordsieck, scaledmainSetDimension, scalAbsoluteTolerance, scalRelativeTolerance, vecAbsoluteTolerance, vecRelativeTolerance| Constructor and Description |
|---|
AdamsFieldIntegrator(Field<T> field,
String name,
int nSteps,
int order,
double minStep,
double maxStep,
double[] vecAbsoluteTolerance,
double[] vecRelativeTolerance)
Build an Adams integrator with the given order and step control parameters.
|
AdamsFieldIntegrator(Field<T> field,
String name,
int nSteps,
int order,
double minStep,
double maxStep,
double scalAbsoluteTolerance,
double scalRelativeTolerance)
Build an Adams integrator with the given order and step control parameters.
|
| Modifier and Type | Method and Description |
|---|---|
protected Array2DRowFieldMatrix<T> |
initializeHighOrderDerivatives(T h,
T[] t,
T[][] y,
T[][] yDot)
Initialize the high order scaled derivatives at step start.
|
abstract FieldODEStateAndDerivative<T> |
integrate(FieldExpandableODE<T> equations,
FieldODEState<T> initialState,
T finalTime)
Integrate the differential equations up to the given time.
|
Array2DRowFieldMatrix<T> |
updateHighOrderDerivativesPhase1(Array2DRowFieldMatrix<T> highOrder)
Update the high order scaled derivatives for Adams integrators (phase 1).
|
void |
updateHighOrderDerivativesPhase2(T[] start,
T[] end,
Array2DRowFieldMatrix<T> highOrder)
Update the high order scaled derivatives Adams integrators (phase 2).
|
computeStepGrowShrinkFactor, getMaxGrowth, getMinReduction, getNSteps, getSafety, getStarterIntegrator, rescale, setMaxGrowth, setMinReduction, setSafety, setStarterIntegrator, startfilterStep, getMaxStep, getMinStep, initializeStep, resetInternalState, sanityChecks, setInitialStepSize, setStepSizeControl, setStepSizeControlacceptStep, addEventHandler, addEventHandler, addStepHandler, clearEventHandlers, clearStepHandlers, computeDerivatives, getCurrentSignedStepsize, getCurrentStepStart, getEquations, getEvaluations, getEvaluationsCounter, getEventHandlers, getField, getMaxEvaluations, getName, getStepHandlers, getStepSize, getStepStart, initIntegration, isLastStep, resetOccurred, setIsLastStep, setMaxEvaluations, setStateInitialized, setStepSize, setStepStartpublic AdamsFieldIntegrator(Field<T> field, String name, int nSteps, int order, double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) throws NumberIsTooSmallException
field - field to which the time and state vector elements belongname - name of the methodnSteps - number of steps of the method excluding the one being computedorder - order of the methodminStep - minimal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than thismaxStep - maximal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than thisscalAbsoluteTolerance - allowed absolute errorscalRelativeTolerance - allowed relative errorNumberIsTooSmallException - if order is 1 or lesspublic AdamsFieldIntegrator(Field<T> field, String name, int nSteps, int order, double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) throws IllegalArgumentException
field - field to which the time and state vector elements belongname - name of the methodnSteps - number of steps of the method excluding the one being computedorder - order of the methodminStep - minimal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than thismaxStep - maximal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than thisvecAbsoluteTolerance - allowed absolute errorvecRelativeTolerance - allowed relative errorIllegalArgumentException - if order is 1 or lesspublic abstract FieldODEStateAndDerivative<T> integrate(FieldExpandableODE<T> equations, FieldODEState<T> initialState, T finalTime) throws NumberIsTooSmallException, DimensionMismatchException, MaxCountExceededException, NoBracketingException
This method solves an Initial Value Problem (IVP).
Since this method stores some internal state variables made
available in its public interface during integration (FirstOrderFieldIntegrator.getCurrentSignedStepsize()), it is not thread-safe.
equations - differential equations to integrateinitialState - initial state (time, primary and secondary state vectors)finalTime - target time for the integration
(can be set to a value smaller than t0 for backward integration)finalTime if
integration reached its target, but may be different if some FieldEventHandler stops it at some point.NumberIsTooSmallException - if integration step is too smallMaxCountExceededException - if the number of functions evaluations is exceededNoBracketingException - if the location of an event cannot be bracketedDimensionMismatchExceptionprotected Array2DRowFieldMatrix<T> initializeHighOrderDerivatives(T h, T[] t, T[][] y, T[][] yDot)
initializeHighOrderDerivatives in class MultistepFieldIntegrator<T extends RealFieldElement<T>>h - step size to use for scalingt - first steps timesy - first steps statesyDot - first steps derivativespublic Array2DRowFieldMatrix<T> updateHighOrderDerivativesPhase1(Array2DRowFieldMatrix<T> highOrder)
The complete update of high order derivatives has a form similar to:
rn+1 = (s1(n) - s1(n+1)) P-1 u + P-1 A P rnthis method computes the P-1 A P rn part.
highOrder - high order scaled derivatives
(h2/2 y'', ... hk/k! y(k))updateHighOrderDerivativesPhase2(RealFieldElement[], RealFieldElement[], Array2DRowFieldMatrix)public void updateHighOrderDerivativesPhase2(T[] start, T[] end, Array2DRowFieldMatrix<T> highOrder)
The complete update of high order derivatives has a form similar to:
rn+1 = (s1(n) - s1(n+1)) P-1 u + P-1 A P rnthis method computes the (s1(n) - s1(n+1)) P-1 u part.
Phase 1 of the update must already have been performed.
start - first order scaled derivatives at step startend - first order scaled derivatives at step endhighOrder - high order scaled derivatives, will be modified
(h2/2 y'', ... hk/k! y(k))updateHighOrderDerivativesPhase1(Array2DRowFieldMatrix)Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.