示例#1
0
    def test_pbc_orth_lda_ints(self):
        ref = numpy.array([numpy.einsum('gi,gj,g->ij', ao[0].conj(), ao[0], vxc[0])
                           for ao in ao_kpts_orth])
        pcell, contr_coeff = uncontract(cell_orth)
        out = eval_mat(pcell, vxc[0], hermi=0, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)

        out = eval_mat(pcell, vxc[0], hermi=1, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)
示例#2
0
    def test_nonorth_lda_ints(self):
        ao = ao_north
        ref = numpy.einsum('gi,gj,g->ij', ao[0], ao[0], vxc[0])
        pcell, contr_coeff = uncontract(mol_north)
        out = eval_mat(pcell, vxc[0])
        out = numpy.einsum('pi,pq,qj->ij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out - ref).max(), 0, 9)

        out = eval_mat(pcell, vxc[0], hermi=1)
        out = numpy.einsum('pi,pq,qj->ij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out - ref).max(), 0, 9)
    def test_pbc_orth_lda_ints(self):
        ref = numpy.array([numpy.einsum('gi,gj,g->ij', ao[0].conj(), ao[0], vxc[0])
                           for ao in ao_kpts_orth])
        pcell, contr_coeff = uncontract(cell_orth)
        out = eval_mat(pcell, vxc[0], hermi=0, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)

        out = eval_mat(pcell, vxc[0], hermi=1, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)
    def test_nonorth_lda_ints(self):
        ao = ao_north
        ref = numpy.einsum('gi,gj,g->ij', ao[0], ao[0], vxc[0])
        pcell, contr_coeff = uncontract(mol_north)
        out = eval_mat(pcell, vxc[0])
        out = numpy.einsum('pi,pq,qj->ij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)

        out = eval_mat(pcell, vxc[0], hermi=1)
        out = numpy.einsum('pi,pq,qj->ij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)
示例#5
0
    def test_pbc_nonorth_overlap(self):
        ref = cell_north.pbc_intor('int1e_ovlp', kpts=kpts)
        pcell, contr_coeff = uncontract(cell_north)
        pcell.mesh = [30] * 3
        w = gen_grid.UniformGrids(pcell).weights
        out = eval_mat(pcell, w, hermi=0, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out - ref).max(), 0, 9)

        out = eval_mat(pcell, w, hermi=1, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out - ref).max(), 0, 9)
    def test_pbc_orth_overlap(self):
        ref = cell_orth.pbc_intor('int1e_ovlp', kpts=kpts)
        pcell, contr_coeff = uncontract(cell_orth)
        pcell.mesh = [30]*3
        w = gen_grid.UniformGrids(pcell).weights
        out = eval_mat(pcell, w, hermi=0, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)

        out = eval_mat(pcell, w, hermi=1, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)
示例#7
0
 def test_nonorth_gga_ints(self):
     ao = ao_north
     ref = numpy.einsum('ngi,gj,ng->ij', ao, ao[0], vxc)
     pcell, contr_coeff = uncontract(mol_north)
     out = eval_mat(pcell, vxc, xctype='GGA', hermi=0)
     out = numpy.einsum('pi,pq,qj->ij', contr_coeff, out, contr_coeff)
     self.assertAlmostEqual(abs(out - ref).max(), 0, 9)
 def test_nonorth_gga_ints(self):
     ao = ao_north
     ref = numpy.einsum('ngi,gj,ng->ij', ao, ao[0], vxc)
     pcell, contr_coeff = uncontract(mol_north)
     out = eval_mat(pcell, vxc, xctype='GGA', hermi=0)
     out = numpy.einsum('pi,pq,qj->ij', contr_coeff, out, contr_coeff)
     self.assertAlmostEqual(abs(out-ref).max(), 0, 9)
示例#9
0
    def test_pbc_orth_gga_ints(self):
        ref = numpy.array([numpy.einsum('ngi,gj,ng->ij', ao.conj(), ao[0], vxc)
                           for ao in ao_kpts_orth])
        pcell, contr_coeff = uncontract(cell_orth)
        out = eval_mat(pcell, vxc, xctype='GGA', hermi=0, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)

        #out = eval_mat(pcell, vxc, xctype='GGA', hermi=1, kpts=kpts)
        self.assertRaises(RuntimeError, eval_mat, pcell, vxc, xctype='GGA', hermi=1, kpts=kpts)
示例#10
0
    def test_pbc_orth_gga_ints(self):
        ref = numpy.array([numpy.einsum('ngi,gj,ng->ij', ao.conj(), ao[0], vxc)
                           for ao in ao_kpts_orth])
        pcell, contr_coeff = uncontract(cell_orth)
        out = eval_mat(pcell, vxc, xctype='GGA', hermi=0, kpts=kpts)
        out = numpy.einsum('pi,kpq,qj->kij', contr_coeff, out, contr_coeff)
        self.assertAlmostEqual(abs(out-ref).max(), 0, 9)

        #out = eval_mat(pcell, vxc, xctype='GGA', hermi=1, kpts=kpts)
        self.assertRaises(RuntimeError, eval_mat, pcell, vxc, xctype='GGA', hermi=1, kpts=kpts)