DyLab_3D_MOT/Stern_gerlach_separation/01_Calculate_trap_frequency.py
2022-09-02 13:30:37 +02:00

107 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
"""
Created on Fri Aug 27 15:14:48 2021
@author: Joschka
"""
from src import physical_constants as cs
import numpy as np
mu = 9.9* cs.mu_B/8
Grad_Bz = cs.m_Dy_164 * 9.81/(8*mu)
print("For levitation:")
print(f"dBz/dz = {Grad_Bz*1e4*1e-2:.4f} G/cm")
print("")
T = 1e-6
dt = 10e-3
sigma = np.sqrt(cs.k_B*T/cs.m_Dy_164) * dt
dz = 2 * sigma
print(f"cloud size: {sigma*1e3:.3f} mm")
#dz = 250e-6
Grad_Bz = 2 * dz * cs.m_Dy_164/(dt**2 * mu)
print(" ")
print("For Stern-Gerlach separation:")
print(f"dBz/dz = {Grad_Bz*1e4*1e-2:.4f} G/cm")
print(" ")
def cloud_pos(mF, dt = 10e-3):
a = mF*mu*Grad_Bz/cs.m_Dy_164 - 9.81
s = 0.5 * a *dt**2
return s
a8 = -8*mu*Grad_Bz/cs.m_Dy_164 - 9.81
a8_neg = 8*mu*Grad_Bz/cs.m_Dy_164 - 9.81
a7 = -7*mu*Grad_Bz/cs.m_Dy_164 - 9.81
s8 = 0.5 * a8 * dt**2
s8_neg = 0.5 * a8_neg * dt**2
s7 = 0.5 * a7 * dt**2
for mF in np.arange(-8,9,1):
print(f"for mF = {mF}: pos = {cloud_pos(mF) * 1e3} mm")
print(f"Total fall for m8 for acceleration due to magnetic field in same direction than gravity = {s8 * 1e3}mm")
print(f"Total lift for m8 for acceleration due to magnetic field in other direction than gravity = {s8_neg * 1e3}mm")
print(f"Fall without magnetic field = {-0.5 * 9.81 * dt**2 *1e3} mm")
print(f"s7 = {s7 * 1e3}mm")
print(f"diff = {(s8 - s7) * 1e3} mm")
# %%
# For thermal cloud size from paper
dt = 15e-3
sigma = 0.5e-3
T = 3.2e-6
sigma = np.sqrt(cs.k_B*T/cs.m_Dy_164) * dt
dz = 2 * sigma
print(f"cloud size: {sigma*1e3:.3f} mm")
#dz = 250e-6
Grad_Bz = 2 * dz * cs.m_Dy_164/(dt**2 * 1.241 * cs.mu_B)
print(" ")
print("For Stern-Gerlach separation:")
print(f"dBz/dz = {Grad_Bz*1e4*1e-2:.4f} G/cm")
print(" ")
# %%
dt1 = 10e-3
dt2 = 10e-3
dt = dt1 + dt2
sigma = np.sqrt(0.3e-3**2 + (np.sqrt(cs.k_B*T/cs.m_Dy_164) * dt)**2)
T = 3.2e-6
#sigma = np.sqrt(cs.k_B*T/cs.m_Dy_164) * dt
def cloud_sep(Grad_Bz, dt1 = 10e-3, dt2 = 0):
Grad_Bz*=1e-2
a = cs.mu_B * 1.241*Grad_Bz/cs.m_Dy_164
s1 = 0.5 * a *dt1**2
v1 = a * dt1
s2 = s1 + v1 * dt2
s3 = 0.5 * 9.81 *(dt1+dt2)**2
#print(f"fall:{s3*1e3}mm")
return s2*1e3
print(f"2 x sigma = {2*sigma*1e3}")
print(cloud_sep(8, dt1 = dt1, dt2 = dt2))
print(cloud_sep(30, dt1 = dt1, dt2 = dt2))