OpticalLattice#
- class OpticalLattice(atom, laser, name, options)#
Bases:
OpticalPotentialOpticalLatticemodels 1D optical lattice band structure and couplings.Provides band energies and states via
BandEnergy,BlochState,BlochStateFourier,BlochStatePeriodic, Berry connectionBerryConnection, amplitude-modulation couplingsAmpModCoupling, and frequency scalings (AxialFrequency,RadialFrequency) derived from theLaserandAtomparameters. Quasi- momentum \(q\) is in [1/m], lattice spacing \(a=\lambda/2\) in [m], and wavevector \(\mathbf{k}\) in [rad/m].- Constructor Summary
- OpticalLattice(atom, laser, name, options)#
OpticalLatticeconstructor.- Parameters:
atom (
Atom) – Atomic species and structure datalaser (
Laser) – Lattice-forming laser/beamname (
string, optional) – Identifier for this latticemanifold (
string, optional) – Hyperfine manifold used for polarizability calculationsstateIndex (
double, optional) – Sublevel index within the chosen manifold
- Property Summary
- AmpMod#
Cached amplitude-modulation response (implementation-dependent)
- AmpModCoupling#
Cached amplitude-modulation coupling \(A_{mn}(q)\); size ~ (nBands x nBands x n_q)
- AxialFrequency#
Best-available \(f_z\) in [Hz]
- BandEnergy#
Cached band energies \(E_n(q)\) in [Hz]; size ~ (nBands x n_q)
- BandIndexMax#
Maximum band index included (largest \(n\) requested)
- BandIndexMaxFourier = 101#
Plane-wave cutoff (odd) : number of Fourier components \(n_{\mathrm{max}}\)
- BandIndexMaxFourierDefault = 101#
Default plane-wave cutoff \(n_{\mathrm{max}}\) (odd)
- BerryConnection#
Cached Berry connection \(\mathcal{A}_{mn}(q)\); size ~ (nBands x nBands x n_q)
- BlochState#
Cached Bloch states \(\phi_{n,q}(x)\) (functions or arrays)
- BlochStateFourier#
Cached plane-wave coefficients \(F_{j n}(q)\); size ~ (n_max x nBands x n_q)
- BlochStatePeriodic#
Cached periodic part \(u_{n,q}(x)\) (functions or arrays)
- Depth#
Best-available depth \(V_0\) in [Hz]
- DepthKd#
Lattice depth from Kapitza–Dirac calibration \(V_0\) in [Hz]
- DepthLaser#
Depth from laser intensity \(V_0\) in [Hz]
- DepthLu#
Dimensionless depth \(V_0/E_r\) (in recoil units)
- DepthSpec#
Lattice depth from spectroscopy \(V_0\) in [Hz]
- HarmonicFrequency#
Best-available \(f_0\) in [Hz]
- LatticeSpacing#
Lattice spacing \(a=\lambda/2\) in [m]
- QuasiMomentumList#
Quasi-momentum sampling \(q\) in [1/m]
- RadialFrequency#
Best-available \(f_\rho\) in [Hz]
- RadialFrequencySlosh#
Measured radial slosh frequency \(f_\rho\) in [Hz]
- SpaceList#
Spatial sampling list \(x\) or grid specification (implementation-dependent)
- Method Summary
- HamiltonianAmpModFourier1D(q, wf, nMax)#
Build time-dependent Fourier-space Hamiltonian under amplitude modulation.
- Parameters:
q (
double) – Quasi-momentum in [1/m]wf (
Waveform) – Modulation waveform \(m(t)\)nMax (
double) – Plane-wave cutoff (odd)
- Returns:
Function handle \(H(t)\) that yields the Hamiltonian matrix
- Return type:
function_handle
- computeAll1D(nq, n, x)#
Precompute bands, plane-wave coeffs, and couplings on a uniform q-grid.
- Parameters:
nq (
double, optional) – Number of q samplesn (
double, optional) – Max band index n to include
- computeAmpModCoupling1D(q, n)#
Compute amplitude-modulation coupling matrix between bands.
- Parameters:
q (
double, optional) – Quasi-momentum grid in [1/m]n (
double, optional) – Band indices
- Returns:
Coupling matrix \(A_{mn}(q)\)
- Return type:
double array (nBands x nBands x n_q)
- computeBand1D(q, n, x, options)#
Compute 1D Bloch bands and states for quasimomentum \(q\) and band index \(n\).
- Parameters:
q (
double) – Quasi-momentum in [1/m] (can be vector)n (
double) – Band indices (0=s,1=p,…) (vector of nonnegative integers)x (
double, optional) – Spatial grid \(x\) in [m] for real-space wavefunctions (optional)nMax (
double, optional) – Plane-wave cutoff (odd) overriding default
- Returns:
Band energies \(E_n(q)\) in [Hz]
- Return type:
double array (length(n) x length(q))
- Returns:
Fourier coefficients \(F_{j n}(q)\)
- Return type:
double array (nMax x length(n) x length(q))
- Returns:
Bloch states \(\phi_{n,q}(x)\) in real space
- Return type:
function_handle cell or double array depending on \(x\)
- Returns:
Periodic parts \(u_{n,q}(x)\) when requested
- Return type:
function_handle cell or double array
- computeBandPopulation1D(psicj, n, x)#
Compute band populations from real-space wavefunction \(\psi(x)\).
- Parameters:
psicj (
double) – Conjugate row-vectors of \(\psi\) (nPsi x N_x)n (
double, optional) – Band index/indices (0=s,1=p,…)x (
double, optional) – Spatial grid \(x\) in [m] (optional)
- Returns:
Populations per state and band (nPsi x nBands)
- Return type:
double
- computeBandPopulationFourier1D(ucj, q, n)#
Compute band populations from Fourier-periodic part \(u(x)\).
- Parameters:
ucj (
double) – Conjugate row-vectors of \(u\) in Fourier basis (n_u x nFourier)q (
double, optional) – Quasi-momentum samples in [1/m]n (
double, optional) – Band index/indices (0=s,1=p,…)
- Returns:
Populations per q and band (n_q x nBands)
- Return type:
double
- computeBerryConnection1D(q, n)#
Compute Berry connection \(\mathcal{A}_{mn}(q)\) from plane-wave \(F_{jn}(q)\).
- Parameters:
q (
double, optional) – Quasi-momentum grid in [1/m]n (
double, optional) – Band indices
- Returns:
Berry connection \(\mathcal{A}_{mn}(q)\)
- Return type:
double array (nBands x nBands x n_q)
- computeFloquetAmpMod1D(q, n, wf, isShuffle)#
Compute Floquet quasi-energies and modes under amplitude modulation.
- Parameters:
q (
double) – Quasi-momentum samples in [1/m]n (
double) – Band indices used for projectionwf (
Waveform) – Modulation waveform \(m(t)\)
- Returns:
Quasi-energies \(E_F\) in [Hz]
- Return type:
double array (nBands x n_q)
- Returns:
Floquet modes projected onto plane-wave basis
- Return type:
double array (nMax x nBands x n_q)
- computeQuasimomentumDistribution1D(psicj, n, x)#
- computeTransitionFrequency1D(q, n1, n2)#
Compute transition frequencies \(|E_{n_2}(q)-E_{n_1}(q)|\).
- Parameters:
q (
double) – Quasi-momentum in [1/m]n1 (
double) – Lower band index \(n_1\)n2 (
double) – Upper band index \(n_2\)
- Returns:
Transition frequency in [Hz] (same shape as \(q\))
- Return type:
double
- computeTransitionQuasiMomentum1D(freq, n1, n2)#
Compute quasi-momentum \(q\) at which \(|E_{n_2}(q)-E_{n_1}(q)|=f\).
- Parameters:
freq (
double) – Target transition frequency in [Hz]n1 (
double) – Lower band index \(n_1\)n2 (
double) – Upper band index \(n_2\)
- Returns:
Resonant \(q\) values in [1/m]
- Return type:
double
- computeTransitionQuasiMomentumFast1D(freq, n1, n2)#
Approximate resonant \(q\) using linearized \(\Delta E(q)\) near two roots.
- Parameters:
freq (
double) – Target transition frequency in [Hz]n1 (
double) – Lower band index \(n_1\)n2 (
double) – Upper band index \(n_2\)
- Returns:
Estimated resonant \(q\) in [1/m]
- Return type:
double
- plotAmpModCoupling1D(n, isPlotDiagonal)#
Plot amplitude-modulation coupling amplitude and phase versus \(q\).
- Parameters:
n (
double, optional) – Band indices (vector)isPlotDiagonal (
logical, optional) – Whether to include diagonal terms \(m=n\)
- plotBand1D(n)#
Plot 1D band energies \(E_n(q)\) versus quasi-momentum \(q\).
- Parameters:
n (
double, optional) – Band indices to plot (0=s,1=p,…)
- plotBandTransition1D(freq, n)#
Plot vertical transition lines at resonance for frequency \(f\).
- Parameters:
freq (
double, optional) – Modulation frequency \(f\) in [Hz]n (
double, optional) – Band indices (0=s,1=p,…) used for overlays
- plotBerryConnection1D(n, isPlotDiagonal)#
Plot Berry connection amplitude and phase versus \(q\).
- Parameters:
n (
double, optional) – Band indices (vector)isPlotDiagonal (
logical, optional) – Whether to include diagonal terms \(m=n\)
- removeGauge()#
Fix gauge to make \(\mathcal{A}_{nn}(q)\) single-valued and smooth.
- spaceFunc()#
Build lattice potential \(V(\mathbf{r})\) for 1D standing wave or Gaussian.
- Returns:
function handle mapping \(\mathbf{r}\) to \(V(\mathbf{r})\) [Hz]
- Return type:
function_handle
- updateIntensity()#
Set laser intensity to achieve target depth \(V_0\).