org.systemsbiology.chem
Interface ISimulator

All Known Implementing Classes:
SimulatorDeterministicRungeKuttaAdaptive, SimulatorDeterministicRungeKuttaFixed, SimulatorOdeToJavaRungeKuttaAdaptive, SimulatorOdeToJavaRungeKuttaImplicit, SimulatorStochasticGibsonBruck, SimulatorStochasticGillespie, SimulatorStochasticTauLeapComplex, SimulatorStochasticTauLeapSimple

public interface ISimulator

Represents an object that can solve the dynamics of a Model over time. All subclasses of this interface should implement IAliasableClass, and have the public static string field CLASS_ALIAS.

Author:
sramsey

Field Summary
static int MIN_NUM_RESULTS_TIME_POINTS
           
 
Method Summary
 boolean allowsInterrupt()
           
 boolean canComputeFluctuations()
           
 void checkSimulationParameters(double pStartTime, double pEndTime, SimulatorParameters pSimulatorParameters, int pNumResultsTimePoints)
           
 String getAlias()
           
 SimulatorParameters getDefaultSimulatorParameters()
           
 void initialize(Model pModel)
           
 boolean isInitialized()
           
 void setController(SimulationController pSimulationController)
           
 void setProgressReporter(SimulationProgressReporter pSimulationProgressReporter)
           
 void setStatusUpdateIntervalSeconds(double pStatusUpdateIntervalSeconds)
          Set the update interval, in seconds.
 SimulationResults simulate(double pStartTime, double pEndTime, SimulatorParameters pSimulatorParameters, int pNumResultsTimePoints, String[] pResultsSymbolNames)
          Conduct a simulation of the dynamics of the Model passed to the initialize(Model) method.
 

Field Detail

MIN_NUM_RESULTS_TIME_POINTS

public static final int MIN_NUM_RESULTS_TIME_POINTS
See Also:
Constant Field Values
Method Detail

getAlias

public String getAlias()

isInitialized

public boolean isInitialized()

initialize

public void initialize(Model pModel)
                throws DataNotFoundException,
                       InvalidInputException
Throws:
DataNotFoundException
InvalidInputException

setProgressReporter

public void setProgressReporter(SimulationProgressReporter pSimulationProgressReporter)

setController

public void setController(SimulationController pSimulationController)

checkSimulationParameters

public void checkSimulationParameters(double pStartTime,
                                      double pEndTime,
                                      SimulatorParameters pSimulatorParameters,
                                      int pNumResultsTimePoints)

getDefaultSimulatorParameters

public SimulatorParameters getDefaultSimulatorParameters()

setStatusUpdateIntervalSeconds

public void setStatusUpdateIntervalSeconds(double pStatusUpdateIntervalSeconds)
                                    throws IllegalArgumentException
Set the update interval, in seconds. The updates are provided through the SimulationProgressReporter class. This also sets the interval for checking the SimulationController for pause or cancellation. The value specified must be greater than zero. If this method is not called, a default value of 1.0 seconds is used.

Throws:
IllegalArgumentException

allowsInterrupt

public boolean allowsInterrupt()

canComputeFluctuations

public boolean canComputeFluctuations()

simulate

public SimulationResults simulate(double pStartTime,
                                  double pEndTime,
                                  SimulatorParameters pSimulatorParameters,
                                  int pNumResultsTimePoints,
                                  String[] pResultsSymbolNames)
                           throws DataNotFoundException,
                                  IllegalStateException,
                                  IllegalArgumentException,
                                  AccuracyException,
                                  SimulationFailedException
Conduct a simulation of the dynamics of the Model passed to the initialize(Model) method. The end time must be greater than the start time. The integer pNumResultsTimePoints must be greater than zero. The size of the results arrays must be equal to one plus pNumResultsTimePoints (the extra element in the arrays is to hold the initial data). The parameter pNumResultsTimePoints must be greater than or equal to 2.

Throws:
DataNotFoundException
IllegalStateException
IllegalArgumentException
AccuracyException
SimulationFailedException