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 *Interfac*e 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.