From aa6e2305ee8f1664897dffffeaad7af09a67e830 Mon Sep 17 00:00:00 2001 From: Eugeniy Mikhailov Date: Tue, 17 Sep 2013 16:01:21 -0400 Subject: draft of cavity design --- cavity_design.m | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 cavity_design.m (limited to 'cavity_design.m') diff --git a/cavity_design.m b/cavity_design.m new file mode 100644 index 0000000..f8b8bcd --- /dev/null +++ b/cavity_design.m @@ -0,0 +1,85 @@ +% 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) + -- cgit v1.2.3