def test_kuhf_1d(self): L = 4 cell = pbcgto.Cell() cell.build( unit='B', a=np.eye(3) * 4, mesh=[8, 20, 20], atom='''He 2 0 0; He 3 0 0''', dimension=1, low_dim_ft_type='inf_vacuum', verbose=0, rcut=7.427535697575829, basis={ 'He': [ [0, (0.8, 1.0)], #[0, (1.0, 1.0)], [0, (1.2, 1.0)] ] }) mf = kuhf.KUHF(cell) mf.with_df = df.AFTDF(cell) mf.with_df.eta = 0.2 mf.init_guess = 'hcore' mf.kpts = cell.make_kpts([2, 1, 1]) e1 = mf.kernel() self.assertAlmostEqual(e1, -3.5112358424228809, 5)
def test_kuhf(self): ngs = 4 cell = make_primitive_cell(ngs) nk = (3, 1, 1) kpts = cell.make_kpts(nk) kmf1 = kuhf.KUHF(cell, kpts, exxdiv='vcut_sph') ekpt = kmf1.scf() self.assertAlmostEqual(ekpt, -11.221426555985234, 8)
def test_kuhf(self): ngs = 4 cell = make_primitive_cell(ngs) nk = (3, 1, 1) kpts = cell.make_kpts(nk) kmf1 = kuhf.KUHF(cell, kpts, exxdiv='vcut_sph') ekpt = kmf1.scf() self.assertAlmostEqual(ekpt, -11.218735269838586, 8) np.random.seed(1) kpts_bands = np.random.random((2, 3)) e = kmf1.get_bands(kpts_bands)[0] self.assertAlmostEqual(finger(e), -0.045541292730566063, 8)
def test_kuhf_high_cost(self): n = 9 cell = make_primitive_cell([n]*3) nk = (3, 1, 1) kpts = cell.make_kpts(nk) kmf1 = kuhf.KUHF(cell, kpts, exxdiv='vcut_sph') kmf1.conv_tol = 1e-9 ekpt = kmf1.scf() self.assertAlmostEqual(ekpt, -11.218735269838586, 8) np.random.seed(1) kpts_bands = np.random.random((2,3)) e = kmf1.get_bands(kpts_bands)[0] self.assertAlmostEqual(finger(np.array(e)), -0.045547555445877741, 6)
def KHF(cell, *args, **kwargs): if cell.spin == 0: return krhf.KRHF(cell, *args, **kwargs) else: return kuhf.KUHF(cell, *args, **kwargs)
def setUpModule(): global cell, kmf, kumf, kpts cell = make_primitive_cell([9] * 3) kpts = cell.make_kpts([3, 1, 1]) kmf = khf.KRHF(cell, kpts, exxdiv='vcut_sph').run(conv_tol=1e-9) kumf = kuhf.KUHF(cell, kpts, exxdiv='vcut_sph').run(conv_tol=1e-9)
1.7834 1.7834 0. ''' cell.basis = 'gth-szv' cell.pseudo = 'gth-pade' cell.mesh = mesh cell.verbose = 7 cell.output = '/dev/null' cell.build() return cell cell = make_primitive_cell([9] * 3) kpts = cell.make_kpts([3, 1, 1]) kmf = khf.KRHF(cell, kpts, exxdiv='vcut_sph').run(conv_tol=1e-9) kumf = kuhf.KUHF(cell, kpts, exxdiv='vcut_sph').run(conv_tol=1e-9) def tearDownModule(): global cell, kmf, kumf cell.stdout.close() del cell, kmf, kumf class KnownValues(unittest.TestCase): def test_analyze(self): rpop, rchg = kmf.analyze() # pop at gamma point upop, uchg = kumf.analyze() self.assertTrue(isinstance(rpop, np.ndarray) and rpop.ndim == 1) self.assertAlmostEqual(abs(upop[0] + upop[1] - rpop).max(), 0, 7) self.assertAlmostEqual(lib.fp(rpop), 1.697446, 5)