Tests of accuracy and speed
The CPO packages are unique, as far as we know, in including a large number of benchmark tests based on electrostatic simulations that have known analytical solutions. The tests are listed in test and example files, and range from the simplest square or cubic geometries that can also be accurately simulated by other electrostatics programs, through tests of practical interest that involve cylindrical or spherical electrodes, to the most difficult tests involving cathodes.
The CPO programs are based on the Boundary Element Method (also known as the Surface Charge Method, Integral Equation Method, or Charge Density Method). On the other hand, the traditional and most frequently used method of solving problems in electrostatics has been the Finite Difference Method, which is conceptually simple and relatively easy to program, or the related Finite Element Method (and these methods are also sometimes known as 'grid' methods).
For a recent description see the publication: The CPO programs and the BEM for charged particle optics, by F. H. Read and N. J. Bowring, Nucl. Instr. Meth. A645, 273-277 (2011).
In the BEM the potentials and fields are obtained indirectly, in two stages, firstly obtaining the surface charges and then using these charges to find the potentials and fields at any point (see chapter 1, section 4). This gives a fast and accurate way of solving electrostatic problems, and is ideally suitable for space-charge and cathode simulations.
On the other hand the more widely used Finite Difference and Finite Element Methods (FDM and FEM) solve Laplace’s equation in one stage. A set of mesh points (also called grid points or nodes) is set up to cover the surfaces of the electrodes and also the volume of space that they occupy. In the FDM the mesh points make an array of square or cubic cells in 2D or 3D systems respectively. The known potentials of the points on the boundaries are used to deduce the approximate potentials of the inner mesh points, using a numerical approximation to Laplace’s equation. Potentials and fields at a general point in space are then obtained by interpolation between the mesh points, which can cause discontinuities in the field. The iterative method used to solve the numerical approximation to Laplace’s equation is accurate, but the mesh potentials themselves are not accurate -on the contrary these potentials and the resulting fields can be very inaccurate particularly near the edges or corners of electrodes.
In recent years more and more researchers in the field have turned to the Boundary Element Method when they need accurate results, and have written their own programs for doing this. The CPO programs now offer the general user the accuracy, the speed and all the many advantages of the Boundary Element Method.
The speed and accuracy of the CPO programs are, as far as we know, unchallenged.
We have no doubt that those researchers who adopt a practical, open-minded approach to compare the accuracy and speed of different programs will certainly finish by selecting the CPO programs. As well as the speed and accuracy, setting up a simulation is easy with the Boundary Element Method because only the electrode surfaces have to be modelled.
Two further comments, particularly for those who have used FDM and FEM programs (that is, programs that are based on a 'grid' of points, such as SIMION):
Inaccuracy of matrix inversion:
A trivial inaccuracy (but the only one that is mentioned in some FDM and FEM programs) is the precision for solving the main matrix equation. In the CPO programs this equation gives the charges, while in FDM and FEM programs (such as SIMION) it gives the potentials at the grid points, and is usually solved by means of an iterative relaxation process. In the CPO programs this equation is solved with double precision accuracy. In FDM and FEM programs the relevant iterations are stopped when some pre-set convergence error is reached (for example 10 to the power of -12). But note that the convergence error in FDM and FEM programs does NOT represent the differences between the calculated and true potentials at the grid points, which are very much larger (and which are usually not specified or estimated). For example with SIMION you could use an array of only 5*5 grid points and solve the equation with a precision of 10 to the power of -12, but the accuracy of the potentials at the points would not be this!
Number of segments
You are probably accustomed to having to use the maximum number of grid points to obtain a reasonable accuracy, and so will assume that in an BEM program you should also use the maximum number of segments. But we hope that you will follow the advice in chapter 3 of the User`s Guide, or will at least look at the advice given in HELP!!, and then you will almost certainly be very surprised at how few segments you need to obtain high accuracy.