/*
 *  free_mask_donut_anchor_10.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/>.
 *
 */

% to be run before run_test.sli

% Doughnut mask, outer radius 0.25, inner radius 0.1
%
% Setup:
%     - 5x5 -> 5x5, extent 1.25x1.25
%     - nodes "freely placed" at regular grid locations
% expectation:
%   each node is connected to
%     - the two nodes to the right and left of the source location in the target layer
%     - the two nodes above and below that location
%     - should give identical results to reg_mask_donut_anchor_10.sli
%
%   like free_mask_donut_anchor_00, but with periodic boundary conditions
%
%    Sources                      Targets
%     2  7 12 17 22    	          28 33 38 43 48
%     3  8 13 18 23		  29 34	39 44 49
%     4	 9 14 19 24		  30 35	40 45 50
%     5	10 15 20 25		  31 36	41 46 51
%     6	11 16 21 26		  32 37	42 47 52
%
%    Exemplary connections
%           
%              32                47                52
%      2 -> 48    33    17 -> 38    48    22 -> 43    28
%	       29                44                49
%
%              31                46                51
%      6 -> 52    37    21 -> 42    52    26 -> 47    32
%              28                43                48

% loop y-coords backwards so that we get same gid-pos mapping as on grid
[-0.5 0.5 0.25] Range 
{ /x Set [0.5 -0.5 -0.25] Range { x exch 2 arraystore } Map } Map 1 Flatten
/pos Set

/layer << /positions pos
          /extent [1.25 1.25]
          /center [0. 0.]
          /edge_wrap true
          /elements /iaf_neuron
        >> def

/src_layer layer def
/tgt_layer layer def

/conns << /connection_type (divergent)
          /mask << /doughnut << /outer_radius 0.25 /inner_radius 0.1 >> /anchor [ 0.0 0.0 ] >>
       >> def

