-
Notifications
You must be signed in to change notification settings - Fork 0
Physical quantities
[[TOC]]
Energy is computed from the formula:
The intrinsic energy is assumed to have a generic structure:
where:
-
E_kin:
-
E_pot:
-
E_pair:
-
E_curr:
Contributions to energies from the external potentials are:
-
E_potext:
-
E_pairext:
-
E_velext:
The total energy E_tot is computed as the sum of all these contributions.
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) )$ -
rho_a:
$n_{\uparrow}(r)= \sum_{|E_n|<E_c}|u_{n,\uparrow}(r)|^2 f_{\beta}(E_n)$ -
rho_b:
$n_{\downarrow}(r) = \sum_{|E_n|<E_c}|v_{n,\downarrow}(r)|^2 f_{\beta}(-E_n)$ -
tau_a:
$\tau_{\uparrow}(r) = \sum_{|E_n|<E_c}|\nabla u_{n,\uparrow}(r)|^2 f_{\beta}(E_n)$ -
tau_b:
$\tau_{\downarrow}(r) = \sum_{|E_n|<E_c}|\nabla v_{n,\downarrow}(r)|^2 f_{\beta}(-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)$ -
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)$
In these formulas
Densities are accessible to users through structure wslda_density:
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; /// dimensionality 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; Minimization of the functional with respect to quasiparticle orbitals provides Bogoliubov-de Gennes type equations. Its general form is:
where single particle hamiltonian is given by
Potentials entering the hamiltonian are:
-
alpha_aandalpha_b:
$\alpha_{\sigma} = 2\dfrac{\delta\mathcal{E}_{\textrm{edf}}}{\delta \tau_{\sigma}}$ -- effective mass, -
V_aandV_b:
$V_{\sigma}=\dfrac{\delta\mathcal{E}_{\textrm{edf}}}{\delta n_{\sigma}}$ -- mean-field potential, -
A_a_x,A_a_y,A_a_z,A_b_x,A_b_z, andA_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:
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; /// dimensionality 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;