Integrators

Class diagram for tvb.simulator.integrators

Defines a set of integration methods for both deterministic and stochastic differential equations.

Using an integration step size dt from the following list:

[0.244140625, 0.1220703125, 0.06103515625, 0.048828125, 0.0244140625, 0.01220703125, 0.009765625, 0.006103515625, 0.0048828125]

will be consistent with Monitor periods corresponding to any of [4096, 2048, 1024, 512, 256, 128] Hz

# TODO: error analysis

class tvb.simulator.integrators.Integrator(**kwargs)[source]

Traited class [tvb.simulator.integrators.Integrator]

The Integrator class is a base class for the integration methods…

Attributes declared

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

dt

Declares a float. This is different from Attr(field_type=float). The former enforces float subtypes. This allows any type that can be safely cast to the declared float type according to numpy rules.

Reading and writing this attribute is slower than a plain python attribute. In performance sensitive code you might want to use plain python attributes or even better local variables.

bounded_state_variable_indices

Declares a numpy array. dtype enforces the dtype. The default dtype is float64. An optional symbolic shape can be given, as a tuple of Dim attributes from the owning class. The shape will be enforced, but no broadcasting will be done. domain declares what values are allowed in this array. It can be any object that can be checked for membership Defaults are checked if they are in the declared domain. For performance reasons this does not happen on every attribute set.

state_variable_boundaries

Declares a numpy array. dtype enforces the dtype. The default dtype is float64. An optional symbolic shape can be given, as a tuple of Dim attributes from the owning class. The shape will be enforced, but no broadcasting will be done. domain declares what values are allowed in this array. It can be any object that can be checked for membership Defaults are checked if they are in the declared domain. For performance reasons this does not happen on every attribute set.

clamped_state_variable_indices

Declares a numpy array. dtype enforces the dtype. The default dtype is float64. An optional symbolic shape can be given, as a tuple of Dim attributes from the owning class. The shape will be enforced, but no broadcasting will be done. domain declares what values are allowed in this array. It can be any object that can be checked for membership Defaults are checked if they are in the declared domain. For performance reasons this does not happen on every attribute set.

clamped_state_variable_values

Declares a numpy array. dtype enforces the dtype. The default dtype is float64. An optional symbolic shape can be given, as a tuple of Dim attributes from the owning class. The shape will be enforced, but no broadcasting will be done. domain declares what values are allowed in this array. It can be any object that can be checked for membership Defaults are checked if they are in the declared domain. For performance reasons this does not happen on every attribute set.

abstract scheme(X, dfun, coupling, local_coupling, stimulus)[source]

The scheme of integrator should take a state and provide the next state in time, e.g. for a differential equation, scheme should take \(X\) and provide an appropriate \(X + dX\) (dfun in the code).

set_random_state(random_state)[source]
configure()[source]

Ensures that invariant of the class are satisfied. Override to compute uninitialized state of the class.

configure_boundaries(model)[source]
reconfigure_boundaries_and_clamping_for_integration_state_variables(model)[source]
bound_state(X)[source]
bound_integration_state(X)[source]
clamp_state(X)[source]
clamp_integration_state(X)[source]
bound_and_clamp(state)[source]
integration_bound_and_clamp(state)[source]
integrate_with_update(X, model, coupling, local_coupling, stimulus)[source]
integrate(X, model, coupling, local_coupling, stimulus)[source]
class tvb.simulator.integrators.IntegratorStochastic(**kwargs)[source]

Traited class [tvb.simulator.integrators.IntegratorStochastic]

The IntegratorStochastic class is a base class for the stochastic integration methods. It derives from the Integrator abstract base class.

We consider a stochastic differential equation has the generic form:

\[\dot{X}_i(t) = dX_i(\vec{X}) + g_i(\vec{X}) \xi(t)\]

where we assume that the stochastic process \(\xi\) is a Gaussian forcing. In the deterministic case, \(g(X)\) would be zero. The full algorithm, for one external stochastic forcing which is additive, is:

\[X_i(t) = X_i(0) + g_i(X) Z_1(t) + dX_i t + Z_2(t) dX_{i,k} g_k(X) + 0.5 dX_{i,jk} g_j(X) g_k(X) Z_3(t) + 0.5 t^2 dX_{i,j} dX_j\]

where \(Z_1\), \(Z_2\) and \(Z_3\) are Gaussian variables, assuming the Einstein notation and defining:

\[dX_{i,j} = \frac{\partial dX_i}{\partial X_j}\]

Attributes declared

noisetvb.simulator.integrators.IntegratorStochastic.noise = Attr(field_type=<class ‘tvb.simulator.noise.Noise’>, default=<class ‘tvb.simulator.noise.Additive’>, required=True)

The stochastic integrator’s noise source. It incorporates its own instance of Numpy’s RandomState.

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

noise

