Exemple #1
0
    def test_pre_nao(self):
        c = nao.prenao(mol, mf.make_rdm1())
        self.assertAlmostEqual(numpy.linalg.norm(c), 5.7742626195362039, 9)
        self.assertAlmostEqual(abs(c).sum(), 33.214804163888289, 6)

        c = nao.prenao(mol1, mf1.make_rdm1())
        self.assertAlmostEqual(numpy.linalg.norm(c), 5.5434134741828105, 9)
        self.assertAlmostEqual(abs(c).sum(), 31.999905597187052, 6)
Exemple #2
0
    def test_pre_nao(self):
        c = nao.prenao(mol, mf.make_rdm1())
        self.assertAlmostEqual(numpy.linalg.norm(c), 5.7742626195362039, 9)
        self.assertAlmostEqual(abs(c).sum(), 33.214804163888289, 6)

        c = nao.prenao(mol1, mf1.make_rdm1())
        self.assertAlmostEqual(numpy.linalg.norm(c), 5.5434134741828105, 9)
        self.assertAlmostEqual(abs(c).sum(), 31.999905597187052, 6)
Exemple #3
0
    # adjust phase
    for i in range(c_orth.shape[1]):
        if c_orth[i,i] < 0:
            c_orth[:,i] *= -1
    return c_orth

if __name__ == '__main__':
    from pyscf import gto
    from pyscf import scf
    from pyscf.lo import nao
    mol = gto.Mole()
    mol.verbose = 1
    mol.output = 'out_orth'
    mol.atom.extend([
        ['O' , (0. , 0.     , 0.)],
        [1   , (0. , -0.757 , 0.587)],
        [1   , (0. , 0.757  , 0.587)] ])
    mol.basis = {'H': '6-31g',
                 'O': '6-31g',}
    mol.build()

    mf = scf.RHF(mol)
    mf.scf()

    c0 = nao.prenao(mol, mf.make_rdm1())
    c = orth_ao(mol, 'meta_lowdin', c0)

    s = mol.intor_symmetric('cint1e_ovlp_sph')
    p = reduce(numpy.dot, (s, mf.make_rdm1(), s))
    print(reduce(numpy.dot, (c.T, p, c)).diagonal())
Exemple #4
0
    for i in range(c_orth.shape[1]):
        if c_orth[i, i] < 0:
            c_orth[:, i] *= -1
    return c_orth


if __name__ == '__main__':
    from pyscf import gto
    from pyscf import scf
    from pyscf.lo import nao
    mol = gto.Mole()
    mol.verbose = 1
    mol.output = 'out_orth'
    mol.atom.extend([['O', (0., 0., 0.)], [1, (0., -0.757, 0.587)],
                     [1, (0., 0.757, 0.587)]])
    mol.basis = {
        'H': '6-31g',
        'O': '6-31g',
    }
    mol.build()

    mf = scf.RHF(mol)
    mf.scf()

    c0 = nao.prenao(mol, mf.make_rdm1())
    c = orth_ao(mol, 'meta_lowdin', c0)

    s = mol.intor_symmetric('cint1e_ovlp_sph')
    p = reduce(numpy.dot, (s, mf.make_rdm1(), s))
    print(reduce(numpy.dot, (c.T, p, c)).diagonal())
Exemple #5
0
 def test_pre_nao(self):
     c = nao.prenao(mol, mf.make_rdm1())
     self.assertAlmostEqual(numpy.linalg.norm(c), 5.7742626195362039, 9)
     self.assertAlmostEqual(abs(c).sum(), 33.214804163888289, 6)
Exemple #6
0
 def test_pre_nao(self):
     c = nao.prenao(mol, mf.make_rdm1())
     self.assertAlmostEqual(numpy.linalg.norm(c), 7.2617698799320358, 9)
     self.assertAlmostEqual(abs(c).sum(), 40.032576928168687, 8)
Exemple #7
0
 def test_pre_nao(self):
     c = nao.prenao(mol, mf.make_rdm1())
     self.assertAlmostEqual(numpy.linalg.norm(c), 5.7742626195362039, 9)
     self.assertAlmostEqual(abs(c).sum(), 33.214804163888289, 6)