T
- the type of the field elementspublic abstract class AdamsFieldIntegrator<T extends RealFieldElement<T>> extends MultistepFieldIntegrator<T>
Adams-Bashforth
and
Adams-Moulton
integrators.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 |
---|---|
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).
|
getMaxGrowth, getMinReduction, getNSteps, getSafety, getStarterIntegrator, setMaxGrowth, setMinReduction, setSafety, setStarterIntegrator
getMaxStep, getMinStep, initializeStep, setInitialStepSize, setStepSizeControl, setStepSizeControl
addEventHandler, addEventHandler, addStepHandler, clearEventHandlers, clearStepHandlers, computeDerivatives, getCurrentSignedStepsize, getCurrentStepStart, getEvaluations, getEventHandlers, getField, getMaxEvaluations, getName, getStepHandlers, setMaxEvaluations
public 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 bracketedDimensionMismatchException
public 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)
Jas4pp 1.5 © Java Analysis Studio for Particle Physics