summaryrefslogtreecommitdiff
path: root/gbeam_propagation_froward_only.m
diff options
context:
space:
mode:
Diffstat (limited to 'gbeam_propagation_froward_only.m')
-rw-r--r--gbeam_propagation_froward_only.m10
1 files changed, 7 insertions, 3 deletions
diff --git a/gbeam_propagation_froward_only.m b/gbeam_propagation_froward_only.m
index afc1316..8a14cf5 100644
--- a/gbeam_propagation_froward_only.m
+++ b/gbeam_propagation_froward_only.m
@@ -1,4 +1,4 @@
-function q = gbeam_propagation_froward_only(x_pos, q_in, x_in, optics_elements)
+function [q, q_lens] = gbeam_propagation_froward_only(x_pos, q_in, x_in, optics_elements)
% calculate the 'q' parameter of the Gaussian beam propagating through optical
% 'optics_elements' only in the positive direction along 'x' axis at points 'x_pos'
% takes the gaussian beam with initial q_in parameter at x_in
@@ -8,6 +8,10 @@ function q = gbeam_propagation_froward_only(x_pos, q_in, x_in, optics_elements)
%
% all x_pos must be to the right of x_in
% x_pos must be monotonic!
+
+ %Initialize q_lens (q at position of lens)
+ q_lens = zeros(1,size(optics_elements,2));
+
if (any(x_pos < x_in))
error('all beam positions must be to the right of the x_in');
end
@@ -35,6 +39,7 @@ function q = gbeam_propagation_froward_only(x_pos, q_in, x_in, optics_elements)
end
%propagate beam up to the lens
q_at_lens = q_after_free_space(q_last_calc,elx - x_last_calc);
+ q_lens(k) = q_at_lens;
%Applying lens transformation
q_last_calc=q_after_abcd(q_at_lens,el.abcd);
x_last_calc = elx;
@@ -45,8 +50,7 @@ function q = gbeam_propagation_froward_only(x_pos, q_in, x_in, optics_elements)
index = (x_last_calc <= x_pos);
x=x_pos(index);
q(index)= q_after_free_space(q_last_calc,x-x_last_calc);
-
-
+
end