Skip to content

Physics

Dominique Delande edited this page Apr 6, 2022 · 90 revisions

In this section, I discuss physics, leaving numerical methods and implementation details for other sections.

What is it?

The and-python is a project written mainly in Python for numerical simulations of disordered quantum systems, oriented towards transport properties such as Anderson localization. It provides different methods for solving the Schroedinger equation - either time-independent or time-dependent - or the time-dependent Gross-Pitaevskii equation. This allows to compute the Green function, and to deduce from it different quantities such as eigenergies/eigenstates, density of states, spectral function, total transmission across a sample, giving access to the localization length for the non-interacting (Schroedinger) system. It is aimed at computing quantities averaged over disorder realizations, although it can also provide the statistical distributions of some quantities. The present version should work in arbitrary dimension, although it has been tested only in dimensions 1, 2 and 3.

IMPORTANT: This project is for a one-body wave equation. It may be used for many-body physics in the mean-field approximation (Gross-Pitaevskii equation) but NOT for general many-body dynamics.

How does it work?

The starting point is the time-dependent Schroedinger equation for a massive particle in a disordered potential:

where the Hamiltonian is given by:

where V(r) is the disordered potential.

In configuration space, the Schroedinger equation writes:

It is this equation (or its time-independent counterpart) which is solved by the and-python software.

The Gross-Pitaevskii equation is supposed to be a good approximation for quantum many-body dynamics of bosons, in the mean-field approximation where the system is described by a single state \psi(t). It is a nonlinear equation, written here in configuarion space:

where g is the interaction strength between bosons. and-python can also solve this Gross-Pitaevskii, but it is limited to the regime of small g: it becomes very inefficient for large g.


The Schroedinger or Gross-Pitaevskii is discretized on a rectangular grid in configuration space. The kinetic energy (Laplace operator) is discretized with a 3-point (in 1D) approximation, altough higher degree approximations could be easily added.
The resulting discretized Hamiltonian is a sparse matrix (tridiagonal in 1D), which can be efficiently manipulated. For the Gross-Pitaevskii, the additional nonlinear term is purely diagonal. The choice of units is hbar=1 and, by default m=1, although the latter value can be modified using the parameter one_over_mass.

Note that it is possible to add an additional degree of freedom on each site, typically a spin, and various couplings betweeb configuration and spin spaces. The local Hilbert space on each site must be identical. At the moment, it has been tested only in dimension 1 with a spin-orbit interaction.

Possible calculations

Exact diagonalization

Localization length

Temporal propagation

Spectral function

Density of states

Clone this wiki locally