An Attr declares the following about the attribute it describes: * the type * a default value shared by all instances * if the value might be missing * documentation It will resolve to attributes on the instance.

set_random_state(random_state)[source]
class tvb.simulator.integrators.HeunDeterministic(**kwargs)[source]

Traited class [tvb.simulator.integrators.HeunDeterministic]

It is a simple example of a predictor-corrector method. It is also known as modified trapezoidal method, which uses the Euler method as its predictor. And it is also a implicit integration scheme.

Attributes declared

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

n_dx = 2
scheme(X, dfun, coupling, local_coupling, stimulus)[source]

From [1]:

\[\begin{split}X_{n+1} &= X_n + dt (dX(t_n, X_n) + dX(t_{n+1}, \tilde{X}_{n+1})) / 2 \\ \tilde{X}_{n+1} &= X_n + dt dX(t_n, X_n)\end{split}\]

cf. Equation 1.11, page 283.

class tvb.simulator.integrators.HeunStochastic(**kwargs)[source]

Traited class [tvb.simulator.integrators.HeunStochastic]

It is a simple example of a predictor-corrector method. It is also known as modified trapezoidal method, which uses the Euler method as its predictor.

Attributes declared

noisetvb.simulator.integrators.IntegratorStochastic.noise = Attr(field_type=<class ‘tvb.simulator.noise.Noise’>, default=<class ‘tvb.simulator.noise.Additive’>, required=True)

The stochastic integrator’s noise source. It incorporates its own instance of Numpy’s RandomState.

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

n_dx = 2
scheme(X, dfun, coupling, local_coupling, stimulus)[source]

From [2]:

\[X_i(t) = X_i(t-1) + dX(X_i(t)/2 + dX(X_i(t-1))) dt + g_i(X) Z_1\]

in our case, \(noise = Z_1\)

See page 1180.

class tvb.simulator.integrators.EulerDeterministic(**kwargs)[source]

Traited class [tvb.simulator.integrators.EulerDeterministic]

It is the simplest difference methods for the initial value problem. The recursive structure of Euler scheme, which evaluates approximate values to the Ito process at the discretization instants only, is the key to its successful implementation.

Attributes declared

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

n_dx = 1
scheme(X, dfun, coupling, local_coupling, stimulus)[source]
\[X_{n+1} = X_n + dt \, dX(t_n, X_n)\]

cf. Equations 1.3 and 1.13, pages 305 and 306 respectively.

class tvb.simulator.integrators.EulerStochastic(**kwargs)[source]

Traited class [tvb.simulator.integrators.EulerStochastic]

It is the simplest difference methods for the initial value problem. The recursive structure of Euler scheme, which evaluates approximate values to the Ito process at the discretization instants only, is the key to its successful implementation.

Attributes declared

noisetvb.simulator.integrators.IntegratorStochastic.noise = Attr(field_type=<class ‘tvb.simulator.noise.Noise’>, default=<class ‘tvb.simulator.noise.Additive’>, required=True)

The stochastic integrator’s noise source. It incorporates its own instance of Numpy’s RandomState.

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

n_dx = 1
scheme(X, dfun, coupling, local_coupling, stimulus)[source]

Ones of the simplest time discrete approximations of an Ito process is Euler-Maruyama approximation, that satisfies the scalar stochastic differential equation (From [1], page 305):

\[X_{n+1} = X_n + dX(t_n, X_n) \, dt + g(X_n) Z_1\]

in our case, \(noise = Z_1\)

cf. Equations 1.3 and 1.13, pages 305 and 306 respectively.

class tvb.simulator.integrators.RungeKutta4thOrderDeterministic(**kwargs)[source]

Traited class [tvb.simulator.integrators.RungeKutta4thOrderDeterministic]

The Runge-Kutta method is a standard procedure with most one-step methods.

Attributes declared

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

n_dx = 4
scheme(X, dfun, coupling, local_coupling=0.0, stimulus=0.0)[source]

The classical 4th order Runge-Kutta method is an explicit method. The 4th order Runge-Kutta methods are the most commonly used, representing a good compromise between accuracy and computational effort.

From [1], pages 289-290, cf. Equation 2.8

\[\begin{split}y_{n+1} &= y_n + 1/6 h (k_1 + 2 k_2 + 2 k_3 + k_4) \\ t_{n+1} &= t_n + h \\ k_1 &= f(t_n, y_n) \\ k_2 &= f(t_n + h/2, y_n + h k_1 / 2) \\ k_3 &= f(t_n + h/2, y_n + h k_2 / 2) \\ k_4 &= f(t_n + h, y_n + h k_3)\end{split}\]
class tvb.simulator.integrators.Identity(**kwargs)[source]

Traited class [tvb.simulator.integrators.Identity]

The Identity integrator does not apply any scheme to the provided dfun, only returning its results.

This allows the model to determine its stepping scheme directly, and may be used for difference equations and cellular automata.

