Class FieldExpandableODE<T extends CalculusFieldElement<T>>

  • Type Parameters:
    T - the type of the field elements

    public class FieldExpandableODE<T extends CalculusFieldElement<T>>
    extends Object
    This class represents a combined set of first order differential equations, with at least a primary set of equations expandable by some sets of secondary equations.

    One typical use case is the computation of the Jacobian matrix for some ODE. In this case, the primary set of equations corresponds to the raw ODE, and we add to this set another bunch of secondary equations which represent the Jacobian matrix of the primary set.

    We want the integrator to use only the primary set to estimate the errors and hence the step sizes. It should not use the secondary equations in this computation. The integrator will be able to know where the primary set ends and so where the secondary sets begin.

    See Also:
    FieldOrdinaryDifferentialEquation, FieldSecondaryODE
    • Constructor Detail

      • FieldExpandableODE

        public FieldExpandableODE​(FieldOrdinaryDifferentialEquation<T> primary)
        Build an expandable set from its primary ODE set.
        Parameters:
        primary - the primary set of differential equations to be integrated.
    • Method Detail

      • getPrimary

        public FieldOrdinaryDifferentialEquation<T> getPrimary()
        Get the primary set of differential equations to be integrated.
        Returns:
        primary set of differential equations to be integrated
        Since:
        2.2
      • getMapper

        public FieldEquationsMapper<T> getMapper()
        Get the mapper for the set of equations.
        Returns:
        mapper for the set of equations
      • init

        public void init​(FieldODEState<T> s0,
                         T finalTime)
        Initialize equations at the start of an ODE integration.
        Parameters:
        s0 - state at integration start
        finalTime - target time for the integration
        Throws:
        MathIllegalStateException - if the number of functions evaluations is exceeded
        MathIllegalArgumentException - if arrays dimensions do not match equations settings
      • computeDerivatives

        public T[] computeDerivatives​(T t,
                                      T[] y)
                               throws MathIllegalArgumentException,
                                      MathIllegalStateException
        Get the current time derivative of the complete state vector.
        Parameters:
        t - current value of the independent time variable
        y - array containing the current value of the complete state vector
        Returns:
        time derivative of the complete state vector
        Throws:
        MathIllegalStateException - if the number of functions evaluations is exceeded
        MathIllegalArgumentException - if arrays dimensions do not match equations settings