Coverage for gpaw/ae.py: 97%
60 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-08 00:17 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-08 00:17 +0000
1"""Bare Coulomb potential for hydrogen."""
3import numpy as np
4from scipy.special import erf
6from gpaw.basis_data import Basis
7from gpaw.setup import BaseSetup
8from gpaw.spline import Spline
11class HydrogenAllElectronSetup(BaseSetup):
13 def __init__(self, alpha1=10.0, alpha2=300.0):
14 self.alpha1 = alpha1
15 self.alpha2 = alpha2
17 self.natoms = 0
18 self.E = 0.0
19 self.Z = 1
20 self.Nc = 0
21 self.Nv = 1
22 self.nao = None
23 self.pt_j = []
24 self.ni = 0
25 self.l_j = [0]
26 self.l_orb_J = [0]
27 self.n_j = [1]
28 self.tauct = self.nct = Spline.from_data(0, 0.5, [0.0, 0.0, 0.0])
29 self.Nct = 0.0
30 self.N0_p = np.zeros(0)
31 rc = 2.0
32 r_g = np.linspace(0, rc, 100)
33 r2_g = r_g**2
34 self.ghat_l = [Spline.from_data(0, rc, 4 * alpha1**1.5 / np.pi**0.5 *
35 np.exp(-alpha1 * r2_g))]
36 v_g = erf(alpha1**0.5 * r_g) - erf(alpha2**0.5 * r_g)
37 v_g[1:] *= (4 * np.pi)**0.5 / r_g[1:]
38 v_g[0] = 4 * (alpha1**0.5 - alpha2**0.5)
39 self.vbar = Spline.from_data(0, rc, v_g)
40 self.Delta_pL = np.zeros((0, 1))
41 self.Delta_iiL = np.zeros((0, 0, 1))
42 self.Delta0 = -1 / (4 * np.pi)**0.5
43 self.lmax = 0
44 self.K_p = self.M_p = self.MB_p = self.X_p = np.zeros(0)
45 self.M_pp = np.zeros((0, 0))
46 self.Kc = 0.0
47 self.MB = 0.0
48 self.M = -(alpha1 / 2 / np.pi)**0.5
49 self.xc_correction = None
50 self.dO_ii = np.zeros((0, 0))
51 self.type = 'all-electron'
52 self.fingerprint = None
53 self.symbol = 'H'
54 self.ExxC = 0.0
56 def get_default_nbands(self):
57 return 1
59 def build(self, basis):
60 if basis is None:
61 basis = Basis.find('H', 'sz(dzp)')
62 elif isinstance(basis, str):
63 basis = Basis.find('H', basis)
65 self.basis = basis
66 self.basis_functions_J = self.basis.tosplines()
67 self.pseudo_partial_waves_j = None # XXX
69 self.f_j = [1.0]
70 self.nao = self.basis.nao
72 def print_info(self, text):
73 text('Hydrogen all-electron potential')