Symmetries and reflections


General symmetries and reflection planes:


CPO2D is designed to deal with systems that have either

(a) axial (also called cylindrical) symmetry, in which the electrodes are rotationally symmetric about an axis, which is taken to be the z axis. The only other relevant coordinate is the distance r (that is, ) from the z axis.


(b) planar symmetry, in which the electrodes extend to plus and minus infinity in the y direction. The only relevant coordinates are then x and z.

The z = 0 plane can also be a plane of reflection symmetry. 

See also note on choosing 2D symmetry.


CPO3D will deal with systems of more general symmetry, or no symmetry at all!

4 planes of reflection symmetry are available: they are the planes

x=0, y=0, z=0, x = y,  that is the planes yz, xz, xy, and diagonal x = y (see technical note below about the diagonal plane).

In summary, we have the symmetries and reflection planes:

CPO2D, axial symmetry: z=0,

CPO2D, planar symmetry: x=0, z=0,

CPO3D:   x=0; y=0; z=0; x=y (that is, yz, xz, xy and x=y planes), or no symmetry at all.


For each of the symmetry planes the geometry is symmetric, but the voltages can be symmetric or antisymmetric. (see technical note below about the 3D diagonal plane).

The user should take advantage of the planes of symmetry, when they exist, because for each one the total number of segments is effectively doubled, but the size of the key equation for the surface charges is not increased.  This is an important (and unusual) feature of the CPO programs.

In CPO2D and CPO3D the planes of reflection symmetry can be used to:

(a) Reflect rays in the absence of a magnetic field

(b) Reflect (or invert) rays in a magnetic field

(c) Reflect rays in the presence of space-charge


Note that in CPO3D when there is no magnetic field the reflections of the rays are specified by the user after the rays themselves have been specified, but when there is a magnetic field the reflections are chosen earlier, after the magnetic field has been selected. And note also that the way that different reflections are combined is different in these two cases.


Rays can also be reflected by the shapes of the fields. Examples are:

(a) an electrostatic mirror and

(b) a magnetic bottle


There is an advanced option for forcing 6-fold symmetry (that is, hexapole, sextupole).

There is no need to worry about any planes of reflection symmetry when entering information on whole electrodes in CPO3D. The program will test for consistency with those planes and will remove the unnecessary parts of the electrodes (and this will be done before the subdivision into the more basic shapes, see the relevant note). But information on basic triangles and rectangles should be entered only in the sub-volume that will fill all space after reflections (for example only in the sub-volume x and y greater than 0 if x=0 and y=0 are reflection planes).



When there are planes of reflection symmetry electrodes MUST NOT lie in or across those planes (except for spheres, cylinders and cones in CPO3D, which are dealt with automatically by the program). Otherwise an electrode might overlap itself, or two different electrodes might overlap, either wholly or in part, and then the program will not be able to solve the equation for the surface charges.

Beware of electrodes touching at a plane of potential antisymmetry:

A technical problem can arise when there is a potential antisymmetry in a plane and when electrodes or segments touch this plane.

It is therefore of the UTMOST IMPORTANCE to ensure that the actual potential on such a plane is zero (it has not been possible to build in a full set of safeguards for this in the program). If this is not done, and 2 touching electrodes have different potentials, then the charges near the touching point will be very large and the results will be inaccurate. Remember not to change this voltage at run time.

In general it is strongly advisable to avoid electrodes touching at a plane of potential antisymmetry -an example of how this can be avoided is given in xmpl3d19. The avoidance is essential if the segments are to further subdivided at a later stage of the program (see note on iterative subdivision)-if this is not done some of the 'unit charges' will become extremely large, leading to an unwanted result in the process of iterative subdivision (also called adaptive segmentation).



Automatic truncation of electrodes when there are reflection symmetries:

When data for a whole electrode are entered the user does not have to worry about the planes of symmetry. For example suppose that the user specifies that the xy plane (that is, the z = 0 plane) is a plane of reflection symmetry and that the user wants to create a cylinder that has an axis from z = -1.0 to +1.0. One way to do this is to specify a cylinder that has an axis from 0.0 to 1.0, in which case the program will subdivide this and then reflect it in the xy plane. Another way is to specify a cylinder that has an axis from z = -1.0 to +1.0, in which case the program will automatically remove the redundant part from -1.0 to 0.0 and will then subdivide the remaining part from 0.0 to 1.0 (using the subdivision numbers specified by the user) and will finally reflect that part in the xy plane to recreate the complete cylinder. The total number of segments starts at the number given by the user but is then doubled for each reflection.

This process of automatically removing the redundant parts applies only to whole electrodes -that is, spheres, cylinders, cones and discs. It does not apply to electrodes that are specified as individual triangles or rectangles


Possible imperfections: A symmetric electrode geometry can of course be set up without the use of the above planes of symmetry (and although this requires more segments it is sometimes unavoidable). But beware -the electrodes can have a symmetry such as x=y but the segments might not, because of the way in which the electrodes are subdivided. This happens for example in xmpl3d41.




Technical note on 2D planar symmetry:

In planar symmetry the program cannot make the length Y in the y direction infinitely large, so it is made 1000 times larger than the maximum extent of the electrodes in either of the other two directions. This has no effect on the potentials and fields inside the system of electrodes, but it does affect the potentials and fields outside the electrodes, at distances of the order of Y/10 or more. Note that in principle if Y is infinitely large the external potential would never fall to zero, a situation that the program cannot simulate.


Technical note on 3D reflection in diagonal x = y plane:

Antisymmetric reflection symmetry in the diagonal x = y plane has a special meaning in CPO3D. The program starts by setting up the voltage pattern in the quadrant x > 0, y >0 -it does this by reflecting the octant 0 <= theta <= pi/4 into the octant pi/4 <= theta <= pi/2, while changing the sign of the potential. Then the program uses the symmetries or antisymmetries that have been specified for the x = 0 and y = 0 planes to reflect this quadrant and so complete the pattern of voltages in the whole xy plane This implies for example that when there is antisymmetry in the diagonal plane the potential distribution has f(x,y) = -f(y,x) in the quadrant x > 0, y > 0, but not necessarily in the whole xy plane. This is useful for creating 4-fold and 8-fold symmetries. The user should check the appearance of the potential field.