/* * test_iaf_min_delay_simblocks.sli * * This file is part of NEST. * * Copyright (C) 2004 The NEST Initiative * * NEST is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * NEST is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NEST. If not, see <http://www.gnu.org/licenses/>. * */ /* BeginDocumentation Name: testsuite::test_iaf_min_delay_simblocks - sli script for testing block wise simulation Synopsis: (test_iaf_min_delay_simblocks) run -> compares results for different min_delays Description: The simulation is run with a range of different min_delays. All should give identical results. This is achieved by sampling the membrane potential at a fixed interval. The test is identical to test_iaf_min_delay_set except that the simulation is carried out by 20 subsequent calls of Simulate() instead of only a single one. Other test scripts discuss the various aspects of this script in detail, see the SeeAlso key below. If this test fails go back to the simpler ones. Author: July 2004, Diesmann, January 2005, Plesser, September 2010, Diesmann SeeAlso: iaf_neuron, testsuite::test_iaf_i0, testsuite::test_iaf_i0_refractory, testsuite::test_iaf_dc, testsuite::test_min_delay, testsuite::test_min_delay */ /unittest (6335) require /unittest using /delay 2.0 def % actual delay between dc generator and neuron /h 0.1 def % computation step size /RunMinDelay { /min_del Set % argument: minimal delay in ms min_del delay leq assert ResetKernel 0 << /local_num_threads 1 /resolution h >> SetStatus /static_synapse << /delay delay /min_delay min_del /max_delay delay >> SetDefaults % /iaf_psc_alpha_canon Create /neuron Set /iaf_neuron Create /neuron Set /dc_generator Create /dc_gen Set dc_gen << /amplitude 1000. >> SetStatus /voltmeter Create /vm Set vm << /withtime true >> SetStatus % must connect with explicit delay to assure % consistency as min_delay varies dc_gen neuron 1.0 delay Connect vm neuron Connect 1 1 21 { ; 0.5 Simulate } for % vm samples at 1ms intervals, therefore we % get 10 data points for each min_elay if we make % sure that simulation time exceeds the last required % min_delay step vm [/events [/times /V_m]] get cva Transpose } def { [0.1 0.2 0.3 0.4 0.5 0.6 1.0 2.0] {RunMinDelay} Map dup First exch Rest {1 index eq } Map exch pop true exch {and} Fold } assert_or_die