Interface SecondaryEquations


  • public interface SecondaryEquations
    This interface allows users to add secondary differential equations to a primary set of differential equations.

    In some cases users may need to integrate some problem-specific equations along with a primary set of differential equations. One example is optimal control where adjoined parameters linked to the minimized hamiltonian must be integrated.

    This interface allows users to add such equations to a primary set of first order differential equations thanks to the ExpandableStatefulODE.addSecondaryEquations(SecondaryEquations) method.

    Since:
    3.0
    See Also:
    ExpandableStatefulODE
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void computeDerivatives​(double t, double[] primary, double[] primaryDot, double[] secondary, double[] secondaryDot)
      Compute the derivatives related to the secondary state parameters.
      int getDimension()
      Get the dimension of the secondary state parameters.
    • Method Detail

      • getDimension

        int getDimension()
        Get the dimension of the secondary state parameters.
        Returns:
        dimension of the secondary state parameters
      • computeDerivatives

        void computeDerivatives​(double t,
                                double[] primary,
                                double[] primaryDot,
                                double[] secondary,
                                double[] secondaryDot)
                         throws MaxCountExceededException,
                                DimensionMismatchException
        Compute the derivatives related to the secondary state parameters.
        Parameters:
        t - current value of the independent time variable
        primary - array containing the current value of the primary state vector
        primaryDot - array containing the derivative of the primary state vector
        secondary - array containing the current value of the secondary state vector
        secondaryDot - placeholder array where to put the derivative of the secondary state vector
        Throws:
        MaxCountExceededException - if the number of functions evaluations is exceeded
        DimensionMismatchException - if arrays dimensions do not match equations settings