Difference between revisions of "Documentation:Bosons in an optical lattice"

From ALPS
Jump to: navigation, search
(Theory)
(Implementation in Python)
Line 62: Line 62:
 
== Implementation in Python ==
 
== Implementation in Python ==
  
=== Synposis ===
+
=== An example ===
 
 
 
 
 
 
=== Example ===
 
  
 
These can be easily evaluated in the following:
 
These can be easily evaluated in the following:

Revision as of 17:47, 13 September 2013

Bandstructure of an homogeneous optical lattice

Theory

At this first moment, we shall look at the simplest case, i.e. a single particle of mass m which experiences a periodic potential V(\vec{r}), where


V(\vec{r}) = \sum_{x_\alpha = x,y,z} V_0^{x_\alpha} \sin^2 (\pi x_\alpha)

in the units of recoil energy E_r^\alpha = \frac{\hbar^2}{2m} \left( \frac{2\pi}{\lambda_\alpha} \right)^2 and lattice spacing \frac{\lambda_\alpha}{2}.

The quantum mechanical behaviour of the single particle follows


\left[\frac{1}{\pi^2} \left( -i \nabla + 2\pi \vec{k} \right)^2 + \sum_{x_\alpha = x,y,z} V_0^{x_\alpha} \sin^2 (\pi x_\alpha) \right] u_k (\vec{r}) = \epsilon_k u_k(\vec{r})

which is clearly separable to say the x-component:


\left[\frac{1}{\pi^2} \left( -i \partial_x + 2\pi k_x \right)^2 + V_0^{x} \sin^2 (\pi x) \right] u_{k_x} (x) = \epsilon_{k_x} u_{k_x}(x)    \,\,\,\,\, ,\,\,\,\,\, k_x = 0, \frac{1}{L_x} ,\cdots \frac{L_x-1}{L_x}

In the plane wave basis,


u_{k_x} (x) = \frac{1}{\sqrt{L_x}} \sum_{m \in \mathbf{Z}}  c_m^{(k_x)} e^{i2m\pi x}

we arrive at a tridiagonal diagonalization problem:


\left[  4(m + k_x)^2 + \frac{V_0^x}{2} \right] c_m^{(k_x)} - \frac{V_0^x}{4} c_{m-1}^{(k_x)} - \frac{V_0^x}{4} c_{m+1}^{(k_x)}  = \epsilon_{k_x}  c_m^{(k_x)}

The wannier function is defined as:


w(x) = \frac{1}{\sqrt{L_x}} \sum_{k_x} u_{k_x} (x) e^{i 2\pi k_x x} = \frac{1}{L_x} \sum_{k_x} \sum_{m \in \mathbf{Z}} c_m^{(k_x)} e^{i 2\pi (m+k_x) x}

and from there, one can calculate the onsite interaction:


U = g \int | w(x) |^4 dx = \frac{4 \pi a_s \hbar^2}{m}  \int | w(x) |^4 dx

After a little bit of algebra, we arrive at the hopping strength:


t = -\frac{1}{L_x} \sum_{k_x} \epsilon_{k_x} e^{-i2\pi k_x}

Finally, the Fourier transform of the wannier function is:


\tilde{w}(q_x) = \frac{1}{\sqrt{L_x}} \int w(x) e^{-i2\pi q_x x} dx  = \frac{1}{\sqrt{L_x}} \sum_{k_x} \sum_{m \in \mathbf{Z}} c_m^{(k_x)} \delta_{q_x, k_x+m}

Implementation in Python

An example

These can be easily evaluated in the following:

import numpy;
import pyalps.dwa;

V0   = numpy.array([8. , 8. , 8.]);      # in recoil energies
wlen = numpy.array([843., 843., 843.]);  # in nanometer
a    = 114.8;                            # s-wave scattering length in bohr radius
m    = 86.99;                            # mass in atomic mass unit
L    = 200;                              # lattice size (along 1 direction)

band = pyalps.dwa.bandstructure(V0, wlen, a, m, L);
>>> band

Optical lattice: 
================
V0    [Er] = 8	8	8	
lamda [nm] = 843	843	843	
Er2nK      = 154.89	154.89	154.89	
L          = 200 
g          = 5.68473

Band structure:
===============
t [nK] : 4.77051	4.77051	4.77051	
U [nK] : 38.7018
U/t    : 8.11272	8.11272	8.11272	

wk2[0 ,0 ,0 ] : 5.81884e-08
wk2[pi,pi,pi] : 1.39558e-08