% Design of a laser cavity with focus on 2 bow-tie resonator % Notation follows % "Laser resonators with several mirrors and lenses with the bow-tie laser % resonator with compensation for astigmatism and thermal lens effects as an % example" by Haim Abitan and Torben Skettrup 2005 J. Opt. A: Pure Appl. Opt. 7 7 % doi:10.1088/1464-4258/7/1/002 % http://dx.doi.org/10.1088/1464-4258/7/1/002 % The cavity defined by two flat mirrors and distance between them dm % two concave mirrors with curvatures R1 and R2, and the shortest distance between them d1 % d2 is the beam path length from concave mirror -> flat -> flat -> concave mirror. % dm is part of d2 % let's set some parameters f1=0.4; f2=Inf; d1=.105; d2=.79-d1; Ltot = d1+d2; % total resonator length % time to build the optics set mirror1.abcd = abcd_lens( f1 ) ; mirror1.x = d1; mirror2.abcd = abcd_lens( f2 ) ; mirror2.x = d1+d2; optics={mirror1, mirror2}; % operational wavelength lambda = 795e-9; %% let's create cavity abcd matrix % follow figure 4: elements goes as d1, f1, d3, f2 % where f1 and f2 lens mirror equivalent with f_i=R_i/2 abcd_cavity = optics2abcd( optics ); if ~isCavityStable(abcd_cavity) display('Cavity is unstable !'); display('We should stop now. There is no stable mode in this cavity'); error('Not possible to calculate a cavity mode in the unstable cavity'); end display('Cavity is stable'); zstart = 0; qstart = abcd2self_repeating_q( abcd_cavity ); zfinal = Ltot; qfinal = q_after_abcd( qstart, abcd_cavity ); eps = 1e-8; % typical round of error if ( abs( q2wr(qstart, lambda ) - q2wr(qfinal, lambda) ) > eps ) % We should never be here if above functions do their job correctly display(qstart); display(qfinal); error('The calculation is incorrect: resonator mode sizes do not match at the beginning and the end. Go fix the code.'); end %% Preparing for the graphical mode output % display properties setup lens_width = .03; %Lens width show_lens_width = 1; %Set to 1 to enable display of lens width on solution propagation plot show_lens_position = 1; %Set to 1 to enable display of position of center of lens on solution propagation plot display_prop = [show_lens_width, show_lens_position]; % show beam in the resonator [waist_at_the_end, radius_at_the_end, waist_at_mirrors] = solution_visualization(qstart,zstart, qfinal, zfinal, optics, lambda, lens_width, display_prop); waist_at_mirrors display('Presumed size and location of the cavity waist'); [w0, z0] = cavity_optics2its_waist_and_position( optics, lambda ) q0_via_propagation = gbeam_propagation ( z0, qstart, zstart, optics ); [w0prop, R0prop] = q2wr(q0_via_propagation, lambda); % we expect R0prop to be infinite since it is focused point % w0prop should match w0 if ( abs( w0 - w0prop ) > eps ) % We should never be here if above functions do their job correctly display(w0prop); error('Different methods to calculate focused point parameters do not match'); end