-
Notifications
You must be signed in to change notification settings - Fork 0
Physics
In this section, I discuss physics, leaving numerical methods and implementation details for other sections.
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.
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.