December 18th, 2011 | 2 Comments
In physics equipotential lines describe lines in space which are at the same potential, for example of the electric field.
In Fig. 1 equipotential lines for the electric field of six charges equally spaced on a plate are shown. In order to get these lines we need the function of the potential
v(x,y) and make a contour plot with
splot to a file to save the positions of the lines.
# calculate and save equipotential lines set view map unset surface set contour base # distance between contour lines according to 1/r # => equal distance between lines set cntrparam levels discrete 4,5,6.67,10 set isosam 31,31 set table 'equipotential_lines.txt' splot v(x,y) w l ls 1 unset table plot 'equipotential_lines.txt' u 1:2 w l ls 1
The positions of the lines are given by the
cntrparam levels which are chosen in a way, to get equally spaced lines in the far field. The
set table command stores the contour lines to a file, and finally the last command plots the stored lines.
In addition to the equipotential lines the value of the contour is stored as a third column in the
equipotential_lines.txt file and can be plotted on the graph, too. This is shown in Fig. 2.
To get the label of the contour we have to choose a
x-position which is given by
lx0 in the following. The
labels(x,y) function sets a string to the value of the third column, if the right
x-position is given and we are above the plate. The function
f(x,y) checks if we are near the point where a label should be drawn and undefines the contour line around this point. The size of this area is given by
lx0 = 1.14899 eps = 0.15 labels(x,y) = (x==lx0 && y>y0) ? stringcolumn(3) : "" f(x,y) = (abs(lx0-x)<eps && y>y0) ? 1/0 : y