|
|
# Time dependent equations
|
|
|
# Time-dependent equations
|
|
|
The `td-wslda` code solves equations of the form:
|
|
|
```math
|
|
|
i \dot{\varphi_n}(t) = \hat{H}(\{\varphi_n\},t)\varphi_n(t)
|
... | ... | @@ -11,7 +11,7 @@ where the Hamiltonian is given by |
|
|
\Delta^*(\bm{r},t)& -h_{\downarrow}^*(\bm{r},t)
|
|
|
\end{pmatrix}
|
|
|
```
|
|
|
and $`\varphi_n`$ is shorthand notation for quasiparticle wavefunctions (`qpwfs`):
|
|
|
and $`\varphi_n`$ is a shorthand notation for quasiparticle wavefunctions (`qpwfs`):
|
|
|
```math
|
|
|
\varphi_n(\bm{r},t)=
|
|
|
\begin{pmatrix}
|
... | ... | @@ -52,7 +52,7 @@ where $`f_{k}=f(y_k, k\Delta t)`$. The accuracy of the method is set by the corr |
|
|
|
|
|
The algorithm requires 5 (wave function) buffers called: $`y_{k-1}`$, $`f_{k-1}`$, $`f_{k-2}`$, $`f_{k-3}`$, $`f_{k-4}`$.
|
|
|
|
|
|
The algorithm is as follow (operations listed within a single step have to be executed simultaneously):
|
|
|
The algorithm is as follows (operations listed within a single step have to be executed simultaneously):
|
|
|
|
|
|
1.
|
|
|
```math
|
... | ... | @@ -63,15 +63,15 @@ The algorithm is as follow (operations listed within a single step have to be ex |
|
|
\end{array}
|
|
|
\right.
|
|
|
```
|
|
|
2. 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 the are small in comparison to wave function buffers.
|
|
|
2. 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.
|
|
|
|
|
|
3. $`y_{k-1} \leftarrow f(y_{k-1},k\Delta t)`$, this is first application of Hamiltonian, as Hamiltonian use potentials formulated in step 2. This step can be done is batched mode. This is a numerically intensive step.
|
|
|
3. $`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.
|
|
|
|
|
|
4. $`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`$.
|
|
|
|
|
|
5. 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 the are small in comparison to wave function buffers.
|
|
|
5. 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.
|
|
|
|
|
|
6. Preparation of buffers for next step. Note, the last operation corresponds to second application of Hamiltonian, as Hamiltonian use potentials formulated in step 5. This step can be done is batched mode. This is numerically intensive step.
|
|
|
6. 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.
|
|
|
```math
|
|
|
\left\lbrace
|
|
|
\begin{array}{lll}
|
... | ... | |