Exact diagonalization

Numerical experiments » Anderson localization in dimension 2 and dimension 3 » 3d Anderson localization » Exact diagonalization

The 3d Anderson Hamiltonian can be numerically diagonalized on a finite lattice, using convenient boundary conditions (here, we use periodic boundary conditions, see line 67, 69, 71 of the script diagonalization_anderson_model_3d.py).

One can then look at the properties of the energy spectrum and eigenstates.

diagonalization_anderson_model_3d.py L W energy

L: system size
W: disorder strength
energy: target energy for the eigenstate to be printed

This script models localization in the 3d Anderson model with box disorder,  i.e. uncorrelated on-site energies w_n uniformly distributed in [-W/2,W/2].  The script diagonalizes the Hamiltonian for a system of finite size L, and periodic boundary conditions. Without disorder, the dispersion relation is energy=2*[cos(kx)+cos(ky)+cos(kz)], with support on [-6,6], so that, for a  finite size system, the eigenstates are plane waves with kx=i*2*pi/L, ky=j*2*pi/L, kz=k*2*pi/L with i,j,k integers -L/2<i,j,k<=L/2.  Eigenstates with +/i,+/-j,+/-k are degenerate, allowing to build symmetric and antisymmetric combinations which are thus real wavefunctions. In the presence of disorder, the eigenstates are localized for W>W_c=16.53. Below W_c, there are some states delocalized near the center of the band and localized when |E|>E_c(W). The script computes and prints the full energy spectum for a single realization of the disorder It also prints the wavefunction of the state which has energy closest to the input parameter "energy" and opens 3 windows containing plots of the total density projected on the xy, xz and yz planes.

1. No disorder

Simply run with W=0

  diagonalization_anderson_model_3d.py 12 0. 2.

Check that the energy spectrum is what you expected. Check that the eigenstates are delocalized.

2. Disorder W=12.

  diagonalization_anderson_model_3d.py 12 12.0 0.

Check that the eigenstates look delocalized.

  diagonalization_anderson_model_3d.py 12 12.0 8.

Check that the eigenstates look localized.

3. Disorder W=20.

  diagonalization_anderson_model_3d.py 12 20.0 0.

Look at eigenstates at various energies. Which localization properties do these plots suggest?

___________________________________________________________________________

In order to estimate the localization length, one can define the Inverse Particpation Ratio (IPR) defined for each eigenstate by

IPR=sum_i{|psi_i|^4}

For a delocalized state, one expects IPRapprox 1/L^3 and, for a localized state with localization length xi, one expects IPR approx 1/xi^3.

compute_IPR_anderson_model_3d.py L W nr nsteps

L: system size
W: disorder strength
nr: number of disorder realizations
nsteps: number of bins in the histogram of average(1/IPR) vs. energy

The script diagonalizes the Hamiltonian for a system of finite size L, and periodic boundary conditions. It computes the Inverse Participation Ratio of each state for a given realization of the disorder.  It then gathers 1/IPR vs. energy in the file "inverse_IPR.dat" and builds an histogram of the average value in "histogram_average_inverse_IPR.dat". The spectrum is strictyl bound by [-6-W/2,6+W/2]. The histogram is built in this range. In the presence of disorder, the eigenstates are localized for W>W_c=16.53. Below W_c, there are some states delocalized near the center of the band and localized when |E|>E_c(W).

  1.  W=12.
    Use different sizes, for example:
    compute_IPR_anderson_model_3d.py 8 12.0 10 50
    compute_IPR_anderson_model_3d.py 10 12.0 10 50
    compute_IPR_anderson_model_3d.py 12 12.0 2 50
    compute_IPR_anderson_model_3d.py 14 12.0 1 50 
    Compare the 4 histograms. What do you conclude?

  2. Do the same thing for W=20.0 (instead of 12.0).
    If results are not fully conclusive, you may have to push to system size 16 or 18.

What do you conclude on Anderson localization in 3d?

 __________________________________________________________________________

Warning: For some stupid reason, the CMS of this Web site refuses files with the .py extension. Thus, you have to manually rename the file, changing the final _py to .py