//genesis
// $Id: tools.g,v 1.1.1.1 2005/06/14 04:38:34 svitak Exp $
// $Log: tools.g,v $
// Revision 1.1.1.1 2005/06/14 04:38:34 svitak
// Import from snapshot of CalTech CVS tree of June 8, 2005
//
// Revision 1.2 1994/09/23 16:44:13 dhb
// Converted to 2.0 syntax
// ,
//
// Revision 1.1 1992/12/11 19:03:48 dhb
// Initial revision
//genesis
// ===========================================
// BASIC SIMULATOR UTILITY FUNCTIONS
// ===========================================
// ===========================================
// links together two asymetric compartments
// ===========================================
function link_compartment(comp1, comp2)
addmsg {comp1} {comp2} RAXIAL Ra previous_state
addmsg {comp2} {comp1} AXIAL previous_state
end
// ===========================================
// links a channel which computes channel current
// (e.g. ChannelC2) with a compartment
// ===========================================
function link_channel2(channel, compartment)
addmsg {channel} {compartment} CHANNEL Gk Ek
addmsg {compartment} {channel} VOLTAGE Vm
end
// ===========================================
// links a channel which does not compute channel current
// (e.g. ChannelC) with a compartment
// ===========================================
function link_channel(channel, compartment)
addmsg {channel} {compartment} CHANNEL Gk Ek
end
// ===========================================
// sets up data file output of either binary or ascii type
// ===========================================
function disk_output(path, type)
str path, type
if (type == "binary")
create disk_out {path}
end
if (type == "ascii")
create asc_file {path}
end
setfield {path} flush 1 leave_open 1
useclock {path} 1
end
// =================================
// modify spike output based on integration step to give constant
// impulse area
// =================================
function adjustspike
setfield /##[TYPE=spike] output_amp {1.0/{getclock 0}}
end