예제 #1
0
el = 'O'
charge = 1

mol = gto.Mole()
mol.ecp = {}
mol.basis = {}
mol.ecp[el] = gto.basis.parse_ecp(df[el]['ecp'])
mol.basis[el] = gto.basis.parse(df[el][basis])
mol.charge = charge
mol.spin = 1
mol.build(atom="%s 0. 0. 0." % el, verbose=4)

m = ROHF(mol)
m.level_shift = 1000.0
#dm=m.from_chk("../../../../HF/atoms/"+el+basis+str(charge)+".chk")
hf = m.kernel()  #dm)
m.analyze()

from pyscf.shciscf import shci
mc = shci.SHCISCF(m, 3, 3)
#mc.fcisolver.conv_tol = 1e-14
mc.fcisolver.mpiprefix = "mpirun -np 28"
mc.fcisolver.num_thrds = 12
mc.verbose = 4
cas = mc.kernel()[0]

from pyscf.icmpspt import icmpspt
pt=icmpspt.icmpspt(mc,rdmM=500, PTM=1000,\
                          pttype="MRLCC",\
                          third_order=True,\
                          fully_ic=True,\
예제 #2
0
mol = gto.Mole()
mol.ecp = {}
mol.basis = {}
for el in [element, 'O']:
    mol.ecp[el] = gto.basis.parse_ecp(df[el]['ecp'])
    mol.basis[el] = gto.basis.parse(df[el][basis])
mol.charge = 0
mol.spin = spins[element + 'O']
mol.build(atom="%s 0. 0. 0.; O 0. 0. %g" % (element, re[element + 'O']),
          verbose=4)

m = ROHF(mol)
m.level_shift = 1000.0
dm = m.from_chk("../../../../HF/monoxides/" + element + basis + "0.chk")
hf = m.kernel(dm)
m.analyze()

from pyscf.shciscf import shci
mc = shci.SHCISCF(m, 9, 4 + cas[element])
#mc.fcisolver.conv_tol = 1e-14
mc.fcisolver.mpiprefix = "mpirun -np 28"
mc.fcisolver.num_thrds = 12
mc.verbose = 4
cas = mc.kernel()[0]

from pyscf.icmpspt import icmpspt
pt=icmpspt.icmpspt(mc,rdmM=500, PTM=1000,\
                          pttype="MRLCC",\
                          third_order=True,\
                          fully_ic=True,\
예제 #3
0
molname = el + 'O'
mol = gto.Mole()

mol.ecp = {}
mol.basis = {}
for e in [el, 'O']:
    mol.ecp[e] = gto.basis.parse_ecp(df[e]['ecp'])
    mol.basis[e] = gto.basis.parse(df[e][basis])
mol.charge = charge
mol.spin = spins[molname]
print('spin', molname, mol.spin)
mol.build(atom="%s 0. 0. 0.; O 0. 0. %g" % (el, re[molname]), verbose=4)
m = ROHF(mol)

m = scf.newton(m)
energy = m.kernel()
m.analyze()

ncas = 13
ncore = 4
nelec = (mol.nelec[0] - ncore, mol.nelec[1] - ncore)

myci = mcscf.CASCI(m, ncas, nelec, ncore=ncore)
myci.run()

ci = myci.ci
e = myci.e_tot
mo = myci.mo_coeff
d = pd.DataFrame({'energy': [e], 'spin': [spin], 'ci': [ci], 'mo': [mo]})
d.to_json('casci.json')