Attributes declared

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

n_dx = 1
scheme(X, dfun, coupling=None, local_coupling=0.0, stimulus=0.0)[source]

The identity scheme simply returns the results of the dfun and stimulus.

\[x_{n+1} = f(x_{n})\]
class tvb.simulator.integrators.IdentityStochastic(**kwargs)[source]

Traited class [tvb.simulator.integrators.IdentityStochastic]

A stochastic variant of the Identity integrator. Together with time delays, this allows for MVAR models.

Attributes declared

noisetvb.simulator.integrators.IntegratorStochastic.noise = Attr(field_type=<class ‘tvb.simulator.noise.Noise’>, default=<class ‘tvb.simulator.noise.Additive’>, required=True)

The stochastic integrator’s noise source. It incorporates its own instance of Numpy’s RandomState.

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

n_dx = 1
scheme(X, dfun, coupling=None, local_coupling=0.0, stimulus=0.0)[source]

The stochastic identity scheme simply returns the results of the dfun and the gfun and stimulus.

\[x_{n+1} = f(x_{n}) + g(X_n) Z_1\]
class tvb.simulator.integrators.SciPyODEBase[source]

Provides a base class for integrators using SciPy’s ode class.

class tvb.simulator.integrators.SciPyODE[source]
scheme(X, dfun, coupling, local_coupling, stimulus)[source]
class tvb.simulator.integrators.SciPySDE[source]
scheme(X, dfun, coupling, local_coupling, stimulus)[source]
class tvb.simulator.integrators.VODE(**kwargs)[source]

Traited class [tvb.simulator.integrators.VODE]

Attributes declared

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

class tvb.simulator.integrators.VODEStochastic(**kwargs)[source]

Traited class [tvb.simulator.integrators.VODEStochastic]

Attributes declared

noisetvb.simulator.integrators.IntegratorStochastic.noise = Attr(field_type=<class ‘tvb.simulator.noise.Noise’>, default=<class ‘tvb.simulator.noise.Additive’>, required=True)

The stochastic integrator’s noise source. It incorporates its own instance of Numpy’s RandomState.

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

class tvb.simulator.integrators.Dopri5(**kwargs)[source]

Traited class [tvb.simulator.integrators.Dopri5]

Attributes declared

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

class tvb.simulator.integrators.Dopri5Stochastic(**kwargs)[source]

Traited class [tvb.simulator.integrators.Dopri5Stochastic]

Attributes declared

noisetvb.simulator.integrators.IntegratorStochastic.noise = Attr(field_type=<class ‘tvb.simulator.noise.Noise’>, default=<class ‘tvb.simulator.noise.Additive’>, required=True)

The stochastic integrator’s noise source. It incorporates its own instance of Numpy’s RandomState.

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

class tvb.simulator.integrators.Dop853(**kwargs)[source]

Traited class [tvb.simulator.integrators.Dop853]

Attributes declared

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)

class tvb.simulator.integrators.Dop853Stochastic(**kwargs)[source]

Traited class [tvb.simulator.integrators.Dop853Stochastic]

Attributes declared

noisetvb.simulator.integrators.IntegratorStochastic.noise = Attr(field_type=<class ‘tvb.simulator.noise.Noise’>, default=<class ‘tvb.simulator.noise.Additive’>, required=True)

The stochastic integrator’s noise source. It incorporates its own instance of Numpy’s RandomState.

dttvb.simulator.integrators.Integrator.dt = Float(field_type=<class ‘float’>, default=0.01220703125, required=True)

The step size used by the integration routine in ms. This should be chosen to be small enough for the integration to be numerically stable. It is also necessary to consider the desired sample period of the Monitors, as they are restricted to being integral multiples of this value. The default value is set such that all built-in models are numerically stable with there default parameters and because it is consitent with Monitors using sample periods corresponding to powers of 2 from 128 to 4096Hz.

bounded_state_variable_indices : tvb.simulator.integrators.Integrator.bounded_state_variable_indices = NArray(label=”indices of the state variables to be bounded by the integrators within the boundaries in the boundaries’ values array”, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

state_variable_boundaries : tvb.simulator.integrators.Integrator.state_variable_boundaries = NArray(label=’The boundary values of the state variables’, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_indices : tvb.simulator.integrators.Integrator.clamped_state_variable_indices = NArray(label=’indices of the state variables to be clamped by the integrators to the values in the clamped_values array’, dtype=int64, default=None, dim_names=(), ndim=None, required=False)

clamped_state_variable_values : tvb.simulator.integrators.Integrator.clamped_state_variable_values = NArray(label=’The values of the state variables which are clamped ‘, dtype=float64, default=None, dim_names=(), ndim=None, required=False)

gid : tvb.basic.neotraits._core.HasTraits.gid = Attr(field_type=<class ‘uuid.UUID’>, default=None, required=True)