示例#1
0
    def test_uncontract(self):
        basis = gto.basis.parse('''
H    S
0.9  0.8  0
0.5  0.5  0.6
0.3  0.5  0.8
H    S
0.3  1
H    P
0.9  0.6
0.5  0.6
0.3  0.6
''')
        self.assertEqual(gto.uncontract(basis),
                         [[0, [0.9, 1]], [0, [0.5, 1]], [0, [0.3, 1]],
                          [1, [0.9, 1]], [1, [0.5, 1]], [1, [0.3, 1]]])

        basis = [[1, 0, [0.9, .7], [0.5, .7]], [1, [0.5, .8], [0.3, .6]],
                 [1, [0.3, 1]]]
        self.assertEqual(gto.uncontract(basis),
                         [[1, [0.9, 1]], [1, [0.5, 1]], [1, [0.3, 1]]])

        basis = [[1, -2, [0.9, .7], [0.5, .7]], [1, [0.5, .8], [0.3, .6]],
                 [1, [0.3, 1]]]
        self.assertEqual(gto.uncontract(basis),
                         [[1, -2, [0.9, 1]], [1, -2, [0.5, 1]], [1, [0.3, 1]]])
示例#2
0
    def setup(atom):
        if l_max is None:
            conf = lib.parameters.ELEMENTS[gto.mole._charge(atom)][2]
# pp exchange for p elements, dd exchange for d elements, ff exchange
# for f elements
            l = len([i for i in conf if i > 0]) - 1
            lmax = max(1, l*2)
        else:
            lmax = l_max
        return (atom, [(b[0], (b[1][0], 1)) for b in gto.uncontract(basis[atom])
                       if b[0] <= lmax and b[1][0] > eta])