%Permute all possible lens combinations out of set of lenses lens_set = [.075, .203]; %Given lenses of unique focal lengths lens_permutations = pick(lens_set,3,'or'); %3 lens solutions %Pre-defined Constants lambda= .795e-6 ; %Wavelength of beam Ltot= 1.54+.51+.4813 ; %Length of optical system r0= 1.0E+100 ; %Initial radius of curvature w0= 5.65e-4 ; %Initial waist x0= 0 ; %Starting position of beam wf= 2.6983e-4 ; %Desired final waist rf= 1.0E+100 ; %Desired final radius 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]; n_truncate = 3; %number of digits in truncated solution n_visualizations = 2; %number of best solutions to visualize n_hist = 1000; %number of sample points in histogram stability_max = 1; %max stability (y-axis) shown on energy vs. stability graph self_flag = 0; %Set to 1 to use Self's gaussian beam propagation, otherwise set to 0 %End list q0=wr2q(w0,r0,lambda); %Calculate intial q qf=wr2q(wf,rf,lambda); %Calculate final q %Mode match [ possible_lens_placement, initial_lens_placement, possible_lens_set, possible_sample_energy] = mode_match( q0, qf, Ltot, lambda, lens_permutations, lens_width, self_flag ); %Remove similar solutions [ possible_lens_placement_uniq, possible_lens_placement, possible_sample_energy, possible_lens_set, index ] = remove_similar_soln( possible_sample_energy, possible_lens_placement, possible_lens_set, n_truncate ); %Visualize solutions pick_visualization( possible_sample_energy, possible_lens_placement_uniq, possible_lens_placement, possible_lens_set, index, n_visualizations, q0, qf, Ltot, lambda, lens_width, display_prop ); %Plot energy vs. stability for each solution [stability] = stability_visualization( possible_lens_placement_uniq, q0, qf, Ltot, possible_lens_placement, possible_lens_set, lambda, n_visualizations, n_hist, index, self_flag ); energy_vs_stability( possible_sample_energy, stability, index, stability_max)