WIP: Introduce vector potential to GPAW
Preliminary work on introducing vector potential, right now, only for grid mode.
Uses the idea of parallel transport, i.e. the kinetic energy operator is transformed as
\frac{1}{2}p_x^2 \leftarrow \frac{1}{2} e^{-i \int_0^x dx' A_x(x',y,z)} p_x^2 e^{i \int_0^x dx' A_x(x',y,z)}
\frac{1}{2}p_y^2 \leftarrow \frac{1}{2} e^{-i \int_0^y dy' A_y(x,y',z)} p_y^2 e^{i \int_0^y dy' A_y(x,y',z)}
\frac{1}{2}p_z^2 \leftarrow \frac{1}{2} e^{-i \int_0^z dz' A_z(x,y,z')} p_z^2 e^{i \int_0^z dz' A_z(x,y,z')}
which corresponds to
\frac{1}{2}{\mathbf p}^2 \leftarrow \frac{1}{2}\left( \mathbf{p} + \mathbf{A} \right)^2
Two test cases are included, one with constant magnetic field and one with constant vector potential (doing nothing).
TODO:
-
Parallel implementation -
Gauge including PAW corrections -
Periodic boundary conditions for constant vector potential (easy) -
General unit cell Laplacians -
Periodic boundary conditions for constant magnetic field (hard) -
Lasers -
Including absorbing boundary conditions -
TDDFT -
Macroscopic current observable -
Bloch cell-periodic wave-functions
Edited by Mikael Kuisma