Wavefront Maps and Profiles of Seidel Aberrations

Manipulate[Module[{parameters,xplot,yplot,plotProfile,bottom,gra,gr2a,parametersBlank,aberration,aberrationCylindrical,aberrationX,aberrationY,profilePlotOptions},

r2=((x^2)+(y^2));
parameters={tilt,tiltAng,focus,coma,comaAng,ast,astAng,sph};
parametersBlank={tilt_,tiltAng_,focus_,coma_,comaAng_,ast_,astAng_,sph_};
aberration[parametersBlank]:=tilt (x Cos[tiltAng Degree]+y Sin[tiltAng Degree])+coma (x r2 Cos[comaAng Degree]+y r2 Sin[comaAng Degree])+focus r2+ast (((x Cos[astAng Degree]+y Sin[astAng Degree]))^2)+sph (r2^2);
aberrationCylindrical[parametersBlank]:=tilt ρ Cos[θ-tiltAng Degree]+focus (ρ^2)+coma (ρ^3) Cos[θ-comaAng Degree]+ast (ρ^2) ((Cos[θ-astAng Degree])^2)+sph (ρ^4);
aberrationX[parametersBlank]:=tilt x Cos[tiltAng Degree]+focus (x^2)+coma (x^3) Cos[comaAng Degree]+ast (x^2) ((Cos[astAng Degree])^2)+sph (x^4);
aberrationY[parametersBlank]:=tilt y Sin[tiltAng Degree]+focus (y^2)+coma (y^3) Sin[comaAng Degree]+ast (y^2) ((Sin[astAng Degree])^2)+sph (y^4);
profilePlotOptions:={PlotRange->All,Frame->True,PlotLabel->Row[{Style["X",Italic]," profile (red), ", Style["Y",Italic]," profile (green)"}],
FrameTicks->Automatic,GridLines->Automatic,ImageSize->{350,248}};

xplot[parametersBlank]:=Plot[aberrationX[parameters],{x,-1,1},PlotStyle->{{RGBColor[1,0,0],Thickness[.008]}}];

yplot[parametersBlank]:=Plot[aberrationY[parameters],{y,-1,1},PlotStyle->{{RGBColor[0,1,0],Thickness[.008]}}];

plotProfile[parametersBlank,graphicsPlotType_]:=Show[{xplot[parameters],yplot[parameters]},Evaluate[profilePlotOptions],FrameLabel->Style[If[graphicsPlotType==densityPlot||graphicsPlotType==threeD,Row[{"OPD = ",N[aberration[parameters],2]}],Row[{"OPD = ",aberrationCylindrical[parameters]}],Row[{"OPD = ",aberrationCylindrical[parameters]}]],FontSize->12]];

GraphicsColumn[{plotProfile[parameters,graphicsPlotType],Switch[graphicsPlotType,

densityPlot,
DensityPlot[If[(x^2)+(y^2)≤1,0.5 (1+Cos[2 π aberration[parameters]]),1],{x,-1,1},{y,-1,1},ColorFunction->GrayLevel,PlotPoints->40,Mesh->False,Frame->True],

cylindricalPlot3D,
RevolutionPlot3D[aberrationCylindrical[parameters],{ρ,0,1},{θ,0,2 π},BoxRatios->{1,1,0.5},Axes->False,Boxed->False,ColorFunction->Function[{x,y,z},Hue[z]]],

cylindricalPlot3DStereo,
GraphicsRow[RevolutionPlot3D[aberrationCylindrical[parameters],{ρ,0,1},{θ,0,2 π},Axes->None,Boxed->False,ColorFunction->Function[{x,y,z},Hue[z]],ImageSize->125,BoxRatios->{1,1,0.5},ViewVertical->Dynamic[vV],ViewAngle->Dynamic[vA],#]&/@{ViewPoint->Dynamic[vp1,(vp1=#1;vp2=#1-{0.1,0,0})&],ViewPoint->Dynamic[vp2,(vp2=#1;vp1=#1+{0.1,0,0})&]},-20],

threeD,
Plot3D[If[(x^2)+(y^2)≤1,aberration[parameters],1],{x,-1,1},{y,-1,1},PlotPoints->30,Axes->False,BoxRatios->{1,1,0.5},Boxed->True,ColorFunction->Function[{x,y,z},Hue[z]]],

ShadowPlot3D,
gra=Plot3D[aberration[parameters],{x,-1,1},{y,-(Sqrt[1-(x^2)]),(Sqrt[1-(x^2)])},PlotPoints->20,Axes->False,ColorFunction->Function[{x,y,z},Hue[z]]];
bottom=3Min[Table[aberration[parameters],{x,-1,1,.1},{y,-(Sqrt[1-(x^2)]),(Sqrt[1-(x^2)])}]];gr2a=ReplacePart[gra,{1,1}-> gra[[1,1]]/.{x_,y_,z_}->{x,y,bottom}];Show[gra,gr2a,PlotRange -> All,BoxRatios->{1,1,.9},ImageSize->{250,300}],

_,
plotAberrationDensity[parameters]]},Center, 25,

ImageSize->{380,460}]],
Style[" aberration coefficients",Bold],
"",
{{tilt,-2,"tilt"},-5,5,0.25,Appearance->"Labeled", ImageSize->Tiny},
{{tiltAng,0,"tilt angle"},-180,180,5,Appearance->"Labeled", ImageSize->Tiny},
"",
{{focus,-6,"focus"},-6,6,0.25,Appearance->"Labeled", ImageSize->Tiny},
"",
{{coma,0,"coma"},-5,5,0.25,Appearance->"Labeled", ImageSize->Tiny},
{{comaAng,0,"coma angle"},-90,90,5,Appearance->"Labeled", ImageSize->Tiny},
"",
{{ast,0,"astigmatism"},-5,5,0.25,Appearance->"Labeled", ImageSize->Tiny},
{{astAng,0,"ast. angle"},-90,90,5,Appearance->"Labeled", ImageSize->Tiny},
"",
{{sph,6,"spherical"},-6,6,0.25,Appearance->"Labeled", ImageSize->Tiny},
"",
{{vp1,{0,-2,2}}, ControlType-> None},
{{vp2,{0,-2,2}-{0.1,0,0}}, ControlType-> None},
{{vV,{0,-1,1}}, ControlType-> None},
{{vA,25 Degree}, ControlType-> None},

{{graphicsPlotType,densityPlot,"plot type"},
{densityPlot->"density",
cylindricalPlot3D->"cylindrical",
cylindricalPlot3DStereo->"stereo pairs",
threeD->"3D",
ShadowPlot3D->"shadow 3D"},ControlType->PopupMenu, ImageSize->Tiny},
ControlPlacement->Left]

CAPTION

This Demonstration shows profile and wavefront maps for tilt, focus, and fourth-order wavefront aberrations coma, astigmatism, and spherical aberration. You can choose the wavefront map to be a density plot or one of several 3D plots, including stereo pairs of the cylindrical plot. The OPD (optical path difference) is the wavefront aberration calculated from the aberration coefficients.

DETAILS

The study of wavefront aberrations is very important in the design, fabrication, and testing of all optical systems. This Demonstration helps in the study of the Seidel monochromatic aberrations, named after L. Seidel, who in 1856 gave explicit formulas for calculating them. The Seidel aberrations are of the fourth degree in the pupil variables x and y and the field position when expressed as wavefront aberrations, and are of the third degree when expressed as transverse ray aberrations. Because of this, these aberrations are either known as third-order or fourth-order aberrations, depending upon whether transverse ray or wavefront aberrations are being considered. The five Seidel aberrations are coma, astigmatism, spherical aberration, distortion, and field curvature. At a given field position, distortion and field curvature are simply tilt and focus (curvature), respectively. The density plot shows what an interferogram testing an optical system with the fourth-order wavefront aberrations present would look like. The various 3D plots give a representation of the wavefront shape. A three-dimensional image of the wavefront aberration can be seen by looking at the stereo pairs of the 3D plots.

References

[1] W. J. Smith, Modern Optical Engineering, 4th ed., New York: McGraw–Hill, 2008.

[2] W. T. Welford, Aberrations of Optical Systems, Bristol: Adam Hilger, 1986.

[3] V. N. Mahajan, Optical Imaging and Aberrations, Part I: Ray Geometrical Optics, Bellingham, WA: SPIE Press, 1998.

[4] J. C. Wyant and K. Creath, "Basice Wavefront Aberration Theory for Optical Metrology," Applied Optics and Optical Engineering, Vol. XI (R. R. Shannon and J. C. Wyant, eds.), New York: Academic Press, 1992,  pp. 11–53.

[5] J. C. Wyant. "webMathematica and LiveGraphics3D." (Dec 22, 2011) wyant.optics.arizona.edu/math.htm.

THIS NOTEBOOK IS THE SOURCE CODE FROM

James C. Wyant

"Wavefront Maps and Profiles of Seidel Aberrations"
 http://demonstrations.wolfram.com/WavefrontMapsAndProfilesOfSeidelAberrations/
 Wolfram Demonstrations Project
 Published: January 4, 2012

A full-function Wolfram Mathematica system is required to edit this notebook.
GET WOLFRAM MATHEMATICA »

© Wolfram Demonstrations Project & Contributors   |   Terms of Use   |   Make a new version of this Demonstration »