//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