/* * test_tsodyks_facilitating.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: test_tsodyks_facilitating - sli script for overall test of tsodyks_synapse synapse model Synopsis: (test_tsodyks_facilitating) run -> compare cout with comments in file Description: Script to test Tsodyks short term plasticity facilitating synapses according to 'Neural Networks with Dynamic Synapses' Misha Tsodyks, Klaus Pawelzik, Henry Markram Neural computation 10, 821--853 (1998) reproduces figure 1 B,(C) author: Markus Diesmann, Moritz Helias date: March 2006 */ /unittest (7039) require /unittest using ResetKernel % clear all existing network elements userdict begin 1 /local_num_threads Set 8 /total_num_virtual_procs Set 0.1 /h Set /Tau 60.0 def % membrane time constant /Theta 15.0 def % threshold /U0 0.0 def % reset potential of Vm /C Tau 1.0 div def % Tau [ms] / 1.0 GOhm in NEST units /TauR 2.0 def % refractory time /Tau_psc 1.5 def % time constant of PSC (=Tau_inact) /Tau_rec 130.0 def % recovery time /Tau_fac 530.0 def % facilitation time /U 0.03 def % facilitation parameter U /A 1540.0 def % PSC weight in pA /f 20.0 1000.0 div def % frequency in Hz given converted to 1/ms /Tend 1200.0 def % simulation time /TIstart 50.0 def % start of current /TIend 1050.0 def % end of current % set resolution and limits on delays % limits must be set BEFORE connecting any elements 0 << /resolution h /local_num_threads local_num_threads % /total_num_virtual_procs total_num_virtual_procs >> SetStatus cout 15 setprecision /tsodyks_synapse << /tau_psc Tau_psc /tau_rec Tau_rec /tau_fac Tau_fac /U U /delay 0.1 /weight A /u 0.0 /x 1.0 >> SetDefaults /iaf_tum_2000 Create /neuron1 Set neuron1 << /tau_m Tau /t_ref_tot TauR /t_ref_abs TauR /tau_syn_ex Tau_psc /tau_syn_in Tau_psc /C_m C /V_reset U0 /E_L U0 /V_m U0 /V_th Theta >> SetStatus % neuron1 GetStatus info /iaf_tum_2000 Create /neuron2 Set neuron2 << /tau_m Tau /t_ref_tot TauR /t_ref_abs TauR /tau_syn_ex Tau_psc /tau_syn_in Tau_psc /C_m C /V_reset U0 /E_L U0 /V_th Theta /V_m U0 >> SetStatus % neuron2 GetStatus info /I0 Theta C mul Tau div 1.0 1.0 f div TauR sub Tau div neg exp sub div def /dc_generator Create /dc_gen Set dc_gen << /amplitude I0 /start TIstart /stop TIend >> SetStatus /voltmeter Create /vm Set vm << /withtime true /to_memory true /interval 25.0 >> SetStatus /spike_detector Create /sp_det Set sp_det << /withtime true /withgid true >> SetStatus dc_gen neuron1 Connect vm neuron2 Connect neuron1 neuron2 /tsodyks_synapse Connect Tend Simulate vm [/events [/times /V_m]] get cva 6 ToUnitTestPrecision Transpose /vm_sim Set % array of recorded data % to print to screen %vm_sim { % == %} forall [ [25 0] [50 0] [75 0] [100 4.739750000000000e-01] [125 7.706030000000000e-01] [150 1.297120000000000e+00] [175 1.757990000000000e+00] [200 2.114420000000000e+00] [225 2.714490000000000e+00] [250 2.785530000000000e+00] [275 3.546150000000000e+00] [300 3.272710000000000e+00] [325 4.233240000000000e+00] [350 3.583070000000000e+00] [375 4.788130000000000e+00] [400 3.739560000000000e+00] [425 5.233850000000000e+00] [450 3.767230000000000e+00] [475 5.593890000000000e+00] [500 3.687720000000000e+00] [525 5.888270000000000e+00] [550 3.881790000000000e+00] [575 6.132580000000000e+00] [600 4.042850000000000e+00] [625 6.338430000000000e+00] [650 4.178550000000000e+00] [675 6.514250000000000e+00] [700 4.294460000000000e+00] [725 6.666160000000000e+00] [750 4.394600000000000e+00] [775 6.798620000000000e+00] [800 4.481930000000000e+00] [825 6.914990000000000e+00] [850 4.558640000000000e+00] [875 7.017830000000000e+00] [900 4.626440000000000e+00] [925 7.109160000000000e+00] [950 4.686650000000000e+00] [975 7.190620000000000e+00] [1000 4.740350000000000e+00] [1025 7.263560000000000e+00] [1050 4.788430000000000e+00] [1075 7.329110000000000e+00] [1100 4.831650000000000e+00] [1125 3.185220000000000e+00] [1150 2.099830000000000e+00] [1175 1.384290000000000e+00] ] /vm_expected Set vm_sim vm_expected eq assert_or_die end endusing % unittest