|
|
|
# Energy
|
|
|
|
Energy is computed from the formula:
|
|
|
|
```math
|
|
|
|
E=\int \mathcal{E}_{\textrm{edf}}(n,\nu,\ldots)\,d^3r+\sum_{\sigma}\int V_{\sigma}^{\textrm{(ext)}}(r)n_{\sigma}(r)\,d^3r-\int\left(\Delta^{\textrm{(ext)}}(r)\nu^*(r)+\textrm{h.c.}\right)d^3r-\sum_{\sigma}\int \vec{v}_{\sigma}^{\textrm{(ext)}}(r)\cdot\vec{j}_{\sigma}(r)\,d^3r
|
|
|
|
```
|
|
|
|
|
|
|
|
The instrictic energy is assumed to have the generic structure:
|
|
|
|
```math
|
|
|
|
E_{\textrm{edf}} = \int \mathcal{E}_{\textrm{edf}}\,d^3r = \int\left(\mathcal{E}_{\textrm{kin}} + \mathcal{E}_{\textrm{pot}} + \mathcal{E}_{\textrm{pair}} + \mathcal{E}_{\textrm{curr}}\right)d^3r
|
|
|
|
```
|
|
|
|
where:
|
|
|
|
* `E_kin`:
|
|
|
|
```math
|
|
|
|
E_{\textrm{kin}} = \int\mathcal{E}_{\textrm{kin}}\,d^3r = \int \sum_{\sigma=\{\uparrow,\downarrow\}}\frac{\alpha_{\sigma}}{2}\left(\tau_{\sigma}-\frac{\vec{j}_{\sigma}^2}{n_{\sigma}}\right)d^3r
|
|
|
|
```
|
|
|
|
* `E_pot`:
|
|
|
|
```math
|
|
|
|
E_{\textrm{pot}} = \int\mathcal{E}_{\textrm{pot}}\,d^3r =\int D(n_{\uparrow},n_{\downarrow}, \nu, \ldots)\,d^3r
|
|
|
|
```
|
|
|
|
* `E_pair`:
|
|
|
|
```math
|
|
|
|
E_{\textrm{pair}} = \int\mathcal{E}_{\textrm{pair}}\,d^3r =\int g(n_{\uparrow},n_{\downarrow})\nu^{\dagger}\nu\,d^3r
|
|
|
|
```
|
|
|
|
* `E_curr`:
|
|
|
|
```math
|
|
|
|
E_{\textrm{curr}} = \int\mathcal{E}_{\textrm{curr}}\,d^3r =\int \sum_{\sigma=\{\uparrow,\downarrow\}}\frac{\vec{j}_{\sigma}^2}{2n_{\sigma}}\,d^3r
|
|
|
|
```
|
|
|
|
Contributions to energies from the external potentials are:
|
|
|
|
* `E_potext`:
|
|
|
|
```math
|
|
|
|
E_{\textrm{pot.ext}} = \int \sum_{\sigma=\{\uparrow,\downarrow\}} V_{\sigma}^{\textrm{(ext)}}(r)n_{\sigma}(r)\,d^3r
|
|
|
|
```
|
|
|
|
* `E_pairext`:
|
|
|
|
```math
|
|
|
|
E_{\textrm{pair.ext}} = -\int\left(\Delta^{\textrm{(ext)}}(r)\nu^*(r)+\textrm{h.c.}\right)d^3r
|
|
|
|
```
|
|
|
|
* `E_velext`:
|
|
|
|
```math
|
|
|
|
E_{\textrm{vel.ext}} = -\int \sum_{\sigma=\{\uparrow,\downarrow\}}\vec{v}_{\sigma}^{\textrm{(ext)}}(r)\cdot\vec{j}_{\sigma}(r)\,d^3r
|
|
|
|
```
|
|
|
|
|
|
|
|
The total energy `E_tot` is computed as the sum of all these contributions.
|
|
|
|
|
|
|
|
# Densities
|
|
|
|
Densities are computed according to formulas:
|
|
|
|
* `nu`:
|
|
|
|
![\nu(r) = \frac{1}{2}\sum_{|E_n|<E_c} u_{n,\uparrow}(r)v_{n,\downarrow}^{*}(r)( f_{\beta}(-E_n)-f_{\beta}(E_n) )](https://render.githubusercontent.com/render/math?math=%5Cnu(r)%20%3D%20%5Cfrac%7B1%7D%7B2%7D%5Csum_%7B%7CE_n%7C%3CE_c%7D%20u_%7Bn%2C%5Cuparrow%7D(r)v_%7Bn%2C%5Cdownarrow%7D%5E%7B*%7D(r)(%20f_%7B%5Cbeta%7D(-E_n)-f_%7B%5Cbeta%7D(E_n)%20))
|
|
|
|
* `rho_a`:
|
|
|
|
![n_{\uparrow}(r)= \sum_{|E_n|<E_c}|u_{n,\uparrow}(r)|^2 f_{\beta}(E_n)](https://render.githubusercontent.com/render/math?math=n_%7B%5Cuparrow%7D(r)%3D%20%5Csum_%7B%7CE_n%7C%3CE_c%7D%7Cu_%7Bn%2C%5Cuparrow%7D(r)%7C%5E2%20f_%7B%5Cbeta%7D(E_n))
|
|
|
|
* `rho_b`:
|
|
|
|
![n_{\downarrow}(r) = \sum_{|E_n|<E_c}|v_{n,\downarrow}(r)| f_{\beta}(-E_n)](https://render.githubusercontent.com/render/math?math=n_%7B%5Cdownarrow%7D(r)%20%3D%20%5Csum_%7B%7CE_n%7C%3CE_c%7D%7Cv_%7Bn%2C%5Cdownarrow%7D(r)%7C%20f_%7B%5Cbeta%7D(-E_n))
|
|
|
|
* `tau_a`:
|
|
|
|
![\tau_{\uparrow}(r) = \sum_{|E_n|<E_c}|\nabla u_{n,\uparrow}(r)| f_{\beta}(E_n)](https://render.githubusercontent.com/render/math?math=%5Ctau_%7B%5Cuparrow%7D(r)%20%3D%20%5Csum_%7B%7CE_n%7C%3CE_c%7D%7C%5Cnabla%20u_%7Bn%2C%5Cuparrow%7D(r)%7C%20f_%7B%5Cbeta%7D(E_n))
|
|
|
|
* `tau_b`:
|
|
|
|
![\tau_{\downarrow}(r) = \sum_{|E_n|<E_c}|\nabla v_{n,\downarrow}(r)| f_{\beta}(-E_n)](https://render.githubusercontent.com/render/math?math=%5Ctau_%7B%5Cdownarrow%7D(r)%20%3D%20%5Csum_%7B%7CE_n%7C%3CE_c%7D%7C%5Cnabla%20v_%7Bn%2C%5Cdownarrow%7D(r)%7C%20f_%7B%5Cbeta%7D(-E_n))
|
|
|
|
* `j_a_x`, `j_a_y`, `j_a_z`:
|
|
|
|
![\vec{j}_{\uparrow}(r) = -\sum_{|E_n|<E_c} \textrm{Im}[u_{n,\uparrow}(r)\nabla u_{n,\uparrow}^*(r)] f_{\beta}(E_n)](https://render.githubusercontent.com/render/math?math=%5Cvec%7Bj%7D_%7B%5Cuparrow%7D(r)%20%3D%20-%5Csum_%7B%7CE_n%7C%3CE_c%7D%20%5Ctextrm%7BIm%7D%5Bu_%7Bn%2C%5Cuparrow%7D(r)%5Cnabla%20u_%7Bn%2C%5Cuparrow%7D%5E*(r)%5D%20f_%7B%5Cbeta%7D(E_n))
|
|
|
|
* `j_b_x`, `j_b_y`, `j_b_z`:
|
|
|
|
![\vec{j}_{\downarrow}(r) = \sum_{|E_n|<E_c} \textrm{Im}[v_{n,\downarrow}(r)\nabla v_{n,\downarrow}^*(r)] f_{\beta}(-E_n)](https://render.githubusercontent.com/render/math?math=%5Cvec%7Bj%7D_%7B%5Cdownarrow%7D(r)%20%3D%20%5Csum_%7B%7CE_n%7C%3CE_c%7D%20%5Ctextrm%7BIm%7D%5Bv_%7Bn%2C%5Cdownarrow%7D(r)%5Cnabla%20v_%7Bn%2C%5Cdownarrow%7D%5E*(r)%5D%20f_%7B%5Cbeta%7D(-E_n))
|
|
|
|
In these formulas $`E_{n}`$ denotes quasi-particle energy and $`E_c`$ is energy cut-off scale. Fermi distribution function $`f_{\beta}(E)=1/(\exp(\beta E)+1)`$ is introduced to model temperature $T=1/\beta$ effects.
|
|
|
|
|
|
|
|
Densities are accessible for user through structure [wslda_density](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/hpc-engine/wslda_potdens.h):
|
|
|
|
```c
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int nx;
|
|
|
|
int ny; /// for 1d code it is set to 1
|
|
|
|
int nz; /// for 1d and 2d code it is set to 1
|
|
|
|
int datadim; /// dimensonality of data
|
|
|
|
int blocklength; /// number of elements in potential array = nx*ny*nz
|
|
|
|
|
|
|
|
// densities
|
|
|
|
double complex *nu;
|
|
|
|
double *rho_a;
|
|
|
|
double *rho_b;
|
|
|
|
double *tau_a;
|
|
|
|
double *tau_b;
|
|
|
|
double *j_a_x;
|
|
|
|
double *j_a_y;
|
|
|
|
double *j_a_z;
|
|
|
|
double *j_b_x;
|
|
|
|
double *j_b_y;
|
|
|
|
double *j_b_z;
|
|
|
|
} wslda_density;
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
# Potentials
|
|
|
|
Minimization of the functional with respect to quasiparticle orbitals provides Bogoliubov-de Gennes type equations. Its general form is:
|
|
|
|
```math
|
|
|
|
\begin{pmatrix}h_{\uparrow}(r) & \Delta(r)+ \Delta_{\textrm{ext}}(r) \\\Delta^*(r)+ \Delta^*_{\textrm{ext}}(r) & -h^*_{\downarrow}(r)\end{pmatrix} \begin{pmatrix}u_{n\uparrow}(r) \\ v_{n\downarrow}(r)\end{pmatrix}= E_n\begin{pmatrix}u_{n\uparrow}(r) \\ v_{n\downarrow}(r)\end{pmatrix}
|
|
|
|
```
|
|
|
|
where single particle is given by
|
|
|
|
```math
|
|
|
|
h_{\sigma} = -\dfrac{1}{2}\vec{\nabla}\alpha_{\sigma}(r)\vec{\nabla} + V_{\sigma}(r)-\left(\mu_{\sigma}-V_{\sigma}^{\textrm{(ext)}}(r)\right)-\dfrac{i}{2}\left\lbrace \vec{A}_{\sigma}(r)-\vec{v}_{\sigma}^{\textrm{(ext)}}(r),\vec{\nabla} \right\rbrace
|
|
|
|
```
|
|
|
|
Potentials entering the hamiltonian are:
|
|
|
|
* `alpha_a` and `alpha_b`:
|
|
|
|
$`\alpha_{\sigma} = 2\dfrac{\delta\mathcal{E}_{\textrm{edf}}}{\delta \tau_{\sigma}}`$ -- effective mass,
|
|
|
|
* `V_a` and `V_b`:
|
|
|
|
$`V_{\sigma}=\dfrac{\delta\mathcal{E}_{\textrm{edf}}}{\delta n_{\sigma}}`$ -- meanfield potential,
|
|
|
|
* `A_a_x`, `A_a_y`, `A_a_z`, `A_b_x`, `A_b_z`, and `A_b_z`:
|
|
|
|
$`\vec{A}_{\sigma}=\dfrac{\delta\mathcal{E}_{\textrm{edf}}}{\delta \vec{j}_{\sigma}}`$ -- current potential,
|
|
|
|
* `delta`:
|
|
|
|
$`\Delta(r)=-\dfrac{\delta\mathcal{E}_{\textrm{edf}}}{\delta \nu^*}`$ -- paring potential.
|
|
|
|
|
|
|
|
Potentials are accessible for user through structure [wslda_potential](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/hpc-engine/wslda_potdens.h):
|
|
|
|
```c
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int nx;
|
|
|
|
int ny; /// for 1d code it is set to 1
|
|
|
|
int nz; /// for 1d and 2d code it is set to 1
|
|
|
|
int datadim; /// dimensonality of data
|
|
|
|
int blocklength; /// number of elements in potential array = nx*ny*nz
|
|
|
|
|
|
|
|
// potentials
|
|
|
|
double complex *delta;
|
|
|
|
double *alpha_a; /// effective mass, spin-a
|
|
|
|
double *alpha_b; /// effective mass, spin-b
|
|
|
|
double *V_a;
|
|
|
|
double *V_b;
|
|
|
|
double *A_a_x;
|
|
|
|
double *A_a_y;
|
|
|
|
double *A_a_z;
|
|
|
|
double *A_b_x;
|
|
|
|
double *A_b_y;
|
|
|
|
double *A_b_z;
|
|
|
|
} wslda_potential;
|
|
|
|
``` |
|
|
|
\ No newline at end of file |