-
Notifications
You must be signed in to change notification settings - Fork 0
Integration scheme
The td-wslda code solves equations of the form:
where the Hamiltonian is given by
and qpwfs):
Note that all qpwfs fluctuate in time with a typical oscillating factor
where
We convert time-dependent equations into from:
where:
Adams-Bashforth-Moulton (ABM) is designed as follow:
- predictor of 4-th order:
- corrector of 5-th order:
where
The algorithm requires 5 (wave function) buffers called:
The algorithm is as follows (operations listed within a single step have to be executed simultaneously):
-
Compute densities from
$y_{k-1}$ and formulate potentials (like$U(\bm{r})$ and$\Delta(\bm{r})$ ) needed to formulate Hamiltonian. This step requires MPI communication. For densities and potentials, use additional buffers; note they are small compared to wave function buffers. -
$y_{k-1} \leftarrow f(y_{k-1},k\Delta t)$ , this is the first application of Hamiltonian; use potentials formulated in step 2. This step can be done in batched mode. This is a numerically intensive step. -
$y_{k-1} \leftarrow \dfrac{251}{720}\Delta t y_{k-1} + f_{k-4}$ , this step can be merged with step 3. Now buffer$y_{k-1}$ holds wave functions for$t=k\Delta t$ . -
Compute densities from
$y_{k-1}$ and formulate potentials (like$U(\bm{r})$ and$\Delta(\bm{r})$ ) needed to formulate Hamiltonian. This step requires MPI communication. For densities and potentials, use additional buffers; note they are small compared to wave function buffers. -
Preparation of buffers for the next step. Note the last operation corresponds to the second application of Hamiltonian; use potentials formulated in step 5. This step can be done in batched mode. This is a numerically intensive step.
- Increase
$k$ by one and go to step 1.