Optical Layout Example -- Mach-Zehnder Interferometer

Contents

Basic Example

BEAM PATH #1 OF 2

% Use "sub-shapes" to specify parameters for the launch,
% the lenses, the beamsplitters, the mirrors, and the absorbers,
% but do not draw anything yet.
LAUNCH_A = davinci( 'optical_layout.beam_launch',  'Position',           [0 0], ...
                                                   'Direction',          [1 0], ...
                                                   'ConeAngle',             40, ...
                                                   'BeamLineWidth',          2 );
% Lenses.
L1       = davinci( 'optical_layout.lens',         'LineWidth',              2 );
L2       = davinci( 'optical_layout.lens',         'DistanceToFocus',        5, ...
                                                   'LineWidth',              2 );
L3       = L2;
% Beamsplitters.
BS1      = davinci( 'optical_layout.beamsplitter', 'HeightOversizeFactor', 1.5, ...
                                                   'LineWidth',              2 );
BS2      = BS1;
% Mirrors.
M1       = davinci( 'optical_layout.mirror',       'Thickness',             .5, ...
                                                   'HeightOversizeFactor', 1.5 );
M2       = M1;
% Absorbers.
DET_1    = davinci( 'optical_layout.absorber',     'Height',                 2, ...
                                                   'Thickness',            0.2 );
DET_2    = DET_1;
% Assemble the first beam ("beam A").  Use the ">" operator to merge the "sub-shape"
% parameters with the travel distances.  Use the "/" operator to tilt
% optical components.  Do not draw anything yet.
BEAM_A = LAUNCH_A > 5 > L1 > 7 > (BS1/-45) > 15 > (M1/-45) > 8 > (BS2/45) > 4 > L2 > 5 > DET_1;
% Draw the layout.
[~,next_beam_launch] = davinci( 'optical_layout', 'Layout', BEAM_A );
daspect([1 1 1])   % Set aspect ratio to 1:1.

BEAM PATH #2 OF 2

% Launch from the 1st beamsplitter in beam path #1.
%   -- I.e., use next_beam_launch(1), not next_beam_launch(2).
%      next_beam_launch(2) is not needed to draw the
%      Mach-Zehnder.
% Specify the path the beam takes and the components the beam
% encounters (the ones not already drawn).  Do not draw anything.
BEAM_B = next_beam_launch(1) > 8 > (M2/45) > 19 > L3 > 5 > DET_2;
% Draw the layout.
hold on
davinci( 'optical_layout', 'Layout', BEAM_B );
hold off

Unannotated Figure