Represents a variable in a continuoustime simulation. More...
Public Member Functions  
Continuous ()  
Constructs a new continuoustime variable linked to the default simulator, without initializing it.  
Continuous (Simulator sim)  
Constructs a new continuoustime variable linked to the given simulator, without initializing it. More...  
void  init (double val) 
Initializes or reinitializes the continuoustime variable to val . More...  
double  value () 
Returns the current value of this continuoustime variable. More...  
Simulator  simulator () 
Returns the simulator linked to this continuoustime variable. More...  
void  setSimulator (Simulator sim) 
Sets the simulator linked to this continuoustime variable. More...  
void  startInteg () 
Starts the integration process that will change the state of this variable at each integration step.  
void  startInteg (double val) 
Same as startInteg, after initializing the variable to val . More...  
void  stopInteg () 
Stops the integration process for this continuous variable. More...  
abstract double  derivative (double t) 
This method should return the derivative of this variable with respect to time, at time \(t\). More...  
void  afterEachStep () 
This method is executed after each integration step for this Continuous variable. More...  
Static Public Member Functions  
static void  selectEuler (double h) 
Selects the Euler method as the integration method, with the integration step size h , in time units, for the default simulator. More...  
static void  selectRungeKutta4 (double h) 
Selects a RungeKutta method of order 4 as the integration method to be used, with step size h . More...  
static void  selectRungeKutta2 (double h) 
Selects a RungeKutta method of order 2 as the integration method to be used, with step size h . More...  
Package Attributes  
boolean  active 
double  value 
Event  ev 
double  phi 
double  pi 
double  buffer 
double  sum 
Represents a variable in a continuoustime simulation.
This abstract class provides the basic structures and tools for continuoustime simulation, where certain variables evolve continuously in time, according to differential equations. Such continuous variables can be mixed with events and processes.
Each type of continuoustime variable should be defined as a subclass of Continuous
. The instances of these subclasses are the actual continuoustime variables. Each subclass must implement the method derivative which returns its derivative with respect to time. The trajectory of this variable is determined by integrating this derivative. The subclass may also reimplement the method afterEachStep, which is executed immediately after each integration step. By default (in the class Continuous
), this method does nothing. This method could, for example, verify if the variable has reached a given threshold, or update a graphical illustration of the variable trajectory.
When creating a class representing a continuous variable, the #toString method can be overridden to display information about the continuous variable. This information will be displayed when formating the event list as a string.
Each continuous variable has a linked simulator represented by an instance of the Simulator class. If no simulator is provided explicitly when constructing a variable, the default simulator returned by Simulator.getDefaultSimulator
is used.
Continuous  (  Simulator  sim  ) 
Constructs a new continuoustime variable linked to the given simulator, without initializing it.
sim  the simulator associated to this variable. 
Constructs a new continuoustime variable (same as Continuous()
) with name name
and linked to the default simulator. This name can be used to identify the Continuous
variable in traces and reports.
Constructs a new continuoustime variable (same as Continuous(sim)
) with name name
. This name can be used to identify the Continuous
variable in traces and reports.
void afterEachStep  (  ) 
This method is executed after each integration step for this Continuous
variable.
Here, it does nothing, but every subclass of Continuous
may reimplement it.

abstract 
This method should return the derivative of this variable with respect to time, at time \(t\).
Every subclass of Continuous
that is to be instantiated must implement it. If the derivative does not depend explicitly on time, \(t\) becomes a dummy parameter. Internally, the method is used with \(t\) not necessarily equal to the current simulation time.
t  time at which the derivative must be computed 
void init  (  double  val  ) 
Initializes or reinitializes the continuoustime variable to val
.
val  initial value of the variable 

static 
Selects the Euler method as the integration method, with the integration step size h
, in time units, for the default simulator.
The nonstatic method selectEuler in ContinuousState can be used to set the integration method for any given simulator. This method appears here only to keep compatibility with older versions of SSJ; using a nonstatic Simulator instance rather than the default simulator is recommended.
h  integration step, in simulation time units 

static 
Selects a RungeKutta method of order 2 as the integration method to be used, with step size h
.
The nonstatic method selectRungeKutta2 in ContinuousState can be used to set the integration method for any given simulator. This method appears here only to keep compatibility with older versions of SSJ; using a nonstatic Simulator instance rather than the default simulator is recommended.

static 
Selects a RungeKutta method of order 4 as the integration method to be used, with step size h
.
The nonstatic method selectRungeKutta4 in ContinuousState can be used to set the integration method for any given simulator. This method appears here only to keep compatibility with older versions of SSJ; using a nonstatic Simulator instance rather than the default simulator is recommended.
void setSimulator  (  Simulator  sim  ) 
Sets the simulator linked to this continuoustime variable.
This method should not be called while this variable is active.
sim  the simulator of the current variable 
Simulator simulator  (  ) 
Returns the simulator linked to this continuoustime variable.
void startInteg  (  double  val  ) 
Same as startInteg, after initializing the variable to val
.
val  initial value to start integration from 
void stopInteg  (  ) 
Stops the integration process for this continuous variable.
The variable keeps the value it took at the last integration step before calling stopInteg
.
double value  (  ) 
Returns the current value of this continuoustime variable.