Example usage for org.apache.commons.math3.ode ExpandableStatefulODE addSecondaryEquations

List of usage examples for org.apache.commons.math3.ode ExpandableStatefulODE addSecondaryEquations

Introduction

In this page you can find the example usage for org.apache.commons.math3.ode ExpandableStatefulODE addSecondaryEquations.

Prototype

public int addSecondaryEquations(final SecondaryEquations secondary) 

Source Link

Document

Add a set of secondary equations to be integrated along with the primary set.

Usage

From source file:org.orekit.propagation.integration.AbstractIntegratedPropagator.java

/** Create an ODE with all equations.
 * @param integ numerical integrator to use for propagation.
 * @return a new ode/*from  w  w  w  .j a va 2  s .  c  o  m*/
 * @exception OrekitException if initial state cannot be mapped
 */
private ExpandableStatefulODE createODE(final AbstractIntegrator integ) throws OrekitException {

    // retrieve initial state
    final double[] initialStateVector = new double[getBasicDimension()];
    stateMapper.mapStateToArray(getInitialState(), initialStateVector);

    // main part of the ODE
    final ExpandableStatefulODE ode = new ExpandableStatefulODE(
            new ConvertedMainStateEquations(getMainStateEquations(integ)));
    ode.setTime(0.0);
    ode.setPrimaryState(initialStateVector);

    // secondary part of the ODE
    for (int i = 0; i < additionalEquations.size(); ++i) {
        final AdditionalEquations additional = additionalEquations.get(i);
        final double[] data = getInitialState().getAdditionalState(additional.getName());
        final SecondaryEquations secondary = new ConvertedSecondaryStateEquations(additional, data.length);
        ode.addSecondaryEquations(secondary);
        ode.setSecondaryState(i, data);
    }

    return ode;

}