org.simulator.math.odes
Interface RichDESystem

All Superinterfaces:
DESystem, FirstOrderDifferentialEquations, Serializable
All Known Implementing Classes:
SBMLinterpreter

public interface RichDESystem
extends DESystem

A RichDESystem is a DESystem that provides additional information besides the pure rate of change during its evaluation. For instance, such a system also computes intermediate result that might be of interest later on.

Since:
0.9
Version:
$Rev: 332 $
Author:
Andreas Dräger

Method Summary
 int getAdditionalValueCount()
          Gives the number of intermediate results that are computed by this class.
 String[] getAdditionalValueIds()
          This provides the column/row identifiers of all intermediate results: one identifier per result.
 double[] getAdditionalValues(double t, double[] Y)
          Computes and/or delivers the intermediate results at the given time and for the given results from the previous time step.
 
Methods inherited from interface org.simulator.math.odes.DESystem
containsEventsOrRules, getIdentifiers, getPositiveValueCount
 
Methods inherited from interface org.apache.commons.math.ode.FirstOrderDifferentialEquations
computeDerivatives, getDimension
 

Method Detail

getAdditionalValueIds

String[] getAdditionalValueIds()
This provides the column/row identifiers of all intermediate results: one identifier per result. This means, the length of the returned String array must equal the length of the array returned by getAdditionalValues(double, double[]).

Returns:
The identifiers of all intermediate results computed during evaluation.

getAdditionalValues

double[] getAdditionalValues(double t,
                             double[] Y)
                             throws DerivativeException
Computes and/or delivers the intermediate results at the given time and for the given results from the previous time step.

Parameters:
t - The time point for which intermediate results are to be computed.
Y - The result vector from the previous time step.
Returns:
An array of intermediate results. Simulators should call this method after computation of the next time point to avoid unnecessary re-computation. Implementing classes should store interesting intermediate results to be accessible in case time and Y are the same values than those just used for the actual computation.
Throws:
DerivativeException - If the system cannot be solved for the given configuration or no intermediate results can be computed in this step.

getAdditionalValueCount

int getAdditionalValueCount()
Gives the number of intermediate results that are computed by this class. The number returned here must equal the length of the arrays returned by the methods getAdditionalValueIds() and getAdditionalValues(double, double[]).

Returns:
The number of intermediate values that are computed in each time step.

Generated December 13 2012