network_operation function¶

(Shortest import: from brian2 import network_operation)

brian2.core.operations.network_operation(when=None)[source]

Decorator to make a function get called every time step of a simulation.

The function being decorated should either have no arguments, or a single argument which will be called with the current time t.

Parameters: dt : Quantity, optional The time step to be used for the simulation. Cannot be combined with the clock argument. clock : Clock, optional The update clock to be used. If neither a clock, nor the dt argument is specified, the defaultclock will be used. when : str, optional In which scheduling slot to execute the operation during a time step. Defaults to 'start'. order : int, optional The priority of this operation for operations occurring at the same time step and in the same scheduling slot. Defaults to 0.

Notes

Converts the function into a NetworkOperation.

If using the form:

@network_operations(when='end')
def f():
...


Then the arguments to network_operation must be keyword arguments.

Examples

Print something each time step: >>> from brian2 import * >>> @network_operation ... def f(): ... print(‘something’) ... >>> net = Network(f)

Print the time each time step:

>>> @network_operation
... def f(t):
...   print('The time is', t)
...
>>> net = Network(f)


Specify a dt, etc.:

>>> @network_operation(dt=0.5*ms, when='end')
... def f():
...   print('This will happen at the end of each timestep.')
...
>>> net = Network(f)