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.