In[1]:=

Needs["Wavica`Wavica`"]

+++++++++++++++++++++++++++++++++++++++

Rayica 2.0 was loaded in 22 s and needs 7097 kilobytes of memory on top of 4776 kilobytes already used

Wavica 1.0 was loaded.

Holographic Recording

In[2]:=

system = {GaussianBeam[1,.001,WaveLength->.405],
    Move[BeamSplitterCube[{10,90},10],20],
    Move[PlanoConcaveLens[-10,8,3],50],
    Move[PlanoConvexLens[100,25,4,CurvatureDirection->Back],130],
    Move[PlanoConvexLens[100,25,4],135],
    MoveReflected[Mirror[10,3],{25,0},{25,-75},{175,0}],
    MoveLinear[PlanoConcaveLens[-35,8,3],{25,-75},25,{175,0}],
    Move[Screen[25, "H"],175]}

Out[2]=

RowBox[{{, RowBox[{TagBox[StyleBox[TagBox[RowBox[{GaussianBeam, [, RowBox[{1, ,, 0.001, ,, Row ... owBox[{H, ,, 175.}], ]}], HoldForm], FontColor -> RGBColor[0., 0.392187, 0.]], DisplayForm]}], }}]

In[3]:=

AnalyzeSystem[{system,Move[Boundary[250,140],{0,-20}]},PlotType->TopView(*, RayLineRGB->Black*)];

[Graphics:HTMLFiles/index_4.gif]

FindInterference can be used to examine the 2-D intereference fringes on the surface.

In[4]:=

?FindInterference

FindInterference[system, options] is a function that determines the interference function betw ... ronts, InterferenceFunction, OpticalPathDifference, WaveFrontIntensity, and OpticalLengthFunction.

In[5]:=

interference = FindInterference[system]

Surface Location :  {ComponentNumber7, SurfaceNumber1, WaveFrontID1, Source1}

[Graphics:HTMLFiles/index_7.gif]

Surface Location :  {ComponentNumber7, SurfaceNumber1, WaveFrontID2, Source1}

[Graphics:HTMLFiles/index_9.gif]

[Graphics:HTMLFiles/index_10.gif]

Out[5]=

RowBox[{{, RowBox[{InterferenceFunctionCompiledFunction[-intensity data-], ,, OutputGr ... RowBox[{RayBoundary, , RowBox[{{, RowBox[{RowBox[{-, 6.06648}], ,, 6.11074}], }}]}]}], }}]

In[6]:=

interferencefunction = InterferenceFunction/.interference;

In[7]:=

Plot[interferencefunction[x],{x,0,.01},PlotPoints->200];

[Graphics:HTMLFiles/index_12.gif]

In[8]:=

?FindGratingFunction

FindGratingFunction[system, options] is a function that determines the grating function betwee ... nction is determined. \n \nSee also: Hologram, Grating, FindWaveFronts, and OpticalPathDifference.

In[9]:=

Options[FindGratingFunction]

Out[9]=

{SpatialScale1, NumberOfRays32, InterpolationOrder2, ZernikeFit ... 62754;Automatic, EnergyAutomatic, IntensityScale1, CosineCompensationTrue}

In[10]:=

gratingfunction = FindGratingFunction[system]

Surface Location :  {ComponentNumber7, SurfaceNumber1, WaveFrontID1, Source1}

Surface Location :  {ComponentNumber7, SurfaceNumber1, WaveFrontID2, Source1}

[Graphics:HTMLFiles/index_17.gif]

Out[10]=

RowBox[{{, RowBox[{RowBox[{GratingFunction, , RowBox[{(, RowBox[{RowBox[{{, RowBox[{Ro ... RowBox[{RayBoundary, , RowBox[{{, RowBox[{RowBox[{-, 6.06648}], ,, 6.11074}], }}]}]}], }}]

In[11]:=

Options[Grating]

Out[11]=

RowBox[{{, RowBox[{LabelsG, ,, LabelPositionsAutomatic, ,, ComponentDescriptio ... eRendering {{Fill, Trace}}, EdgeRenderingFill, CrossRenderingEmpty}}], }}]

In[12]:=

grating = Grating[GratingFunction/.gratingfunction,25,1,"HOE",DiffractedOrders->{{-1,.8},{0,.2},{1,0}}]

Out[12]=

HOE

Holographic Reconstruction

In[14]:=

AnalyzeSystem[{
    GaussianBeam[.9,.001,WaveLength->.405],
    GaussianBeam[.9,.001,WaveLength->.532],
    GaussianBeam[.9,.001,WaveLength->.660],
    Move[Mirror[10,3],25,45],
    MoveReflected[Mirror[10,3],{25,0},{25,-75},{175,0}],
    MoveLinear[PlanoConcaveLens[-35,8,3],{25,-75},25,{175,0}],
    Move[grating,175],
    Move[Boundary[250,140],{0,-20}]},PlotType->TopView, ShowArrows->True];

[Graphics:HTMLFiles/index_21.gif]


Created by Mathematica  (July 29, 2005)