Refactoring
This commit is contained in:
@@ -1,106 +0,0 @@
|
|||||||
%all distances in m
|
|
||||||
close all
|
|
||||||
clear
|
|
||||||
clc
|
|
||||||
format compact
|
|
||||||
|
|
||||||
% These calculations are based on Ashkin's article "Forces of a single-beam
|
|
||||||
% gradient laser trap on a dielectric sphere in the ray optics regime".
|
|
||||||
% There are transverse forces only
|
|
||||||
|
|
||||||
n1 = 1.33; % index of refraction of the immersion medium
|
|
||||||
n2 = 1.6; % index of refraction of the fused silica at wavelength 523 nm
|
|
||||||
n = n2/n1; % n2/n1
|
|
||||||
c0 = 3e8; % speed of light
|
|
||||||
NA = 1.25; % numerical aperture
|
|
||||||
th_max = asin(NA/n1); % maximum angle of incidence
|
|
||||||
f = 100.0e-3; % objective lens focus or WD
|
|
||||||
r_max = f*tan(th_max); % radius of a Gaussian beam (1:1 with input aperture condition)
|
|
||||||
Rsp = 1.0e-6; % sphere radius
|
|
||||||
P = 20.0e-3; % power of the laser
|
|
||||||
|
|
||||||
thr = @(th) asin(n1/n2*sin(th)); % refraction angle
|
|
||||||
|
|
||||||
%reflectivity
|
|
||||||
R = @(th,psi) (tan(th-thr(th)).^2./tan(th+thr(th)).^2).*cos(psi).^2+...
|
|
||||||
(sin(th-thr(th)).^2./sin(th+thr(th)).^2).*sin(psi).^2;
|
|
||||||
|
|
||||||
%transparency
|
|
||||||
T = @(th,psi) 1-R(th,psi);
|
|
||||||
|
|
||||||
% Factors
|
|
||||||
Qs = @(th, psi) 1 + R(th, psi) .* cos(2*th) - T(th,psi).^2 .* (cos(2*th -...
|
|
||||||
2*thr(th)) + R(th, psi) .* cos(2*th)) ./ (1 + R(th,psi).^2 +...
|
|
||||||
2*R(th,psi) .* cos(2*thr(th)));
|
|
||||||
|
|
||||||
Qg = @(th, psi) R(th, psi) .* sin(2*th) - T(th,psi).^2 .* (sin(2*th -...
|
|
||||||
2*thr(th)) + R(th, psi) .* sin(2*th)) ./ (1 + R(th,psi).^2 +...
|
|
||||||
2*R(th,psi) .* cos(2*thr(th)));
|
|
||||||
|
|
||||||
% Average factors (circular polarization
|
|
||||||
Qs_avg = @(th) 0.5*(Qs(th, 0) + Qs(th, pi/2));
|
|
||||||
Qg_avg = @(th) 0.5*(Qg(th, 0) + Qg(th, pi/2));
|
|
||||||
|
|
||||||
% Angles
|
|
||||||
phi = @(r) atan(r/f);
|
|
||||||
gamma = @(beta,r) acos(cos(pi/2-phi(r)).*cos(beta));
|
|
||||||
thi = @(beta,r,y) asin(y/Rsp.*sin(gamma(beta,r)));
|
|
||||||
|
|
||||||
Qgy = @(beta,r,y) Qg_avg(thi(beta,r,y)).*cos(phi(r));
|
|
||||||
Qsy = @(beta,r,y) Qs_avg(thi(beta,r,y)).*sin(gamma(beta,r));
|
|
||||||
|
|
||||||
% Intensity profile
|
|
||||||
a = 1.0;
|
|
||||||
w0 = a*r_max;
|
|
||||||
|
|
||||||
%I = @(r) P/(pi*r_max^2); % uniform distribution
|
|
||||||
|
|
||||||
A = (1-exp(-2*r_max.^2/w0^2));
|
|
||||||
I0 = 2*P/(pi*w0^2)*A;
|
|
||||||
I = @(r) I0*exp(-2*r.^2/w0^2); % Gaussian TEM00 beam
|
|
||||||
|
|
||||||
%P0 = exp(0.5)*w0*0.0025/4.81;
|
|
||||||
%A = 2*pi*integral(@(r) r.*besselj(0,2.405/w0*r).^2,0,r_max)/P0;
|
|
||||||
%I = @(r) 1/(A*P0)*besselj(0,2.405/w0*r).^2; % Bessel beam
|
|
||||||
|
|
||||||
% Intensity profile graphics
|
|
||||||
rho = linspace(-r_max, r_max, 500);
|
|
||||||
figure
|
|
||||||
plot(rho, I(rho)/max(I(rho)),'k')
|
|
||||||
grid
|
|
||||||
xlabel('r, m')
|
|
||||||
ylabel('I(r)')
|
|
||||||
sdf('my')
|
|
||||||
|
|
||||||
% Integration
|
|
||||||
Qres_g = @(y) 1/(pi*r_max^2)*integral2(@(beta,r) r.*I(r).*...
|
|
||||||
iscomplex(Qgy(beta,r,y)),0,2*pi,0,r_max,...
|
|
||||||
'Method','iterated','AbsTol',1e-6,'RelTol',1e-6);
|
|
||||||
|
|
||||||
Qres_s = @(y) 1/(pi*r_max^2)*integral2(@(beta,r) r.*I(r).*...
|
|
||||||
iscomplex(Qsy(beta,r,y)),0,2*pi,0,r_max,...
|
|
||||||
'Method','iterated','AbsTol',1e-6,'RelTol',1e-6);
|
|
||||||
|
|
||||||
% Calulation
|
|
||||||
N = 150;
|
|
||||||
y = linspace(-2*Rsp,2*Rsp,N);
|
|
||||||
Transverse_g = zeros(1,N);
|
|
||||||
Transverse_s = zeros(1,N);
|
|
||||||
|
|
||||||
for ii = 1:N
|
|
||||||
Transverse_g(ii) = abs(Qres_g(y(ii)));
|
|
||||||
Transverse_s(ii) = Qres_s(y(ii));
|
|
||||||
end
|
|
||||||
|
|
||||||
Transverse = abs(Transverse_g) + Transverse_s;
|
|
||||||
|
|
||||||
F0 = n1*P/c0; % net force;
|
|
||||||
|
|
||||||
%Graphics
|
|
||||||
figure
|
|
||||||
plot(y,F0*Transverse_g,'r--',y,F0*Transverse_s,'b-.',y,F0*Transverse,'k')
|
|
||||||
legend('F_{g}','F_{s}','F_{t}')
|
|
||||||
xlabel('r, ì')
|
|
||||||
ylabel('F, Í')
|
|
||||||
grid
|
|
||||||
sdf('my')
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
load_constants
|
|
||||||
|
|
||||||
function angle = th_r(theta)
|
|
||||||
angle = asin(n1 / n2 * sin(theta));
|
|
||||||
end
|
|
||||||
|
|
||||||
function angle = ph_i(r)
|
|
||||||
angle = atan(r / f);
|
|
||||||
end
|
|
||||||
|
|
||||||
function angle = th_i(r, z)
|
|
||||||
angle = asin(z / Rsp .* sin(ph_i(r)));
|
|
||||||
end
|
|
||||||
|
|
||||||
function angle = gamma(beta, r)
|
|
||||||
angle = acos(cos(pi/2 - ph_i(r)) .* cos(beta));
|
|
||||||
end
|
|
||||||
|
|
||||||
function angle = theta(beta, r, y)
|
|
||||||
angle = asin(y / Rsp .* sin(gamma(beta, r)));
|
|
||||||
end
|
|
||||||
70
Matlab/axial.asv
Normal file
70
Matlab/axial.asv
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
clear
|
||||||
|
close all
|
||||||
|
clc
|
||||||
|
format compact
|
||||||
|
|
||||||
|
% These calculations are based on Ashkin's article "Forces of a single-beam
|
||||||
|
% gradient laser trap on a dielectric sphere in the ray optics regime".
|
||||||
|
% There are axial forces only
|
||||||
|
|
||||||
|
load_constants
|
||||||
|
|
||||||
|
% Factors plots
|
||||||
|
|
||||||
|
theta = linspace(0, pi/2, 500);
|
||||||
|
figure
|
||||||
|
plot(theta, qs_factor(theta, pi/4, n1, n2), ...
|
||||||
|
theta, -qg_factor(theta, pi/4, n1, n2), ...
|
||||||
|
theta, qmag_factor(theta, pi/4, n1, n2))
|
||||||
|
grid
|
||||||
|
xlabel('$\theta$, $^{\circ}$', 'Interpreter', 'latex')
|
||||||
|
ylabel('Q')
|
||||||
|
|
||||||
|
% Intensity profile plots
|
||||||
|
rho = linspace(-r_max, r_max, 500);
|
||||||
|
figure
|
||||||
|
I = gauss(rho, r_max, w0, P);
|
||||||
|
I0 = max(I);
|
||||||
|
plot(rho, I/I0, 'k')
|
||||||
|
grid
|
||||||
|
xlabel('r, м')
|
||||||
|
ylabel('I(r)')
|
||||||
|
|
||||||
|
% Integration
|
||||||
|
G0 = gauss_peak(r_max, w0, P);
|
||||||
|
Qres_g = @(z) 2 * pi * G0 * integral2(@(beta, r) r .* gauss(r, r_max, w0, P) .* ...
|
||||||
|
iscomplex(qg_z_factor(r, z, n1, n2, Rsp, f)), 0, 2*pi, 0, r_max, ...
|
||||||
|
'Method', 'iterated', 'AbsTol', 1e-6, 'RelTol', 1e-6);
|
||||||
|
|
||||||
|
Qres_s = @(z) 1 / (pi * r_max^2) * integral2(@(beta, r) r .* gauss(r, r_max, w0, P) .* ...
|
||||||
|
iscomplex(qs_z_factor(r, z, n1, n2, Rsp, f)), 0, 2*pi, 0, r_max, ...
|
||||||
|
'Method', 'iterated', 'AbsTol', 1e-6, 'RelTol', 1e-6);
|
||||||
|
|
||||||
|
% Calulation
|
||||||
|
N = 200;
|
||||||
|
z = linspace(-2*Rsp, 2*Rsp, N);
|
||||||
|
Axial_g = zeros(1, N);
|
||||||
|
Axial_s = zeros(1, N);
|
||||||
|
|
||||||
|
wb = waitbar(0, 'Calculating...');
|
||||||
|
for ii = 1:N
|
||||||
|
Axial_g(ii) = Qres_g(z(ii));
|
||||||
|
Axial_s(ii) = Qres_s(z(ii));
|
||||||
|
waitbar(ii / N, wb, 'Calculating...');
|
||||||
|
end
|
||||||
|
close(wb);
|
||||||
|
|
||||||
|
Axial_g = fliplr(Axial_g);
|
||||||
|
Axial_s = fliplr(Axial_s);
|
||||||
|
Axial = Axial_g + Axial_s;
|
||||||
|
z = -fliplr(z);
|
||||||
|
|
||||||
|
% Plots
|
||||||
|
figure
|
||||||
|
plot(z, F0 * Axial_g, 'b-.', ...
|
||||||
|
z, F0 * Axial_s, 'r--', ...
|
||||||
|
z, F0 * Axial, 'k')
|
||||||
|
legend('F_{g}','F_{s}','F_{t}')
|
||||||
|
xlabel('r, м')
|
||||||
|
ylabel('F, Н')
|
||||||
|
grid
|
||||||
@@ -8,13 +8,14 @@ format compact
|
|||||||
% There are axial forces only
|
% There are axial forces only
|
||||||
|
|
||||||
load_constants
|
load_constants
|
||||||
import factors.*
|
|
||||||
|
|
||||||
% Factors plots
|
% Factors plots
|
||||||
|
|
||||||
theta = linspace(0, pi/2, 500);
|
theta = linspace(0, pi/2, 500);
|
||||||
figure
|
figure
|
||||||
plot(theta, Qs(theta, pi/4), theta, -Qg(theta, pi/4), theta, Qmag(theta, pi/4))
|
plot(theta, qs_factor(theta, pi/4, n1, n2), ...
|
||||||
|
theta, -qg_factor(theta, pi/4, n1, n2), ...
|
||||||
|
theta, qmag_factor(theta, pi/4, n1, n2))
|
||||||
grid
|
grid
|
||||||
xlabel('$\theta$, $^{\circ}$', 'Interpreter', 'latex')
|
xlabel('$\theta$, $^{\circ}$', 'Interpreter', 'latex')
|
||||||
ylabel('Q')
|
ylabel('Q')
|
||||||
@@ -22,26 +23,28 @@ ylabel('Q')
|
|||||||
% Intensity profile plots
|
% Intensity profile plots
|
||||||
rho = linspace(-r_max, r_max, 500);
|
rho = linspace(-r_max, r_max, 500);
|
||||||
figure
|
figure
|
||||||
plot(rho, I(rho)/max(I(rho)),'k')
|
I = gauss(rho, r_max, w0);
|
||||||
|
I0 = max(I);
|
||||||
|
plot(rho, I/I0, 'k')
|
||||||
grid
|
grid
|
||||||
xlabel('r, м')
|
xlabel('r, м')
|
||||||
ylabel('I(r)')
|
ylabel('I(r)')
|
||||||
|
|
||||||
% Integration
|
% Integration
|
||||||
G0 = 2/(A*pi^2*r_max^2*w0^2);
|
G0 = gauss_peak(r_max, w0);
|
||||||
Qres_g = @(z) G0 * integral2(@(beta,r) r.*I(r).*...
|
Qres_g = @(z) 2 * pi * G0 * integral2(@(beta, r) r .* gauss(r, r_max, w0) .* ...
|
||||||
iscomplex(Qgz(r,z)),0,2*pi,0,r_max,...
|
iscomplex(qg_z_factor(r, z, n1, n2, Rsp, f)), 0, 2*pi, 0, r_max, ...
|
||||||
'Method','iterated','AbsTol',1e-6,'RelTol',1e-6);
|
'Method', 'iterated', 'AbsTol', 1e-12, 'RelTol', 1e-6);
|
||||||
|
|
||||||
Qres_s = @(z) G0 * integral2(@(beta,r) r.*I(r).*...
|
Qres_s = @(z) 2 * pi * G0 * integral2(@(beta, r) r .* gauss(r, r_max, w0) .* ...
|
||||||
iscomplex(Qsz(r,z)),0,2*pi,0,r_max,...
|
iscomplex(qs_z_factor(r, z, n1, n2, Rsp, f)), 0, 2*pi, 0, r_max, ...
|
||||||
'Method','iterated','AbsTol',1e-6,'RelTol',1e-6);
|
'Method', 'iterated', 'AbsTol', 1e-12, 'RelTol', 1e-6);
|
||||||
|
|
||||||
% Calulation
|
% Calulation
|
||||||
N = 200;
|
N = 200;
|
||||||
z = linspace(-2*Rsp,2*Rsp,N);
|
z = linspace(-2*Rsp, 2*Rsp, N);
|
||||||
Axial_g = zeros(1,N);
|
Axial_g = zeros(1, N);
|
||||||
Axial_s = zeros(1,N);
|
Axial_s = zeros(1, N);
|
||||||
|
|
||||||
wb = waitbar(0, 'Calculating...');
|
wb = waitbar(0, 'Calculating...');
|
||||||
for ii = 1:N
|
for ii = 1:N
|
||||||
@@ -58,7 +61,9 @@ z = -fliplr(z);
|
|||||||
|
|
||||||
% Plots
|
% Plots
|
||||||
figure
|
figure
|
||||||
plot(z,F0*Axial_g,'b-.',z,F0*Axial_s,'r--',z,F0*Axial,'k')
|
plot(z, F0 * Axial_g, 'b-.', ...
|
||||||
|
z, F0 * Axial_s, 'r--', ...
|
||||||
|
z, F0 * Axial, 'k')
|
||||||
legend('F_{g}','F_{s}','F_{t}')
|
legend('F_{g}','F_{s}','F_{t}')
|
||||||
xlabel('r, м')
|
xlabel('r, м')
|
||||||
ylabel('F, Н')
|
ylabel('F, Н')
|
||||||
|
|||||||
4
Matlab/bessel.m
Normal file
4
Matlab/bessel.m
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
% Bessel beam
|
||||||
|
function b = bessel(r, r_max, w0, P)
|
||||||
|
b = bessel_peak(r_max, w0, P) * besselj(0, 2.405/w0 * r).^2;
|
||||||
|
end
|
||||||
3
Matlab/bessel_peak.m
Normal file
3
Matlab/bessel_peak.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function peak = bessel_peak(r_max, w0, P)
|
||||||
|
peak = P * 4.81 / (w0 * r_max * exp(0.5)) * 2 * pi * integral(@(r) r.*besselj(0, 2.405/w0 * r).^2, 0, r_max) / P0;
|
||||||
|
end
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
function reflectivity = R(th, psi)
|
|
||||||
reflectivity = (tan(th - th_r(th)).^2 ./ tan(th + th_r(th)).^2) .* ...
|
|
||||||
cos(psi).^2 + ...
|
|
||||||
(sin(th - th_r(th)).^2 ./ sin(th + th_r(th)).^2) .* sin(psi).^2;
|
|
||||||
end
|
|
||||||
|
|
||||||
function transparency = T(th, psi)
|
|
||||||
transparency = 1 - R(th, psi);
|
|
||||||
end
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
% Factors
|
|
||||||
function factor = Qs(th, psi)
|
|
||||||
factor = 1 + R(th, psi) .* cos(2*th) - T(th, psi).^2.*...
|
|
||||||
(cos(2*th - 2*th_r(th)) + R(th, psi) .* cos(2*th)) ./ ...
|
|
||||||
(1 + R(th, psi).^2 + 2*R(th, psi) .* cos(2*th_r(th)));
|
|
||||||
end
|
|
||||||
|
|
||||||
function factor = Qg(th, psi)
|
|
||||||
factor = R(th, psi) .* sin(2*th) - T(th, psi).^2 .* ...
|
|
||||||
(sin(2*th - 2*th_r(th)) + R(th, psi) .* sin(2*th)) ./ ...
|
|
||||||
(1 + R(th, psi).^2 + 2*R(th, psi) .* cos(2*th_r(th)));
|
|
||||||
end
|
|
||||||
|
|
||||||
function factor = Qmag(th, psi)
|
|
||||||
factor = sqrt(Qs(th, psi).^2 + Qg(th, psi).^2);
|
|
||||||
end
|
|
||||||
|
|
||||||
% Average factors
|
|
||||||
function factor = Qs_avg(th)
|
|
||||||
factor = 0.5*(Qs(th, 0) + Qs(th, pi/2));
|
|
||||||
end
|
|
||||||
|
|
||||||
function factor = Qg_avg(th)
|
|
||||||
factor = 0.5*(Qg(th, 0) + Qg(th, pi/2));
|
|
||||||
end
|
|
||||||
|
|
||||||
function factor = Qmag_avg(th)
|
|
||||||
factor = sqrt(Qs_avg(th).^2 + Qg_avg(th).^2);
|
|
||||||
end
|
|
||||||
|
|
||||||
function factor = Qgz(r, z)
|
|
||||||
factor = -Qg_avg(th_i(r, z)) .* sin(ph_i(r));
|
|
||||||
end
|
|
||||||
|
|
||||||
function factor = Qsz(r, z)
|
|
||||||
factor = Qs_avg(th_i(r, z)) .* cos(ph_i(r));
|
|
||||||
end
|
|
||||||
3
Matlab/gamma_angle.m
Normal file
3
Matlab/gamma_angle.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function angle = gamma_angle(beta, r, focus)
|
||||||
|
angle = acos(cos(pi/2 - phi_i(r, focus)) .* cos(beta));
|
||||||
|
end
|
||||||
4
Matlab/gauss.m
Normal file
4
Matlab/gauss.m
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
% Gaussian TEM00 beam
|
||||||
|
function g = gauss(r, r_max, w0)
|
||||||
|
g = exp(-2 * r.^2 / w0^2);
|
||||||
|
end
|
||||||
4
Matlab/gauss_peak.m
Normal file
4
Matlab/gauss_peak.m
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
function peak = gauss_peak(r_max, w0)
|
||||||
|
A = (1 - exp(-2*r_max.^2 / w0^2));
|
||||||
|
peak = 2*A / (pi * w0^2);
|
||||||
|
end
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
load_constants
|
|
||||||
|
|
||||||
function g = gauss(r)
|
|
||||||
A = (1-exp(-2*r_max.^2 / w0^2));
|
|
||||||
I0 = 2*P / (pi * w0^2 * A);
|
|
||||||
g = I0 * exp(-2 * r.^2 / w0^2); % Gaussian TEM00 beam
|
|
||||||
end
|
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
Rsp = 1.0e-6; % sphere radius [m]
|
Rsp = 1.03e-6; % sphere radius [m]
|
||||||
n1 = 1.33; % index of refraction of the immersion medium
|
n1 = 1.3337; % index of refraction of the immersion medium
|
||||||
n2 = 1.6; % index of refraction of the fused silica at wavelength 523 nm
|
n2 = 1.4607; % index of refraction of the fused silica at wavelength 523 nm
|
||||||
n = n2/n1; % relative refraction index
|
n = n2/n1; % relative refraction index
|
||||||
c0 = 3e8; % speed of light [m/s]
|
c0 = 3e8; % speed of light [m/s]
|
||||||
NA = 1.25; % numerical apertur e
|
NA = 1.25; % numerical apertur e
|
||||||
f = 100.0e-3; % objective lens focus or WD [m]
|
f = 2.0e-3; % objective lens focus or WD [m]
|
||||||
P = 20.0e-3; % power of the laser [W]
|
P = 51.7e-3; % power of the laser [W]
|
||||||
F0 = n1*P/c0; % resulting force [N]
|
F0 = n1*P/c0; % resulting force [N]
|
||||||
th_max = asin(NA/n1); % maximum incidence angle
|
th_max = asin(NA/n1); % maximum incidence angle
|
||||||
|
|
||||||
|
ratio = 1.0; % the ratio of the beam radius to the aperture radius
|
||||||
r_max = f * tan(th_max); % radius of a Gaussian beam (1:1 with input aperture condition)
|
r_max = f * tan(th_max); % radius of a Gaussian beam (1:1 with input aperture condition)
|
||||||
aperture = 1.0;
|
w0 = ratio * r_max; % Gaussian beam waist radius [m]
|
||||||
w0 = aperture * r_max; % Gaussian beam waist radius [m]
|
|
||||||
3
Matlab/phi_i.m
Normal file
3
Matlab/phi_i.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function angle = phi_i(r, focus)
|
||||||
|
angle = atan(r / focus);
|
||||||
|
end
|
||||||
3
Matlab/qg_avg_factor.m
Normal file
3
Matlab/qg_avg_factor.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function factor = qg_avg_factor(th, n1, n2)
|
||||||
|
factor = 0.5*(qg_factor(th, 0, n1, n2) + qg_factor(th, pi/2, n1, n2));
|
||||||
|
end
|
||||||
8
Matlab/qg_factor.m
Normal file
8
Matlab/qg_factor.m
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
function factor = qg_factor(th, psi, n1, n2)
|
||||||
|
R = reflectivity(th, psi, n1, n2);
|
||||||
|
T = transmittance(th, psi, n1, n2);
|
||||||
|
theta_refl = th_r(th, n1, n2);
|
||||||
|
factor = R .* sin(2*th) - T.^2 .* ...
|
||||||
|
(sin(2*th - 2*theta_refl) + R .* sin(2*th)) ./ ...
|
||||||
|
(1 + R.^2 + 2*R .* cos(2*theta_refl));
|
||||||
|
end
|
||||||
3
Matlab/qg_y_factor.m
Normal file
3
Matlab/qg_y_factor.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function factor = qg_y_factor(beta, r, y, n1, n2, Rsp, focus)
|
||||||
|
factor = qg_avg_factor(th_i_y(beta, r, y, Rsp, focus), n1, n2).*sin(gamma_angle(beta, r, focus));
|
||||||
|
end
|
||||||
3
Matlab/qg_z_factor.m
Normal file
3
Matlab/qg_z_factor.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function factor = qg_z_factor(r, z, n1, n2, Rsp, focus)
|
||||||
|
factor = -qg_avg_factor(th_i_z(r, z, Rsp, focus), n1, n2) .* sin(phi_i(r, focus));
|
||||||
|
end
|
||||||
3
Matlab/qmag_avg_factor.m
Normal file
3
Matlab/qmag_avg_factor.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function factor = qmag_avg_factor(th, n1, n2)
|
||||||
|
factor = sqrt(qs_avg_factor(th, n1, n2).^2 + qg_avg_factor(th, n1, n2).^2);
|
||||||
|
end
|
||||||
3
Matlab/qmag_factor.m
Normal file
3
Matlab/qmag_factor.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function factor = qmag_factor(th, psi, n1, n2)
|
||||||
|
factor = sqrt(qs_factor(th, psi, n1, n2).^2 + qg_factor(th, psi, n1, n2).^2);
|
||||||
|
end
|
||||||
3
Matlab/qs_avg_factor.m
Normal file
3
Matlab/qs_avg_factor.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function factor = qs_avg_factor(th, n1, n2)
|
||||||
|
factor = 0.5*(qs_factor(th, 0, n1, n2) + qs_factor(th, pi/2, n1, n2));
|
||||||
|
end
|
||||||
9
Matlab/qs_factor.m
Normal file
9
Matlab/qs_factor.m
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
function factor = qs_factor(th, psi, n1, n2)
|
||||||
|
R = reflectivity(th, psi, n1, n2);
|
||||||
|
T = transmittance(th, psi, n1, n2);
|
||||||
|
theta_refl = th_r(th, n1, n2);
|
||||||
|
|
||||||
|
factor = 1 + R .* cos(2*th) - T.^2.*...
|
||||||
|
(cos(2*th - 2*theta_refl) + R .* cos(2*th)) ./ ...
|
||||||
|
(1 + R.^2 + 2*R .* cos(2*theta_refl));
|
||||||
|
end
|
||||||
3
Matlab/qs_y_factor.m
Normal file
3
Matlab/qs_y_factor.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function factor = qs_y_factor(beta, r, y, n1, n2, Rsp, focus)
|
||||||
|
factor = qs_avg_factor(th_i_y(beta, r, y, Rsp, focus), n1, n2).*cos(phi_i(r, focus));
|
||||||
|
end
|
||||||
3
Matlab/qs_z_factor.m
Normal file
3
Matlab/qs_z_factor.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function factor = qs_z_factor(r, z, n1, n2, Rsp, focus)
|
||||||
|
factor = qs_avg_factor(th_i_z(r, z, Rsp, focus), n1, n2) .* cos(phi_i(r, focus));
|
||||||
|
end
|
||||||
6
Matlab/reflectivity.m
Normal file
6
Matlab/reflectivity.m
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
function R = reflectivity(th, psi, n1, n2)
|
||||||
|
theta_refl = th_r(th, n1, n2);
|
||||||
|
R = (tan(th - theta_refl).^2 ./ tan(th + theta_refl).^2) .* ...
|
||||||
|
cos(psi).^2 + ...
|
||||||
|
(sin(th - theta_refl).^2 ./ sin(th + theta_refl).^2) .* sin(psi).^2;
|
||||||
|
end
|
||||||
3
Matlab/th_i_y.m
Normal file
3
Matlab/th_i_y.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function angle = th_i_y(beta, r, y, Rsp, focus)
|
||||||
|
angle = asin(y / Rsp .* sin(gamma_angle(beta, r, focus)));
|
||||||
|
end
|
||||||
3
Matlab/th_i_z.m
Normal file
3
Matlab/th_i_z.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function angle = th_i_z(r, z, Rsp, focus)
|
||||||
|
angle = asin(z / Rsp .* sin(phi_i(r, focus)));
|
||||||
|
end
|
||||||
3
Matlab/th_r.m
Normal file
3
Matlab/th_r.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function angle = th_r(theta, n1, n2)
|
||||||
|
angle = asin(n1 / n2 * sin(theta));
|
||||||
|
end
|
||||||
3
Matlab/theta_angle.m
Normal file
3
Matlab/theta_angle.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function angle = theta_angle(beta, r, y, Rsp, focus)
|
||||||
|
angle = asin(y / Rsp .* sin(gamma(beta, r, focus)));
|
||||||
|
end
|
||||||
3
Matlab/transmittance.m
Normal file
3
Matlab/transmittance.m
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function T = transmittance(th, psi, n1, n2)
|
||||||
|
T = 1 - reflectivity(th, psi, n1, n2);
|
||||||
|
end
|
||||||
56
Matlab/transverse.m
Normal file
56
Matlab/transverse.m
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
%all distances in m
|
||||||
|
close all
|
||||||
|
clear
|
||||||
|
clc
|
||||||
|
format compact
|
||||||
|
|
||||||
|
% These calculations are based on Ashkin's article "Forces of a single-beam
|
||||||
|
% gradient laser trap on a dielectric sphere in the ray optics regime".
|
||||||
|
% There are transverse forces only
|
||||||
|
|
||||||
|
load_constants
|
||||||
|
|
||||||
|
% Intensity profile graphics
|
||||||
|
rho = linspace(-r_max, r_max, 500);
|
||||||
|
I = gauss(rho, r_max, w0);
|
||||||
|
I0 = max(I);
|
||||||
|
figure
|
||||||
|
plot(rho, I/I0, 'k')
|
||||||
|
grid
|
||||||
|
xlabel('r, m')
|
||||||
|
ylabel('I(r)')
|
||||||
|
|
||||||
|
% Integration
|
||||||
|
Qres_g = @(y) integral2(@(beta, r) r .* gauss(r, r_max, w0) .* ...
|
||||||
|
iscomplex(qg_y_factor(beta, r, y, n1, n2, Rsp, f)), 0, 2*pi, 0, r_max, ...
|
||||||
|
'Method', 'iterated', 'AbsTol', 1e-6, 'RelTol', 1e-6);
|
||||||
|
|
||||||
|
Qres_s = @(y) integral2(@(beta, r) r .* gauss(r, r_max, w0) .* ...
|
||||||
|
iscomplex(qs_y_factor(beta, r, y, n1, n2, Rsp, f)), 0, 2*pi, 0, r_max, ...
|
||||||
|
'Method', 'iterated', 'AbsTol', 1e-6, 'RelTol', 1e-6);
|
||||||
|
|
||||||
|
% Calulation
|
||||||
|
N = 150;
|
||||||
|
y = linspace(-2*Rsp, 2*Rsp, N);
|
||||||
|
Transverse_g = zeros(1, N);
|
||||||
|
Transverse_s = zeros(1, N);
|
||||||
|
|
||||||
|
wb = waitbar(0, 'Calculating...');
|
||||||
|
for ii = 1:N
|
||||||
|
Transverse_g(ii) = abs(Qres_g(y(ii)));
|
||||||
|
Transverse_s(ii) = Qres_s(y(ii));
|
||||||
|
waitbar(ii / N, wb, 'Calculating...');
|
||||||
|
end
|
||||||
|
close(wb);
|
||||||
|
|
||||||
|
Transverse = abs(Transverse_g) + Transverse_s;
|
||||||
|
|
||||||
|
%Graphics
|
||||||
|
figure
|
||||||
|
plot(y, F0 * Transverse_g,'r--', ...
|
||||||
|
y, F0 * Transverse_s, 'b-.', ...
|
||||||
|
y, F0*Transverse, 'k')
|
||||||
|
legend('F_{g}','F_{s}','F_{t}')
|
||||||
|
xlabel('r, ì')
|
||||||
|
ylabel('F, Í')
|
||||||
|
grid
|
||||||
4
Matlab/uniform.m
Normal file
4
Matlab/uniform.m
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
% Beam with uniform distribution
|
||||||
|
function u = uniform(r, w0, r_max, P)
|
||||||
|
u = P / (pi*r_max^2);
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user