예제 #1
0
    def test_parse_molpro_basis(self):
        basis_str = '''
C s aug-cc-pVTZ AVTZ : 11 5 1.10 1.10 8.8 10.10 11.11
aug-cc-pVTZ
8236 1235 280.8 79.27 25.59 8.997 3.319 0.9059 0.3643 0.1285 0.04402
0.000531 0.004108 0.021087 0.081853 0.234817 0.434401 0.346129 0.039378
-0.008983 0.002385 -0.000113 -0.000878 -0.00454 -0.018133 -0.05576
-0.126895 -0.170352 0.140382 0.598684 0.395389 1 1 1
C p aug-cc-pVTZ AVTZ : 6 4 1.5 4.4 5.5 6.6
aug-cc-pVTZ
18.71 4.133 1.2 0.3827 0.1209 0.03569 0.014031 0.086866 0.290216
0.501008 0.343406 1 1 1
C d aug-cc-pVTZ AVTZ : 3 0
aug-cc-pVTZ
1.097 0.318 0.1
C f aug-cc-pVTZ AVTZ : 2 0
aug-cc-pVTZ
0.761 0.268
'''
        basis1 = parse_molpro.parse(basis_str)
        ref = gto.basis.parse('''
#BASIS SET: (11s,6p,3d,2f) -> [5s,4p,3d,2f]
C    S
   8236.0000000              0.0005310             -0.0001130              0.0000000              0.0000000        0
   1235.0000000              0.0041080             -0.0008780              0.0000000              0.0000000        0
    280.8000000              0.0210870             -0.0045400              0.0000000              0.0000000        0
     79.2700000              0.0818530             -0.0181330              0.0000000              0.0000000        0
     25.5900000              0.2348170             -0.0557600              0.0000000              0.0000000        0
      8.9970000              0.4344010             -0.1268950              0.0000000              0.0000000        0
      3.3190000              0.3461290             -0.1703520              0.0000000              0.0000000        0
      0.9059000              0.0393780              0.1403820              1.0000000              0.0000000        0
      0.3643000             -0.0089830              0.5986840              0.0000000              0.0000000        0
      0.1285000              0.0023850              0.3953890              0.0000000              1.0000000        0
      0.0440200              0.0000000              0.0000000              0.0000000              0.0000000        1.0000000        
C    P
     18.7100000              0.0140310              0.0000000              0.0000000          0
      4.1330000              0.0868660              0.0000000              0.0000000          0
      1.2000000              0.2902160              0.0000000              0.0000000          0
      0.3827000              0.5010080              1.0000000              0.0000000          0
      0.1209000              0.3434060              0.0000000              1.0000000          0
      0.0356900              0.0000000              0.0000000              0.0000000          1.0000000        
C    D
      1.0970000              1.0000000
C    D
      0.3180000              1.0000000        
C    D
      0.1000000              1.0000000        
C    F
      0.7610000              1.0000000        
C    F
      0.2680000              1.0000000        
END''')
        self.assertEqual(ref, basis1)

        basis_str = '''
c s 631g sv : 10 3 1.6 7.9 10.10
  3047.52500d+00  457.369500d+00  103.948700d+00  29.2101600d+00  9.28666300d+00
  3.16392700d+00  7.86827200d+00  1.88128900d+00  0.54424930d+00  0.16871440d+00
  1.83473700d-03  1.40373200d-02  0.06884262d+00  0.23218444d+00  0.46794130d+00
  0.36231200d+00 -0.11933240d+00 -0.16085420d+00  1.14345600d+00  1.00000000d+00
c p 631g sv : 4 2 1.3 4.4
  7.86827200d+00  1.88128900d+00  0.54424930d+00  0.16871440d+00  0.06899907d+00
  0.31642340d+00  0.74430830d+00  1.00000000d+00
'''
        basis1 = parse_molpro.parse(basis_str)
        ref = gto.basis.parse('''
#BASIS SET: (10s,4p) -> [3s,2p]
C    S
   3047.5250000              0.001834737            0                0
    457.3695000              0.01403732             0                0
    103.9487000              0.06884262             0                0
     29.2101600              0.23218444             0                0
      9.2866630              0.4679413              0                0
      3.1639270              0.3623120              0                0
      7.8682720              0                     -0.1193324        0
      1.8812890              0                     -0.1608542        0
      0.5442493              0                      1.1434560        0
      0.1687144              0                      0.0000000        1
C    P
      7.8682720              0.06899907       0
      1.8812890              0.3164234        0
      0.5442493              0.7443083        0
      0.1687144              0                1
END ''')
        self.assertEqual(ref, basis1)
