//volt-func-shunt.g
function Vcomp(path, length, radius, RM, CM, RI, Er, Vinit)
str path
float length,radius
float RM,CM, RI, Er, Vinit
float area, xarea, diam
float PI = 3.14159
create compartment {path}
diam = 2*radius
area = PI*diam*length
xarea = PI*radius*radius
setfield {path} \
len {length} \
dia {diam} \
Em {Er} \
initVm {Vinit} \
Rm {RM/area} \ /* Mohms is passive resistance */
Cm {CM*area} \ /* nF */
Ra {RI*length/xarea}
end
/* commented sections implemented prior to 08/14/02 */
function ellipse_vcomp(path, len, slice, diama, diamb, RM, CM, RI, Er, Vinit)
//function ellipse_vcomp(path, len, slice, rada, radb, RM, CM, RI, Er, Vinit)
str path
float len, diama, diamb
//float len, rada, radb
int slice
float RM,CM, RI, Er, Vinit
int i
float complen = len/slice
//float circum = 2*PI*{sqrt {(rada*rada + radb*radb)/2}}
//float xarea = PI*rada*radb
float circum = PI*{sqrt {(diama*diama + diamb*diamb)/2}}
float xarea = (PI*diama*diamb)/4
float vol = xarea*complen
float SA = circum*complen
for (i=1; i<=slice; i=i+1)
create compartment {path}[{i}]
setfield {path}[{i}] \
len {complen} \
dia {(diama+diamb)/2} \
Em {Er} \
initVm {Vinit} \
Rm {RM/SA} \
Cm {CM*SA} \
Ra {RI*complen/xarea}
//dia {(rada+radb)/2} \
end
for (i=1; i<slice; i=i+1)
addmsg {path}[{i}] {path}[{i+1}] RAXIAL Ra previous_state
addmsg {path}[{i+1}] {path}[{i}] AXIAL previous_state
end
end
|