Atomic PAW setups

Calculating matrix elements of nabla

This integral is needed for LrTDDFT and response function related quantities:

\[\langle\phi_i|\mathbf\nabla|\phi_{i'}\rangle - \langle\tilde\phi_i|\mathbf\nabla|\tilde\phi_{i'}\rangle,\]

where \(|\phi_i\rangle = \phi_i(\mathbf r) = \phi_j(r)Y_{\ell m}(\hat{\mathbf r})\), and \(|\tilde\phi_i\rangle = \tilde\phi_i(\mathbf r) = \tilde\phi_j(r)Y_{\ell m}(\hat{\mathbf r})\).

\[\langle\phi_i|\mathbf\nabla|\phi_{i'}\rangle = \langle\phi_i|\frac{\partial}{\partial r}(\phi_{j'}/r^{\ell'}) \frac{\partial r}{\partial \mathbf r} r^{\ell'}Y_{\ell'm'}\rangle + \langle\phi_i|\frac{\phi_{j'}}{r^{\ell'}} \mathbf\nabla(r^{\ell'}Y_{\ell'm'})\rangle.\]

Since we use real-valued spherical harmonics, we have:

\[\frac{\partial r}{\partial \mathbf r}= \hat{\mathbf r}=(x/r,y/r,z/r)= \sqrt{\frac{4\pi}{3}}(Y_{1m_x},Y_{1m_y},Y_{1m_z}).\]

Splitting the integral in radial and angular parts, we get:

\[\langle\phi_i|\frac{\partial}{\partial x}|\phi_{i'}\rangle = \sqrt{\frac{4\pi}{3}} \int r^2dr \phi_j\frac{\partial}{\partial r}(\phi_{j'}/r^{\ell'})r^{\ell'} G_{1m_x,\ell'm'}^{\ell m} + \int r^2dr \phi_j\phi_{j'}/r \int d\hat{\mathbf r} Y_{\ell m}r^{1-\ell'}\frac{\partial}{\partial x} (r^{\ell'}Y_{\ell'm'}),\]

where \(G_{\ell m,\ell'm'}^{\ell''m''}\) are Gaunt coefficents calculated with the gaunt() function and the last angular integral has been calculated with the nabla() function.

gpaw.gaunt.gaunt(lmax=2)[source]

Gaunt coefficients

\[Y_{L_{1}} (\hat{r}) Y_{L_{2}} (\hat{r}) = \sum^{}_{L} G^{L}_{L_{1} L_{2}} Y_{L} (\hat{r})\]
gpaw.gaunt.nabla(lmax=2)[source]

Create the array of derivative integrals.

\[\int d\hat{r} Y_{L} (\hat{r}) r^{1-l'} \frac{d}{d\mathbf{r}} [r^{l'} Y_{L'} (\hat{r})]\]

More stuff

class gpaw.setup.Setup(data, xc, lmax=0, basis=None, filter=None)[source]

Attributes:

Name

Description

Z

Charge

type

Type-name of setup (eg. ‘paw’)

symbol

Chemical element label (eg. ‘Mg’)

xcname

Name of xc

data

Container class for information on the the atom, eg. Nc, Nv, n_j, l_j, f_j, eps_j, rcut_j. It defines the radial grid by ng and beta, from which r_g = beta * arange(ng) / (ng - arange(ng)). It stores pt_jg, phit_jg, phi_jg, vbar_g

Attributes for making PAW corrections

Name

Description

Delta0

Constant in compensation charge expansion coeff.

Delta_iiL

Linear term in compensation charge expansion coeff.

Delta_pL

Packed version of Delta_iiL.

dO_ii

Overlap coefficients

B_ii

Projector function overlaps B_ii = <pt_i | pt_i>

dC_ii

Inverse overlap coefficients

E

Reference total energy of atom

M

Constant correction to Coulomb energy

M_p

Linear correction to Coulomb energy

M_pp

2nd order correction to Coulomb energy and Exx energy

M_wpp

2nd order correction to erfc screened Coulomb energy and Exx energy for given w.

Kc

Core kinetic energy

K_p

Linear correction to kinetic energy

ExxC

Core Exx energy

X_p

Linear correction to Exx energy

MB

Constant correction due to vbar potential

MB_p

Linear correction due to vbar potential

dEH0

Constant correction due to average electrostatic potential

dEH_p

Linear correction due to average electrostatic potential

I4_iip

Correction to integrals over 4 all electron wave functions

Nct

Analytical integral of the pseudo core density nct

It also has the attribute xc_correction which is an XCCorrection class instance capable of calculating the corrections due to the xc functional.

Splines:

Name

Description

pt_j

Projector functions

phit_j

Pseudo partial waves

vbar

vbar potential

nct

Pseudo core density

ghat_l

Compensation charge expansion functions

tauct

Pseudo core kinetic energy density

calculate_projector_overlaps(pt_jg)[source]

Compute projector function overlaps B_ii = <pt_i | pt_i>.

get_derivative_integrals(rgd, phi_jg, phit_jg)[source]

Calculate PAW-correction matrix elements of nabla.

/  _       _  d       _     ~   _  d   ~   _
| dr [phi (r) -- phi (r) - phi (r) -- phi (r)]
/        1    dx    2         1    dx    2

and similar for y and z.

get_magnetic_integrals(rgd, phi_jg, phit_jg)[source]

Calculate PAW-correction matrix elements of r x nabla.

/  _       _          _     ~   _      ~   _
| dr [phi (r) O  phi (r) - phi (r) O  phi (r)]
/        1     x    2         1     x    2

             d      d
where O  = y -- - z --
       x     dz     dy

and similar for y and z.

class gpaw.setup.Setups(Z_a, setup_types, basis_sets, xc, *, filter=None, world=None)[source]

Collection of Setup objects. One for each distinct atom.

Non-distinct atoms are those with the same atomic number, setup, and basis.

Class attributes:

nvalence Number of valence electrons. nao Number of atomic orbitals. Eref Reference energy. core_charge Core hole charge.

set_symmetry(symmetry)[source]

Find rotation matrices for spherical harmonics.