예제 #2
0
    def test_parse_molpro_basis(self):
        basis_str = '''
C s aug-cc-pVTZ AVTZ : 11 5 1.10 1.10 8.8 10.10 11.11
aug-cc-pVTZ
8236 1235 280.8 79.27 25.59 8.997 3.319 0.9059 0.3643 0.1285 0.04402
0.000531 0.004108 0.021087 0.081853 0.234817 0.434401 0.346129 0.039378
-0.008983 0.002385 -0.000113 -0.000878 -0.00454 -0.018133 -0.05576
-0.126895 -0.170352 0.140382 0.598684 0.395389 1 1 1
C p aug-cc-pVTZ AVTZ : 6 4 1.5 4.4 5.5 6.6
aug-cc-pVTZ
18.71 4.133 1.2 0.3827 0.1209 0.03569 0.014031 0.086866 0.290216
0.501008 0.343406 1 1 1
C d aug-cc-pVTZ AVTZ : 3 0
aug-cc-pVTZ
1.097 0.318 0.1
C f aug-cc-pVTZ AVTZ : 2 0
aug-cc-pVTZ
0.761 0.268
'''
        basis1 = parse_molpro.parse(basis_str)
        ref = gto.basis.parse('''
#BASIS SET: (11s,6p,3d,2f) -> [5s,4p,3d,2f]
C    S
   8236.0000000              0.0005310             -0.0001130              0.0000000              0.0000000        0
   1235.0000000              0.0041080             -0.0008780              0.0000000              0.0000000        0
    280.8000000              0.0210870             -0.0045400              0.0000000              0.0000000        0
     79.2700000              0.0818530             -0.0181330              0.0000000              0.0000000        0
     25.5900000              0.2348170             -0.0557600              0.0000000              0.0000000        0
      8.9970000              0.4344010             -0.1268950              0.0000000              0.0000000        0
      3.3190000              0.3461290             -0.1703520              0.0000000              0.0000000        0
      0.9059000              0.0393780              0.1403820              1.0000000              0.0000000        0
      0.3643000             -0.0089830              0.5986840              0.0000000              0.0000000        0
      0.1285000              0.0023850              0.3953890              0.0000000              1.0000000        0
      0.0440200              0.0000000              0.0000000              0.0000000              0.0000000        1.0000000        
C    P
     18.7100000              0.0140310              0.0000000              0.0000000          0
      4.1330000              0.0868660              0.0000000              0.0000000          0
      1.2000000              0.2902160              0.0000000              0.0000000          0
      0.3827000              0.5010080              1.0000000              0.0000000          0
      0.1209000              0.3434060              0.0000000              1.0000000          0
      0.0356900              0.0000000              0.0000000              0.0000000          1.0000000        
C    D
      1.0970000              1.0000000
C    D
      0.3180000              1.0000000        
C    D
      0.1000000              1.0000000        
C    F
      0.7610000              1.0000000        
C    F
      0.2680000              1.0000000        
END''')
        self.assertEqual(ref, basis1)

        basis_str = '''
c s 631g sv : 10 3 1.6 7.9 10.10
  3047.52500d+00  457.369500d+00  103.948700d+00  29.2101600d+00  9.28666300d+00
  3.16392700d+00  7.86827200d+00  1.88128900d+00  0.54424930d+00  0.16871440d+00
  1.83473700d-03  1.40373200d-02  0.06884262d+00  0.23218444d+00  0.46794130d+00
  0.36231200d+00 -0.11933240d+00 -0.16085420d+00  1.14345600d+00  1.00000000d+00
c p 631g sv : 4 2 1.3 4.4
  7.86827200d+00  1.88128900d+00  0.54424930d+00  0.16871440d+00  0.06899907d+00
  0.31642340d+00  0.74430830d+00  1.00000000d+00
'''
        basis1 = parse_molpro.parse(basis_str)
        ref = gto.basis.parse('''
#BASIS SET: (10s,4p) -> [3s,2p]
C    S
   3047.5250000              0.001834737            0                0
    457.3695000              0.01403732             0                0
    103.9487000              0.06884262             0                0
     29.2101600              0.23218444             0                0
      9.2866630              0.4679413              0                0
      3.1639270              0.3623120              0                0
      7.8682720              0                     -0.1193324        0
      1.8812890              0                     -0.1608542        0
      0.5442493              0                      1.1434560        0
      0.1687144              0                      0.0000000        1
C    P
      7.8682720              0.06899907       0
      1.8812890              0.3164234        0
      0.5442493              0.7443083        0
      0.1687144              0                1
END ''')
        self.assertEqual(ref, basis1)