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]

simbi.bec.thomas_fermi.get_trap_time_attenuation(bx, by, bz)[source]

Expansion attenuates peak density by this scalar.

Parameters:
  • bx (float) –

  • by (float) –

  • bz (float) –

Return type:

float

Module contents

Created on Mon Mar 14 19:26:59 2022

@author: hofer