def setup(timestep=0.1, min_delay=0.1, max_delay=10.0, **extra_params): """ Should be called at the very beginning of a script. extra_params contains any keyword arguments that are required by a given simulator but not by others. NEURON specific extra_params: use_cvode - use the NEURON cvode solver. Defaults to False. returns: MPI rank """ common.setup(timestep, min_delay, max_delay, **extra_params) simulator.initializer.clear() simulator.state.clear() simulator.reset() simulator.state.dt = timestep simulator.state.min_delay = min_delay simulator.state.max_delay = max_delay if extra_params.has_key('use_cvode'): simulator.state.cvode.active(int(extra_params['use_cvode'])) if extra_params.has_key('rtol'): simulator.state.cvode.rtol(float(extra_params['rtol'])) if extra_params.has_key('atol'): simulator.state.cvode.atol(float(extra_params['atol'])) if extra_params.has_key('default_maxstep'): simulator.state.default_maxstep = float( extra_params['default_maxstep']) return rank()
def test_reset(): simulator.state.running = True simulator.state.t = 17 simulator.state.tstop = 123 init = simulator.initializer orig_initialize = init._initialize init._initialize = Mock() simulator.reset() assert_equal(simulator.state.running, False) assert_equal(simulator.state.t, 0.0) assert_equal(simulator.state.tstop, 0.0) init._initialize.assert_called() init._initialize = orig_initialize
def setup(timestep=0.1, min_delay=0.1, max_delay=10.0, **extra_params): """ Should be called at the very beginning of a script. extra_params contains any keyword arguments that are required by a given simulator but not by others. NEURON specific extra_params: use_cvode - use the NEURON cvode solver. Defaults to False. Optional cvode Parameters: -> rtol - specify relative error tolerance -> atol - specify absolute error tolerance native_rng_baseseed - added to MPI.rank to form seed for SpikeSourcePoisson, etc. default_maxstep - TODO returns: MPI rank """ common.setup(timestep, min_delay, max_delay, **extra_params) simulator.initializer.clear() simulator.state.clear() simulator.reset() simulator.state.dt = timestep simulator.state.min_delay = min_delay simulator.state.max_delay = max_delay if extra_params.has_key('use_cvode'): simulator.state.cvode.active(int(extra_params['use_cvode'])) if extra_params.has_key('rtol'): simulator.state.cvode.rtol(float(extra_params['rtol'])) if extra_params.has_key('atol'): simulator.state.cvode.atol(float(extra_params['atol'])) if extra_params.has_key('native_rng_baseseed'): simulator.state.native_rng_baseseed = int( extra_params['native_rng_baseseed']) else: simulator.state.native_rng_baseseed = 0 if extra_params.has_key('default_maxstep'): simulator.state.default_maxstep = float( extra_params['default_maxstep']) return rank()
def setup(timestep=0.1, min_delay=0.1, max_delay=10.0, **extra_params): """ Should be called at the very beginning of a script. extra_params contains any keyword arguments that are required by a given simulator but not by others. NEURON specific extra_params: use_cvode - use the NEURON cvode solver. Defaults to False. Optional cvode Parameters: -> rtol - specify relative error tolerance -> atol - specify absolute error tolerance native_rng_baseseed - added to MPI.rank to form seed for SpikeSourcePoisson, etc. default_maxstep - TODO returns: MPI rank """ common.setup(timestep, min_delay, max_delay, **extra_params) simulator.initializer.clear() simulator.state.clear() simulator.reset() simulator.state.dt = timestep simulator.state.min_delay = min_delay simulator.state.max_delay = max_delay if extra_params.has_key('use_cvode'): simulator.state.cvode.active(int(extra_params['use_cvode'])) if extra_params.has_key('rtol'): simulator.state.cvode.rtol(float(extra_params['rtol'])) if extra_params.has_key('atol'): simulator.state.cvode.atol(float(extra_params['atol'])) if extra_params.has_key('native_rng_baseseed'): simulator.state.native_rng_baseseed=int(extra_params['native_rng_baseseed']) else: simulator.state.native_rng_baseseed=0 if extra_params.has_key('default_maxstep'): simulator.state.default_maxstep=float(extra_params['default_maxstep']) return rank()
def test_run(): simulator.reset() simulator.run(12.3) assert_almost_equal(h.t, 12.3, places=11) simulator.run(7.7) assert_almost_equal(h.t, 20.0, places=11)