gradoptics.distributions.atom_cloud

class gradoptics.distributions.atom_cloud.AtomCloud(n=1000000, f=2, position=[0.31, 0.0, 0.0], w0=0.0005, h_bar=1.0545999999999999e-34, m=1.44e-25, x_a=0.0, y_a=0.0, z_a=0.0, t_final_bs=3.0, t_extra=0.1, port_bvz=0.15, k_fringe=16666.666666666668, a_quad=1e-12, phi=0.1, phi2=1.5707963267948966, proposal_distribution=<gradoptics.distributions.gaussian_distribution.GaussianDistribution object>)

Bases: gradoptics.distributions.base_distribution.BaseDistribution

Atom cloud with a sine-wave density modulation fringe pattern. Form and defaults from studies for MAGIS experiment.

__init__(n=1000000, f=2, position=[0.31, 0.0, 0.0], w0=0.0005, h_bar=1.0545999999999999e-34, m=1.44e-25, x_a=0.0, y_a=0.0, z_a=0.0, t_final_bs=3.0, t_extra=0.1, port_bvz=0.15, k_fringe=16666.666666666668, a_quad=1e-12, phi=0.1, phi2=1.5707963267948966, proposal_distribution=<gradoptics.distributions.gaussian_distribution.GaussianDistribution object>)
Parameters
  • n – Number of atoms (int)

  • position – Position of the center of the atom cloud [m] (list)

  • phi – Phase of the sine-wave density modulation fringe pattern (float)

  • w0 – Beam width [m]. Roughly standard deviation of the atom cloud. (float)

  • h_bar – Planck’s constant, [kg * m^2 / s] (float)

  • m – Strontium atom mass [kg] (float)

  • x_a – Atom cloud center, x [m] (float)

  • y_a – Atom cloud center, y [m] (float)

  • z_a – Atom cloud center, z [m] (float)

  • t_final_bs – Time until final beam splitter [s] (float)

  • k_fringe – Spatial frequency of fringe [1 / m] (float)

  • a_quad – Magnitude of quadratic term (float)

  • proposal_distribution – Proposal distribution used in rejection sampling for sampling from the unnormalized cloud distribution. Following units, mean, std in [m] (BaseDistribution)

marginal_cloud_density_x(x)

Returns the marginal pdf function along the x axis, evaluated at x

Warning

The pdf is unnormalized

Parameters

x – Value where the pdf should be evaluated , in meters (torch.tensor)

Returns

The marginal pdf function evaluated at x (torch.tensor)

marginal_cloud_density_y(y)

Returns the marginal pdf function along the y axis, evaluated at y

Warning

The pdf is unnormalized

Parameters

y – Value where the pdf should be evaluated , in meters (torch.tensor)

Returns

The marginal pdf function evaluated at y (torch.tensor)

marginal_cloud_density_z(z)

Returns the marginal pdf function along the z axis, evaluated at z

Warning

The pdf is unnormalized

Parameters

z – Value where the pdf should be evaluated , in meters (torch.tensor)

Returns

The marginal pdf function evaluated at z (torch.tensor)

pdf(x)

Returns the pdf function evaluated at x

Warning

The pdf is unnormalized

Parameters

x – Value where the pdf should be evaluated (torch.tensor)

Returns

The pdf function evaluated at x (torch.tensor)

sample(nb_points, device='cpu')

Samples from the distribution

Parameters
  • nb_points – Number of points to sample (int)

  • device – The desired device of returned tensor (str). Default is 'cpu'

Returns

Sampled points (torch.tensor)

plot(ax, **kwargs)

Plots the center of the atom cloud on the provided axes.

Parameters

ax – 3d axes (mpl_toolkits.mplot3d.axes3d.Axes3D)