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 and the last angular integral has been calculated as Y_LLv in the gaunt.py module.

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
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.