little confusion about 3D

Particularly useful chunks of hoc and/or NMODL code. May be pedestrian or stunningly brilliant, may make you gasp or bring tears to your eyes, but always makes you think "I wish I had written that; I'm sure going to steal it."
figoyouwei
Posts: 41
Joined: Sun Aug 08, 2010 11:09 am

little confusion about 3D

Dear,

Given this simply example, I would expect that diam(0)=5 and diam(1)=1, don't understand why diam(0)=diam(0.1) and diam(0.9)=diam(1) ? Thank you.

create dend
access dend
dend {
pt3dadd(10, 0, 0, 5)
pt3dadd(10, 10, 0, 1)
nseg = 5
}

print L, diam(0)
print L, diam(0.1)
print L, diam(0.3)
print L, diam(0.5)
print L, diam(0.7)
print L, diam(0.9)
print L, diam(1)

ted
Posts: 5529
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: little confusion about 3D

diam is a range variable. For any range variable, diam(x) refers to the value at the center of the segment that contains x. For x that lies on a boundary between segments, the value you get will be determined by roundoff error. For x = 0 or 1, the values will be from the middle of the first or last segment, respectively. This stuff is covered in chapters 5 and 6 of the NEURON Book. If you don't have that, at the very least read this
Hines, M.L. and Carnevale, N.T. The NEURON simulation environment. Neural Computation 9:1179-1209, 1997.
Preprint is available at http://www.neuron.yale.edu/neuron/nrnpubs

figoyouwei
Posts: 41
Joined: Sun Aug 08, 2010 11:09 am

Re: little confusion about 3D

thank you Ted for pointing out chapters, I guess diam3d() is the correct way to print out edge diam then :)

ted