Test3d09, 9th 'benchmark test' data file for CPO3D

Coefficients of hemispherical deflection analyser (HDA)

This file is almost identical to test3d01.dat, except that the 'coefficients of lens' option has been used. The user asks for three coefficients (the energy dispersion, the linear magnification and the second order angle coefficient), and specifies the exit plane and the starting conditions of the median (that is, reference) ray. The program then automatically sets up and traces the minimum number of rays, each with a different starting condition, to deduce these coefficients.

(This simulation has cylindrical symmetry and so can be solved more quickly and accurately with CPO2D -see test2d09.dat.)

The first 'test plane' is x = 0, which is the exit plane of the analyzer.

The lines of data for the 'coefficients' option are:

coefficients, aberration - definition of rays

0 -1 0 1 0 0 1 x,y,z,vx,vy,vz,eV,I of median ray

0 0.01 0 0 0.05 0 0.01 increments for initial parameters

0 1 0 0 0 0 0 choice of coefficients

The first line defines the 'median' ray as the ray that starts at (x,y) = (0,-1) with a kinetic energy of 1 eV. This ray should follow the semi-circular path to (x,y) = (0,1).

The next line defines the increments or steps that will be applied to the initial parameters (not all the increments are necessarily used, depending on the next line). The y position is incremented by 0.01, the direction cosine (call it cosy) in the y direction is incremented by 0.05, and the energy is incremented by 0.01 eV. After cosy has been incremented then cosx,y,z = 1.0, 0.05 and 0.0 respectively. After renormalising, these become 0.99875, 0.04994 and 0 respectively. The direction is therefore in the xy plane. The angle to the y axis is arccos(0.04494). The angle to the x axis is arccos(0.99875), which is also arcsin(0.04994) = 0.04996.

The next line gives the first 'choice of coefficients'. An order of 1 is given for the y position, and so the program will find the variation of each of 6 final parameters (x, y, z, cosx, cosy, cosz) at the test plane, with respect to y_initial. In other words the program will give the coefficient c(x,y) in the expansion

x_final - x_median = c(x,y)*y_initial +...

and will give the analogous coefficients for the other 5 final parameters. The other integers on this line are all zero, so no other initial parameters are varied.

For another explanation of the meaning of the coefficients see the note on coefficients.

The output lines in the ray output file are:

Initial parameters (in digital and word forms),

followed by coefficients for final x, y, z, cosx, cosy, cosz:

0 1 0 0 0 0 0 (that is, y )

0.000E+00 -2.961E+00 0.000E+00 0.000E+00 -6.916E-04 0.000E+00

We see here that the rate of change of rf with respect to ri is -2.961 (and note that here ri is changed while the kinetic energy is kept constant at 1 eV). This value is usually quoted as -3, but using the exact formula, see below, (with ri=0.99) we find -2.9604, so the present error is very small. The other coefficients here are not useful.

Important note:

When the 'coefficients' option is used for lenses, care must be taken over the position of the first test plane, which is usually the gaussian image plane. If the position of this plane is not known in advance then it can be found by tracing a series of rays at different angles alpha to the axis and looking to see the values of z at which they cross the axis in image space. Then plot z versus alpha and extrapolate to alpha = 0 (a quadratic dependence is expected).

Now the following input lines can be used:

coefficients, aberration - definition of rays

0 -1 0 1 0 0 1 x,y,z,vx,vy,vz,eV,I of median ray

0 0.01 0 0 0.05 0 0.01 increments for initial parameters

0 0 0 0 2 0 0 choice of coefficients

The non-zero integer on the last line gives the order 2 for cosy, so the program will find the variations with respect to cosy squared. That is it will find the coefficient c(x,cosy*cosy) in the expansion

x_final - x_median = c(x,cosy*cosy)*cosy*cosy +...

and will give the analogous coefficients for the other 5 final parameters.

Then the output lines are:

Initial parameters (in digital and word forms),

followed by coefficients for final x, y, z, cosx, cosy, cosz:

0 0 0 0 2 0 0 (that is, cosy cosy )

1.178E-06 -1.997E+00 0.000E+00 4.941E-01 1.987E+01 0.000E+00

The second coefficient in this line gives the rate of change of y_final (that is, rf), which is usually quoted as -2. Here its value is found to be -1.997.

Using the exact formula given below, for cosy = 0.05, we obtain the value -1.995, so the error is small.

Finally the following input lines can be used:

coefficients, aberration - definition of rays

0 -1 0 1 0 0 1 x,y,z,vx,vy,vz,eV,I of median ray

0 0.01 0 0 0.05 0 0.01 increments for initial parameters

0 0 0 0 0 0 1 choice of coefficients

Therefore we are looking for the dependence of the final parameters on the initial energy.

The output lines are:

Initial parameters (in digital and word forms),

followed by coefficients for final x, y, z, cosx, cosy, cosz:

0 0 0 0 0 0 1 (that is, en )

-1.862E-05 2.022E+00 0.000E+00 0.000E+00 1.575E-03 0.000E+00

We see from the second coefficient in this line that the rate of change of y_final is 2.022. This is the energy dispersion of the analyzer, and is usually quoted as 2. However the exact expression for y_final (call this rf) as a function of y_initial (ri), angle_r_initial (a) and en (e) is

ri/rf = 2/(ri*e*cos(a)^2) - 1

(see F H Read and S C Page, Nucl. Inst. and Methods A363, 249-253, 1995, and the detailed equations on HDA). Therefore for the present choice of ri (1), a (0) and e (1.01), the ratio (delta_rf)/(delta_e) is 2.0202, which is close to the value given in the above table. (And it can be noted in passing that the energy dispersion is significantly non-linear, as pointed out by Read and Page.)

WARNING:

Using higher charge and ray accuracies would of course give more accurate results, but it is difficult to obtain very accurate aberration coefficients because of the conflict between using small increments for the initial parameters, in which case numerical errors might be significant, and using large increments, when higher order efffects might be present. The user should always carefully explore the dependence on these increments.