//-----------------------------------------------------------------------
//
// Defines additional functions to add leak or dc current
//
//-----------------------------------------------------------------------
//
// add_leak(ga,va) -> add leak current in all compartments
// NON ADDITIVE: restarts from the values of E_pas,G_pas
//
proc add_leak() {
forall{
g_pas = $1 + G_pas
e_pas = (G_pas * E_pas + $1 * $2) / (G_pas + $1)
}
}
//
// add_dc(i) -> add dc current (in nA) in current compartment
// redefines e_pas from current values of e_pas,g_pas
// ADDITIVE: starts from the current values of e_pas,g_pas
// the dc variable accumulates successive dc's
//
proc add_dc() { // local idc
dc = dc + $1
idc = 100 * $1 / area(0.5) // conversion to mA/cm2
e_pas = e_pas + idc/g_pas
}
//
// reset() -> resets the leak current to the values E_pas,G_pas
// resets dc to zero
//
proc reset() {
forall {
g_pas = G_pas
e_pas = E_pas
}
dc = 0
}
dc = 0 // dc variable initialized to zero
|