How to add astigmatic surfaces ?

The first way in OSCAR would be to use the function Add_Astigmatism(), it will add to the surface (object of class Interface) a Zernike polynomial of order 2,0 whose amplitude is given as a parameter. That is not always practical, as astigmatism is usually given as difference of radii of curvature.

For large Radii of Curvature (RoC >> size of the grid), it is possible to input directly an astigmatic surface. For example in the following code we define a RoC of 998m in X and 1002 in Y for the Interface EM_HR:

EM_HR = Interface(G1,'RoC',inf,'T',5E-6);

Astigma_RoC = 2;
RoC_X = -1000 - Astigma_RoC;
RoC_Y = -1000 + Astigma_RoC;
EM_HR.surface = (1/(2*RoC_X)*G1.D2_X.^2 + 1/(2*RoC_Y)*G1.D2_Y.^2); % G1 is the simulation grid, could be found also from EM_HR.Grid

If someone has the universal formula for parabolic mirrors, with no approximation I am interested.

Leave a Reply