Class AdamsFieldIntegrator<T extends RealFieldElement<T>>

    • Constructor Detail

      • AdamsFieldIntegrator

        public AdamsFieldIntegrator​(Field<T> field,
                                    String name,
                                    int nSteps,
                                    int order,
                                    double minStep,
                                    double maxStep,
                                    double scalAbsoluteTolerance,
                                    double scalRelativeTolerance)
                             throws MathIllegalArgumentException
        Build an Adams integrator with the given order and step control parameters.
        Parameters:
        field - field to which the time and state vector elements belong
        name - name of the method
        nSteps - number of steps of the method excluding the one being computed
        order - order of the method
        minStep - minimal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this
        maxStep - maximal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this
        scalAbsoluteTolerance - allowed absolute error
        scalRelativeTolerance - allowed relative error
        Throws:
        MathIllegalArgumentException - if order is 1 or less
      • AdamsFieldIntegrator

        public AdamsFieldIntegrator​(Field<T> field,
                                    String name,
                                    int nSteps,
                                    int order,
                                    double minStep,
                                    double maxStep,
                                    double[] vecAbsoluteTolerance,
                                    double[] vecRelativeTolerance)
                             throws IllegalArgumentException
        Build an Adams integrator with the given order and step control parameters.
        Parameters:
        field - field to which the time and state vector elements belong
        name - name of the method
        nSteps - number of steps of the method excluding the one being computed
        order - order of the method
        minStep - minimal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this
        maxStep - maximal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this
        vecAbsoluteTolerance - allowed absolute error
        vecRelativeTolerance - allowed relative error
        Throws:
        IllegalArgumentException - if order is 1 or less
    • Method Detail

      • initializeHighOrderDerivatives

        protected Array2DRowFieldMatrix<T> initializeHighOrderDerivatives​(T h,
                                                                          T[] t,
                                                                          T[][] y,
                                                                          T[][] yDot)
        Initialize the high order scaled derivatives at step start.
        Specified by:
        initializeHighOrderDerivatives in class MultistepFieldIntegrator<T extends RealFieldElement<T>>
        Parameters:
        h - step size to use for scaling
        t - first steps times
        y - first steps states
        yDot - first steps derivatives
        Returns:
        Nordieck vector at first step (h2/2 y''n, h3/6 y'''n ... hk/k! y(k)n)
      • updateHighOrderDerivativesPhase2

        public void updateHighOrderDerivativesPhase2​(T[] start,
                                                     T[] end,
                                                     Array2DRowFieldMatrix<T> highOrder)
        Update the high order scaled derivatives Adams integrators (phase 2).

        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 rn
         
        this method computes the (s1(n) - s1(n+1)) P-1 u part.

        Phase 1 of the update must already have been performed.

        Parameters:
        start - first order scaled derivatives at step start
        end - first order scaled derivatives at step end
        highOrder - high order scaled derivatives, will be modified (h2/2 y'', ... hk/k! y(k))
        See Also:
        updateHighOrderDerivativesPhase1(Array2DRowFieldMatrix)