Page 1 of 1

little confusion about 3D

Posted: Tue Dec 17, 2013 1:56 pm
by figoyouwei

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)

Re: little confusion about 3D

Posted: Tue Dec 17, 2013 5:10 pm
by ted
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

Re: little confusion about 3D

Posted: Tue Dec 17, 2013 5:29 pm
by figoyouwei
thank you Ted for pointing out chapters, I guess diam3d() is the correct way to print out edge diam then :)

Re: little confusion about 3D

Posted: Wed Dec 18, 2013 12:12 am
by ted
Depends on what you mean by "correct." From the standpoint of the equations that are solved in the course of a simulation, the relevant value is the diameter of the segment, which is diam(x). If 3d points exist, diam(x) becomes the diameter of a right cylinder with the same length and surface area as the segment that contains x. If define_shape() is called (either directly or by creating a Shape plot), 3d points are created for sections that were originally specified using the stylized method; this can cause slight changes to diam(x), area(x), and ri values--see 5.5.3 Avoiding artefacts in The NEURON Book. To minimize this effect, it is best to try to ensure that sudden diameter changes occur only at the boundaries of sections.