This version gives very accurate simulations of static systems which include dielectric materials that have a uniform dielectric constant.
Dielectric systems are very easy to set up in CPO3D or CPO3DS. The interfaces that enclose each dielectric medium are represented by quasi-electrodes, called ‘dielectric electrodes’, that have the same choice of geometries as the normal ‘conducting electrodes’. After defining the ‘dielectric electrodes’ all the user has to do is to specify the dielectric constant K1 of the medium and the dielectric constant K2 of the surrounding volume (usually 1). More than one dielectric medium can be included.
The ‘dielectric electrodes’ can be extremely close to ‘conducting electrodes’, although not touching.
Four benchmark tests of dielectric systems are included in the package:
In all cases the error is typically 0.3%, using a fairly small number of segments (except that in the fourth case the errors are larger for dielectric constants greater than 2, which rarely happens in practice). These errors are larger than the extremely small errors achieved with the non-dielectric versions of the CPO programs, and the computing times tend to be longer, but the errors are nevertheless acceptably small.
Full instructions are given in CPO Help on how to set up a dielectric system.
In this version the electrostatic fields at selected boundaries can be specified instead of the potentials. This version is similar to the dielectric version.
This version of the 2D and 3D space-charge programs allows the User to define the emission properties of new and unconventional cathodes.
The User can for example define a thermionic temperature that depends on position, or new forms of Schottky or cold-field emitters, such as liquid-metal ion sources.
As in the regular versions, the cathode is subdivided into segments and one ray starts from the centre of each segment. At the start of each ray the program sends information to the User-supplied routine on the positions of the cathode segments and on the strengths and directions of the electric fields at their surfaces. The routine then returns information on the emitted current densities. The rays are traced in the usual way, automatically taking care of any space-charge.
The User-defined cathodes fall into two types, depending on whether the space-charge in front of the cathode is significant or insignificant. In the first type the User can for example define athermionic temperature that depends on position. The program will then automatically take care of the space-charge. In the second type the User can deal for example with new forms of field emitters. The choice of type is made in the databuilder. A User-supplied data file could be used to define parameters such as the maximum current density of a thermionic cathode or the work function of a field-emission cathode.
The CPO package includes 2D and 3D examples (in C++) that can provide a convenient starting point for further editing by the User.
For more detailed information see the document ‘Scatter’.
This version of the 2D and 3D programs allows scattering of the particles, using a User-supplied routine.
The scattering might be caused for example by:
At the end of each step in the ray tracing the program sends information (the coordinates, velocity components, potential, time, etc) to the User-defined routine and expects a return giving new values of the velocity components, charge and mass, or an instruction to terminate the ray.
The CPO package includes two sets of examples, for 2D and 3D programs respectively. Each set contains four examples of User-supplied routines. These routines (in C++) provide a convenient starting point for further editing by the User.
This version of the 2D and 3D programs allows stochastic scattering (ie individual electron-electron or ion-ion Coulomb interactions) of the particles, using a User-supplied routine. It allows accurate calculations of effects such as Boersch energy spreading or spatial blurring, for any shape or size of beam and with no significant approximations or assuptions having to be made.
The version is essentially the same as the scattering version described above, except that additional data is sent to the User-supplied routine to enable that routine to simulate stochastic scattering. The additional data includes:
An example User-supplied routine which shows how this information can be used to simulate the Coulomb scattering in individual electron-electron encounters is included in the package.
This is a powerful option. The technique used is fundamentally different from that used in other commercial programs and its accuracy has been verified by a benchmark test. This option has been used for several different types of simulations, including the most difficult simulation of stochastic scattering in a liquid metal ion source, which does not seem to be possible with other techniques.
Help and cost
Full instructions are given on how to produce a ‘dll’ (‘dynamic linked library’) file from a User-supplied routine, for the special versions that need this. Examples of such routines are supplied. CPO Ltd will offer advice and help in constructing new User-defined routines.
The dielectric and Neumann-boundary-conditions versions (CPO3D only) each cost an additional 50%. The special versions (perpetual licences only) for user-defined unconventional cathodes, scattering and stochastic scattering, each cost an additional 25%.