A collection (incomplete) of the warnings, bewares, must-nots etc., that appear elsewhere.


If 2 electrodes or segments touch they MUST BE at the same voltage. If this is not done, and 2 touching electrodes have different voltages, then the charges near the touching point will be very large and the results will be inaccurate. Remember this instruction if the voltages are changed at run time. For similar reasons, try to avoid putting 2 electrodes of different potential close together. Also, if possible, bridge the gap between 2 electrodes of different potential with an extra electrode whose potential changes linearly in the z direction (potential changes in other directions are not possible in this program.


A thick electrode must be represented by the set of surfaces that enclose it. The calculated charges then reside on the outer sides of the surfaces. The calculated potential inside a thick electrode will be uniform (within the accuracy of the calculation), as expected for a conductor.


Segments that belong to different electrodes must not overlap each other. The program automatically tests for such overlaps, and this test should only be disabled if there have been previous tests on the same geometry. The tests in CPO3D can sometimes fail to identify overlapping segments (because the severity of the tests has to be reduced to avoid touching segments being registered as overlapping), so the user should always inspect the segments to look for overlaps.


If two neighbouring electrodes touch or are close to each other, and their radii are increased by the inscribing correction, then they might overlap (which is inadvisable), so leave an appropriate gap between them.


A whole sphere is not allowed -it must be entered as 2 hemispheres.


The minimum allowed value of the inaccuracy is 0.000001. But BEWARE -this minimum value should be called only very rarely. The use of values less than 0.0002 is justified only if the electrode geometry is simple, if there is a large number (> about 300 in CPO2D or > about 500 in CPO3D) of well chosen segments and if there are two or more planes of reflection symmetry.



The rays and the electrodes MUST HAVE the same reflection symmetries. For example, if the rays go in the general z direction, starting at a non-zero value of z, they could usually NOT have z=0 as a plane of reflection symmetry, and so then the ELECTRODES COULD NOT HAVE this reflection plane (although the rays and electrodes could still have other reflection planes, in the CPO3D program).


The presence of magnetic fields can reduce (usually to zero) the number of allowed symmetry planes for the electrodes, because the rays then usually have inversion symmetry (for example x to -x and y to -y) instead of reflection symmetry, which can disallow the reflection symmetries.

It is not possible to incorporate all the relevant safeguards into the program, so the user must be careful, and should carefully inspect the three 2-dimensional plots of reflected rays to check on the symmetries.


If rays lie outside a set of electrodes it is usually necessary to enclose these regions with extra electrodes at the appropriate voltages (unless the real physical system that is being simulated actually has potentials that fall-off with distance).


Users who are interested in potentials, fields or rays outside a system of electrodes should disable the zero charge option, because otherwise the outer potential will tend to a non-zero constant and the outer field will be zero or small. In practice it is usually inadvisable to have an open system (that is, it is better to enclose the system with extra electrodes) if rays are to be traced in the external region.


When using the mesh method in ray tracing, confine the first set of rays (before reflections) to the smallest possible sector (for example if x=0 and z=0 are reflection planes in a planar problem, confine to the region of positive x and z). Otherwise unnecessary mesh points will be created, slowing down the calculation.


If your choice of maximum step length or time is too large, when rays are being traced, then some unwanted effects can occur:

(1) The rays might appear on the screen as non-smooth, made up of piecewise linear portions (even with the interpolation points mentioned below). If it is important that the rays be seen to be smooth, then reduce the maximum step length or time. Do not decrease the ray inaccuracy so that the program automatically reduces the step length or time, because this could give a large increase in the tracing time.

(2) The crossing conditions at the test planes might become inaccurate because the interpolations used to find the conditions are over a large distance.

(3) The rays might jump over regions in which the fields change quickly, giving an inaccurate tracing.

(4) If rays are reflected sharply the tracings might be inaccurate. If your choice of initial step length or time is too large, then the first part of the ray might appear on the screen as a linear portion.


The program can deal with time-dependent fields, but only in the quasi-static approximation. In other words, the program ignores any magnetic fields that are generated from the time variations of the electric fields (that is, electromagnetic effects), and so the user must ensure that the frequency of the field is not too high and that the wavelength is much longer than the electrode lengths.


Large ray step lengths or times will give inaccurate space-charges. This is because in depositing the charge into the mesh cells that are crossed by a ray step, the step is taken to be linear (that is, a straight line between the end points) and the velocity is assumed to be constant. The total charge in the step is the known current times the known time for the step.


The cathode region must not overlap with any other electrodes, or else Childs Law and Langmuirs relationships are invalidated. This is not checked by the program.


It is notoriously difficult to achieve stability in calculations involving a cathode. There tends to be positive feed-back between the ray currents and the space-charges, which can cause uncontrolled oscillations in the currents in successive iterations. The user must therefore be very careful, and follow the advice given


The mesh method of ray tracing should not be used when there are space-charges, unless the mesh spacing can be made smaller than the radius of the beam.


Chapter 3 is particularly important, and should be read at least once by all users.