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

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

Introduction

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

Prototype

public ExpandableStatefulODE(final FirstOrderDifferentialEquations primary) 

Source Link

Document

Build an expandable set from its primary ODE 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//www  .j ava 2s .  co  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;

}