T
- the type of the field elementspublic class FieldExpandableODE<T extends RealFieldElement<T>> extends Object
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.
FirstOrderFieldDifferentialEquations
,
FieldSecondaryEquations
Constructor and Description |
---|
FieldExpandableODE(FirstOrderFieldDifferentialEquations<T> primary)
Build an expandable set from its primary ODE set.
|
Modifier and Type | Method and Description |
---|---|
int |
addSecondaryEquations(FieldSecondaryEquations<T> secondary)
Add a set of secondary equations to be integrated along with the primary set.
|
T[] |
computeDerivatives(T t,
T[] y)
Get the current time derivative of the complete state vector.
|
FieldEquationsMapper<T> |
getMapper()
Get the mapper for the set of equations.
|
void |
init(T t0,
T[] y0,
T finalTime)
Initialize equations at the start of an ODE integration.
|
public FieldExpandableODE(FirstOrderFieldDifferentialEquations<T> primary)
primary
- the primary set of differential equations to be integrated.public FieldEquationsMapper<T> getMapper()
public int addSecondaryEquations(FieldSecondaryEquations<T> secondary)
secondary
- secondary equations setFieldODEState.getSecondaryState(int)
and
FieldODEStateAndDerivative.getSecondaryDerivative(int)
(beware index
0 corresponds to main state, additional states start at 1)public void init(T t0, T[] y0, T finalTime)
t0
- value of the independent time variable at integration starty0
- array containing the value of the state vector at integration startfinalTime
- target time for the integrationMaxCountExceededException
- if the number of functions evaluations is exceededDimensionMismatchException
- if arrays dimensions do not match equations settingspublic T[] computeDerivatives(T t, T[] y) throws MaxCountExceededException, DimensionMismatchException
t
- current value of the independent time variabley
- array containing the current value of the complete state vectorMaxCountExceededException
- if the number of functions evaluations is exceededDimensionMismatchException
- if arrays dimensions do not match equations settingsCopyright © 2003–2016 The Apache Software Foundation. All rights reserved.