Minor corrections and checks before further development

This commit is contained in:
Karthik 2023-02-08 19:46:56 +01:00
parent 8b327d8ed6
commit 7a65aec270

View File

@ -54,7 +54,6 @@ def particleDensity(w_x, w_z, Power, Polarizability, N, T, m = 164*u.u): # For a
v_x = calculateTrapFrequency(w_x, w_z, Power, Polarizability, dir = 'x')
v_y = calculateTrapFrequency(w_x, w_z, Power, Polarizability, dir = 'y')
v_z = calculateTrapFrequency(w_x, w_z, Power, Polarizability, dir = 'z')
return N * (2 * np.pi)**3 * (v_x * v_y * v_z) * (m / (2 * np.pi * ac.k_B * T))**(3/2)
def thermaldeBroglieWavelength(T, m = 164*u.u):
@ -69,7 +68,7 @@ def scatteringLength(B):
return a_bkg
def dipolarLength(mu = 9.93 * ac.muB, m = 164*u.u):
return (m * ac.mu0 * mu**2) / (8 * np.pi * ac.hbar**2)
return (m * ac.mu0 * mu**2) / (12 * np.pi * ac.hbar**2)
def scatteringCrossSection(B):
return 8 * np.pi * scatteringLength(B)**2 + ((32*np.pi)/45) * dipolarLength()**2
@ -230,9 +229,6 @@ def computeTrapPotential(w_x, w_z, Power, Polarizability, options):
TrapFrequency = [v, dv]
ExtractedTrapFrequencies = [IdealTrapFrequency, TrapFrequency]
# Gamma_elastic = calculateElasticCollisionRate(w_x, w_z, Power, Polarizability, N = 1.13 * 1e7, T = 22 * u.uK, B = 0 * u.G)
# PSD = calculatePSD(w_x, w_z, Power, Polarizability, N = 1.13 * 1e7, T = 22 * u.uK).decompose()
return Positions, IdealTrappingPotential, TrappingPotential, TrapDepthsInKelvin, CalculatedTrapFrequencies, ExtractedTrapFrequencies
#####################################################################
@ -324,6 +320,9 @@ if __name__ == '__main__':
Polarizability = 184.4 # in a.u, most precise measured value of Dy polarizability
w_x, w_z = 27.5*u.um, 33.8*u.um # Beam Waists in the x and y directions
AspectRatio = 4.6
w_x = AspectRatio * w_x
options = {
'axis': 1, # axis referenced to the beam along which you want the dipole trap potential
'extent': 1e4, # range of spatial coordinates in one direction to calculate trap potential over
@ -338,13 +337,33 @@ if __name__ == '__main__':
ComputedPotentials = []
Params = []
Positions, IdealTrappingPotential, TrappingPotential, TrapDepthsInKelvin, CalculatedTrapFrequencies, ExtractedTrapFrequencies = computeTrapPotential(w_x, w_z, Power, Polarizability, options)
ComputedPotentials.append(IdealTrappingPotential)
ComputedPotentials.append(TrappingPotential)
Params.append([TrapDepthsInKelvin, CalculatedTrapFrequencies, ExtractedTrapFrequencies])
# Positions, IdealTrappingPotential, TrappingPotential, TrapDepthsInKelvin, CalculatedTrapFrequencies, ExtractedTrapFrequencies = computeTrapPotential(w_x, w_z, Power, Polarizability, options)
# ComputedPotentials.append(IdealTrappingPotential)
# ComputedPotentials.append(TrappingPotential)
# Params.append([TrapDepthsInKelvin, CalculatedTrapFrequencies, ExtractedTrapFrequencies])
ComputedPotentials = np.asarray(ComputedPotentials)
plotPotential(Positions, ComputedPotentials, options['axis'], Params)
# ComputedPotentials = np.asarray(ComputedPotentials)
# plotPotential(Positions, ComputedPotentials, options['axis'], Params)
AtomNumber = 1.13 * 1e7
Temperature = 30 * u.uK
BField = 0 * u.G
n = particleDensity(w_x, w_z, Power, Polarizability, N = AtomNumber, T = Temperature, m = 164*u.u).decompose().to(u.cm**(-3))
Gamma_elastic = calculateElasticCollisionRate(w_x, w_z, Power, Polarizability, N = AtomNumber, T = Temperature, B = BField)
PSD = calculatePSD(w_x, w_z, Power, Polarizability, N = AtomNumber, T = Temperature).decompose()
print('%.2E' % (n.value)* (n.unit))
print('%.2f' % (Gamma_elastic.value) * (Gamma_elastic.unit))
print('%.2E' % (PSD.value))
v_x = calculateTrapFrequency(w_x, w_z, Power, Polarizability, dir = 'x')
v_y = calculateTrapFrequency(w_x, w_z, Power, Polarizability, dir = 'y')
v_z = calculateTrapFrequency(w_x, w_z, Power, Polarizability, dir = 'z')
print(v_x)
print(v_y)
print(v_z)
# v, dv, popt, pcov = extractTrapFrequency(Positions, TrappingPotential, options['axis'])
# plotHarmonicFit(Positions, TrappingPotential, TrapDepthsInKelvin, options['axis'], popt, pcov)