From cab5247871e07232e5c64322b32fe9170eec4b79 Mon Sep 17 00:00:00 2001 From: Eugeniy Mikhailov Date: Wed, 18 Sep 2013 08:21:38 -0400 Subject: renamed file for cavity design demo --- cavity_design.m | 85 ---------------------------------------------------- cavity_design_demo.m | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 85 deletions(-) delete mode 100644 cavity_design.m create mode 100644 cavity_design_demo.m diff --git a/cavity_design.m b/cavity_design.m deleted file mode 100644 index 7bddf35..0000000 --- a/cavity_design.m +++ /dev/null @@ -1,85 +0,0 @@ -% 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_mirror(R2)*abcd_free_space(d2)*abcd_mirror(R1)* 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 -mirror1.abcd = abcd_mirror( R1 ) ; -mirror1.x = d1; -mirror2.abcd = abcd_mirror( R2 ) ; -mirror2.x = d1 + d2; -optics={mirror1, mirror2}; - -% 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_mirrors] = solution_visualization(qstart,zstart, qfinal, zfinal, optics, lambda, lens_width, display_prop) - diff --git a/cavity_design_demo.m b/cavity_design_demo.m new file mode 100644 index 0000000..7bddf35 --- /dev/null +++ b/cavity_design_demo.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_mirror(R2)*abcd_free_space(d2)*abcd_mirror(R1)* 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 +mirror1.abcd = abcd_mirror( R1 ) ; +mirror1.x = d1; +mirror2.abcd = abcd_mirror( R2 ) ; +mirror2.x = d1 + d2; +optics={mirror1, mirror2}; + +% 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_mirrors] = solution_visualization(qstart,zstart, qfinal, zfinal, optics, lambda, lens_width, display_prop) + -- cgit v1.2.3