From 56b1c323dd39e58683196ab380816566538a019a Mon Sep 17 00:00:00 2001 From: Karthik Chandrashekara Date: Tue, 4 Feb 2025 00:02:07 +0100 Subject: [PATCH] Script to determine appropriate trap parameters to transfer BEC between static lattices. --- .gitignore | 3 + Estimations/EstimatesForStaticLattice.m | 151 ++++++++++++++++++++++++ 2 files changed, 154 insertions(+) create mode 100644 Estimations/EstimatesForStaticLattice.m diff --git a/.gitignore b/.gitignore index 0a2b5df..69886cb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,8 @@ Time-Series-Analyzer/Time-Series-Data *.png *.pyc *.mat +*.gif +*.mp4 +*.bat .ipynb_checkpoints/ .vscode/ \ No newline at end of file diff --git a/Estimations/EstimatesForStaticLattice.m b/Estimations/EstimatesForStaticLattice.m new file mode 100644 index 0000000..3b13a8b --- /dev/null +++ b/Estimations/EstimatesForStaticLattice.m @@ -0,0 +1,151 @@ +%% Physical constants +PlanckConstant = 6.62607015E-34; +PlanckConstantReduced = 6.62607015E-34/(2*pi); +FineStructureConstant = 7.2973525698E-3; +ElectronMass = 9.10938291E-31; +GravitationalConstant = 6.67384E-11; +ProtonMass = 1.672621777E-27; +AtomicMassUnit = 1.660539066E-27; +BohrRadius = 5.2917721067E-11; +BohrMagneton = 9.274009994E-24; +BoltzmannConstant = 1.38064852E-23; +StandardGravityAcceleration = 9.80665; +SpeedOfLight = 299792458; +StefanBoltzmannConstant = 5.670373E-8; +ElectronCharge = 1.602176634E-19; +VacuumPermeability = 1.25663706212E-6; +DielectricConstant = 8.8541878128E-12; +ElectronGyromagneticFactor = -2.00231930436153; +AvogadroConstant = 6.02214076E23; +ZeroKelvin = 273.15; +GravitationalAcceleration = 9.80553; +VacuumPermittivity = 1 / (SpeedOfLight^2 * VacuumPermeability); +HartreeEnergy = ElectronCharge^2 / (4 * pi * VacuumPermittivity * BohrRadius); +AtomicUnitOfPolarizability = (ElectronCharge^2 * BohrRadius^2) / HartreeEnergy; % Or simply 4*pi*VacuumPermittivity*BohrRadius^3 + +% Dy specific constants +Dy164Mass = 163.929174751*AtomicMassUnit; +Dy164IsotopicAbundance = 0.2826; +DyMagneticMoment = 9.93*BohrMagneton; + +%% Example usage: +a_s = 100 * BohrRadius; % Scattering length in meters +N = 1e5; % Number of atoms +v_x = 10; +v_y = 10; +v_z = 1E3; + +[R_x, R_y, R_z] = calculateThomasFermiRadiusFromTrapParameters(v_x, v_y, v_z, N, a_s, Dy164Mass); +fprintf('Thomas-Fermi radii: R_x = %.2f µm, R_y = %.2f µm, R_z = %.2f µm\n', R_x*1e6, R_y*1e6, R_z*1e6); + +%% + +% Define the parameters +Power_values = linspace(1, 10, 50); % Laser powers (W), from 1 W to 10 W +waist_values = linspace(10e-6, 100e-6, 50); % Beam waists (m), from 10 µm to 100 µm + +% Constants +a_s = 100 * BohrRadius; % Scattering length in meters +N = 1e5; % Number of atoms +AngleBetweenBeams = 9.44; +Wavelength = 532e-9; % Laser wavelength in meters +alpha = 180 * (AtomicUnitOfPolarizability / (2 * SpeedOfLight * VacuumPermittivity)); +R_z_matrix = zeros(length(waist_values), length(Power_values)); % Preallocate a matrix to store the R_z values + +% Loop over all combinations of P and w0 +for i = 1:length(waist_values) + for j = 1:length(Power_values) + % Calculate the Thomas-Fermi radii for each P and w0 + [R_z, LatticeConstant, AxialTrapFrequency] = calculateThomasFermiRadiusFromLatticeParameters(Power_values(j), waist_values(i), AngleBetweenBeams, Wavelength, N, a_s, Dy164Mass, alpha); + % Store the result in the matrix + R_z_matrix(i, j) = R_z * 1e6; % Convert R_z to µm + end +end + +% Plot the resulting matrix +figure(1) +clf +set(gcf,'Position',[50 50 950 750]) +imagesc(Power_values, waist_values * 1e6, R_z_matrix); % Specify x and y data for axes +hold on +[contour_matrix, contour_handle] = contour(Power_values, waist_values * 1e6, R_z_matrix, 'LineColor', 'white', 'LineWidth', 1.5); +clabel(contour_matrix, contour_handle, 'FontSize', 12, 'Color', 'black', 'LabelSpacing', 600); % Adjust LabelSpacing for better placement +set(gca, 'YDir', 'normal'); % Correct the y-axis direction +cbar = colorbar; % Add a colorbar +xlabel('Laser Power (W)','FontSize',16); +ylabel('Beam Waist (\mum)', 'Interpreter', 'tex','FontSize',16); +ylabel(cbar,'R_z (\mum)', 'Interpreter', 'tex','FontSize',16,'Rotation',270) +title(['\bf d = ' num2str(LatticeConstant * 1E6) ' \mum ; \bf \nu_z = ' num2str(round((AxialTrapFrequency/ (2*pi)) * 1E-3),3) ' kHz'],'fontsize',16, 'Interpreter', 'tex'); + + +%% +function [R_x, R_y, R_z] = calculateThomasFermiRadiusFromTrapParameters(v_x, v_y, v_z, N, a, m) + % Calculate the Thomas-Fermi radius of a BEC. + % + % Parameters: + % omega_x, omega_y, omega_z: Trap frequencies in x, y, z directions (Hz) + % N: Number of atoms + % a: s-wave scattering length (m) + % m: Mass of the atom (kg) + % + % Returns: + % R_x, R_y, R_z: Thomas-Fermi radii in meters + + omega_x = 2*pi*v_x; % Trap frequency in x direction (Hz) + omega_y = 2*pi*v_y; % Trap frequency in y direction (Hz) + omega_z = 2*pi*v_z; % Trap frequency in z direction (Hz) + + % Calculate the geometric mean of trap frequencies + omega_bar = (omega_x * omega_y * omega_z)^(1/3); + + % Constants + PlanckConstantReduced = 6.62607015E-34/(2*pi); % Reduced Planck's constant (J⋅s) + + % Calculate the mean harmonic oscillator length + a_ho = sqrt(PlanckConstantReduced / (m * omega_bar)); + + % Calculate the chemical potential + mu = 0.5 * PlanckConstantReduced * omega_bar * (15 * N * a / a_ho)^(2/5); + + % Calculate Thomas-Fermi radii + R_x = sqrt(2 * mu / (m * omega_x^2)); + R_y = sqrt(2 * mu / (m * omega_y^2)); + R_z = sqrt(2 * mu / (m * omega_z^2)); +end + +function [R_TF, d_lat, omega_eff] = calculateThomasFermiRadiusFromLatticeParameters(P, w_z, theta, lambda, N, a, m, alpha) + % Calculate Thomas-Fermi radius of a BEC in a Gaussian potential + % + % Inputs: + % P - Laser power (W) + % w_z - Beam waist (m) + % theta - angle between beams + % N - Number of atoms + % a - s-wave scattering length (m) + % m - Atomic mass (kg) + % + % Output: + % R_TF - Thomas-Fermi radius (m) + + % Constants + PlanckConstantReduced = 6.62607015E-34/(2*pi); % Reduced Planck's constant (J⋅s) + + % Calculate trap depth + I = (2 * P) / (pi * w_z^2); + U_single = alpha * I; + V_o = 4 * U_single; + + % Calculate lattice constant + d_lat = lambda / (2 * cos(deg2rad(theta)/2)); + + % Calculate effective trapping frequency + omega_eff = (pi / d_lat) * sqrt(2 * V_o / m); + + % Calculate chemical potential + a_ho = sqrt(PlanckConstantReduced / m * omega_eff); + mu = 0.5 * PlanckConstantReduced * omega_eff * (15 * N * a / a_ho)^(2/5); % Shallow lattice + + % Calculate Thomas-Fermi radius + R_TF = sqrt(2 * mu / (m * omega_eff^2)); +end +