#!/usr/bin/python

"""init.py 
Relies on pre_init.py having been run and then the archive compressed
(zip'ed) and uploaded to the NSG.  This file will start a parallel
context, forms three relevant file/folder variables (the relative
paths to and then loads) the num_of_columns.hoc and parameters.hoc,
and the path to tdt2mat_data). Then the build_net_Shep_NSG.hoc which runs
the simulations.  Subsequently the tanks are written in the
appropriate location.

"""

from mpi4py import MPI
from neuron import h, gui
pc = h.ParallelContext()
id = int(pc.id())
nhost = int(pc.nhost())
print "I am", id, "of", nhost

# form the three relevant files/folders based on id
if id<18: # 2888:
  run_folder = "run_%d"%(id) # helper folder name variable
  parameters_dot_hoc_file = run_folder+"/parameters.hoc"
  num_of_columns_dot_hoc_file = run_folder+"/num_of_columns.hoc"
  #tank_folder = "tdt2mat_data/"
  tank_folder = run_folder+"\/tdt2mat_data\/"
  
  # make these variables exist in NEURON so the approp. files and can be loaded/saved
  # The first two are used in buil_net_Shep_NSG.hoc and the tank_folder is used
  # in this NSG version of tdt2mat_data.hoc
  
  h("strdef parameters_dot_hoc_file")
  h("strdef num_of_columns_dot_hoc_file")
  h("strdef tank_folder")
  
  h('parameters_dot_hoc_file="%s"'%(parameters_dot_hoc_file))
  h('num_of_columns_dot_hoc_file="%s"'%(num_of_columns_dot_hoc_file))
  h('tank_folder="%s"'%(tank_folder))
  
  # create the simulation model structure, run and store
  h.load_file("build_net_Shep_NSG.hoc")