% 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 R1=0.8; R2=1; d1=3; d2=1; Ltot = d1+d2; % total resonator length % 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 = abcd_lens(R2/2)*abcd_free_space(d2)*abcd_lens(R1/2)* abcd_free_space(d1); % spelling out abcd coefficients A = abcd_cavity(1,1); B = abcd_cavity(1,2); C = abcd_cavity(2,1); D = abcd_cavity(2,2); 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'); % stability parameter see eq.4 u = (A+D+2)/4; % resonator waist eq.10 w0 = sqrt ( 2*lambda/(pi*abs(C))*sqrt(u*(1-u)) ); % resonator waist location along 1st arm eq.11 z0 = (A-D)/(2*C); % Everything is periodic with respect to cavity length % so by taking modulus with respect to its length % we get rid of nasty virtual waist condition z0 = mod(z0,Ltot); % naturally the Gaussian beam curvature radius is huge i.e. wavefront is flat q0=wr2q(w0, inf, lambda); %Calculate initial q % time to build the optics set lns1.abcd=abcd_lens( R1/2 ) ; lns1.x = d1; lns2.abcd=abcd_lens( R2/2 ) ; lns2.x = d1+d2; optics={lns1,lns2}; % 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]; zstart = 0; qstart = gbeam_propagation(zstart, q0, z0, optics); zfinal = Ltot; qfinal = gbeam_propagation(zfinal, q0, z0, optics); % show beam in the resonator [waste_at_the_end, radius_at_the_end, waist_at_lens_position] = solution_visualization(qstart,zstart, qfinal, zfinal, optics, lambda, lens_width, display_prop)