simbi.bec package
Submodules
simbi.bec.tf_ode_solver module
The expansion of the BEC in the Thomas-Fermi regime cannot be analytically solved. However, the hydrodynamic equations dictating it’s expansion result in three coupled second order differential equations which are fairly easily solved. This class solves these equations for given trap parameters and expansion time.
- simbi.bec.tf_ode_solver.expansion_solver(t, w0x, w0y, w0z)[source]
Wrapper for SolveExpansionODE function. Basically watches out for non-numpy array inputs for t and for t=0 values.
- Parameters:
t (ndarray | float) – Expansion times (s) we’re solving the coupled ODEs for.
w0x (float) – The trap frequency for the first axis.
w0y (float) – The trap frequency for the second axis.
w0z (float) – The trap frequency for the third axis.
- Returns:
Expansion scalars for the first axis. Expansion scalars for the second axis. Expansion scalars for the third axis.
- Return type:
Tuple[ndarray, ndarray, ndarray]
simbi.bec.thomas_fermi module
Calculates density, integrated densities, atom numbers and trap sizes for atoms in a BEC using the Thomas-Fermi approximation. The atoms are in or are released from a harmonic trap.
- simbi.bec.thomas_fermi.bec_atom_number(trap_freqs, m, a, mu)[source]
Calculates atom number in BEC using Thomas-Fermi approximation.
- Parameters:
trap_freqs (list[float]) – list of trap frequencies.
m (float) – Mass of the atom.
a (float) – Scattering length.
mu (float) – The chemical potential.
- Returns:
The number of atoms in the BEC.
- Return type:
atom_number
- simbi.bec.thomas_fermi.bec_density(coord_list, trap_freqs, m, a, mu, t=0)[source]
Calculates the density of the BEC. The number of coordinate arrays and trap frequencies sets whether the full 3D density is calculated or whether it should be integrated along one or two axes.
- Parameters:
coord_list (list[numpy.array]) – N long list of N-dimensional numpy arrays List of coordinate arrays.
trap_freqs (list[float]) – List of length N List of trap frequencies.
m (float) – Mass of the atom.
a (float) – Scattering length.
mu (float) – The chemical potential.
t (float) – The expansion time since trap was turned off.
- Returns:
- Numpy array
Returns the BEC atomic density in N dimensions.
- Return type:
Density
- simbi.bec.thomas_fermi.chemical_potential(trap_freqs, m, a, Nbec)[source]
Calculates BEC chemical potential using Thomas-Fermi approximation.
- Parameters:
trap_freqs (float) – list of trap frequencies.
m (float) – Mass of the atom.
a (float) – Scattering length.
Nbec (int) – The number of atoms in the BEC.
- Returns:
The chemical potential of the BEC.
- Return type:
mu
- simbi.bec.thomas_fermi.get_contact_interaction_factor(a, m)[source]
“Calculates the s-wave scattering contact interaction factor.
- Parameters:
a (float) –
m (float) –
- Return type:
float
- simbi.bec.thomas_fermi.get_initial_tf_radius(m, mu, wi)[source]
Calculates the in-trap Thomas-Fermi radius along a single trap axis.
- Parameters:
m (float) –
mu (float) –
wi (float) –
- Return type:
float
- simbi.bec.thomas_fermi.get_parabola(coords, trap_radii)[source]
- Calculates the N-dimensional upside-down parabola associated with the
Thomas-Fermi distribution with only positive values.
- Parameters:
coords (list[numpy.ndarray]) – N long list of N-dimensional numpy arrays representing coordinate arrays.
trap_radii (list[float]) – list of TF trap radii.
- Returns:
- N-dimensional array matching the shape of the input
coordinate arrays representing the parabola.
- Return type:
parabola
- simbi.bec.thomas_fermi.get_radii(trap_freqs, m, a, mu, t)[source]
Calculates all the TF radii including TF radii in the trap and after expansion for time t. Expansion scalars are also returned.
- Parameters:
trap_freqs (list[float]) – The three trap frequencies
m (float) – Mass of the atom.
a (float) – Scattering length.
mu (float) – The chemical potential.
t (float) – The expansion time since trap was turned off.
- Returns:
Thomas-Fermi radii when the trap is turned on. expansion_scalars: TF radii scalars for t seconds of expansion. tf_radii: TF radii after expanding for t seconds.
- Return type:
init_tf_radii
- simbi.bec.thomas_fermi.get_tf_radii(scalars, init_radii)[source]
Multiplies the initial Thomas-Fermi radii by the expansion scalars which are calculated using the TF expansion solver function.
- Parameters:
scalars (list[float]) – Expansion scalars for the three trap axes.
init_radii (list[float]) – Initial TF radii for the three trap axes.
- Returns:
The TF radii after expansion.
- Return type:
list[float]
Module contents
Created on Mon Mar 14 19:26:59 2022
@author: hofer