def test_read(self): with tempfile.NamedTemporaryFile(mode='w+') as f: f.write('''&FCI NORB=4, NELEC=4, MS2=0, ISYM=1, ORBSYM=1,2,3,4, &END 0.42 1 1 1 1 0.33 1 1 2 2 0.07 1 1 3 1 0.46 1 1 0 0 0.13 1 2 0 0 1.1 0 0 0 0 ''') f.flush() result = fcidump.read(f.name) self.assertEqual(result['ISYM'], 1) with tempfile.NamedTemporaryFile(mode='w+') as f: f.write('''&FCI NORB=4, NELEC=4, MS2=0, ISYM=1,ORBSYM=1,2,3,4, &END 0.42 1 1 1 1 0.33 1 1 2 2 0.07 1 1 3 1 0.46 1 1 0 0 0.13 1 2 0 0 1.1 0 0 0 0 ''') f.flush() result = fcidump.read(f.name) self.assertEqual(result['MS2'], 0)
def setUp(self): super().setUp() self.core_energy = 0.7199 self.num_orbitals = 2 self.num_electrons = 2 self.spin_number = 0 self.wf_symmetry = 1 self.orb_symmetries = [1, 1] self.mo_onee = [[1.2563, 0.0], [0.0, 0.4719]] self.mo_eri = [0.6757, 0.0, 0.1809, 0.6646, 0.0, 0.6986] try: driver = PySCFDriver(atom='H .0 .0 .0; H .0 .0 0.735', unit=UnitsType.ANGSTROM, charge=0, spin=0, basis='sto3g') qmolecule = driver.run() dump = tempfile.NamedTemporaryFile() FCIDumpDriver.dump(qmolecule, dump.name) # pylint: disable=import-outside-toplevel from pyscf.tools import fcidump as pyscf_fcidump self.dumped = pyscf_fcidump.read(dump.name) dump.close() except QiskitChemistryError: self.skipTest('PYSCF driver does not appear to be installed.') except ImportError: self.skipTest('PYSCF driver does not appear to be installed.')
def setUp(self): super().setUp() self.core_energy = 0.7199 self.num_molecular_orbitals = 2 self.num_electrons = 2 self.spin_number = 0 self.wf_symmetry = 1 self.orb_symmetries = [1, 1] self.mo_onee = [[1.2563, 0.0], [0.0, 0.4719]] self.mo_eri = [0.6757, 0.0, 0.1809, 0.6646, 0.0, 0.6986] try: driver = PySCFDriver( atom="H .0 .0 .0; H .0 .0 0.735", unit=UnitsType.ANGSTROM, charge=0, spin=0, basis="sto3g", ) driver_result = driver.run() with tempfile.NamedTemporaryFile() as dump: FCIDumpDriver.dump(driver_result, dump.name) # pylint: disable=import-outside-toplevel from pyscf.tools import fcidump as pyscf_fcidump self.dumped = pyscf_fcidump.read(dump.name) except QiskitNatureError: self.skipTest("PYSCF driver does not appear to be installed.") except ImportError: self.skipTest("PYSCF driver does not appear to be installed.")
from pyscf.cc import ccsd_t from pyscf import symm from pyscf.tools import fcidump #mol = gto.M(atom='Li 0. 0. 0.', basis='cc-pcvtz') mol = gto.Mole() mol.atom = 'Li 0. 0. 0.' mol.basis = 'cc-pcvtz' mol.charge = 0 mol.spin = 1 mol.build() FCIDUMP='B.ezfio.FCIDUMP' # # Hamiltonians of FCIDUMP file can be load # ctx = fcidump.read(FCIDUMP) # # Construct an SCF object using the quantities defined in FCIDUMP # (pyscf-1.7.4 or newer) # mf = fcidump.to_scf(FCIDUMP, molpro_orbsym=True) mf.mol.verbose = 4 mf.run() #mf.MP2().run() mycc = cc.CCSD(mf).run() et=mycc.ccsd_t()
'B1' : 4, 'B2' : 3, 'B3' : 2}, 'Cs' : { "A'" : 1, 'A"' : 2}, 'C2' : { 'A' : 1, 'B' : 2}, 'Ci' : { 'Ag' : 1, 'Au' : 2}, 'C1' : { 'A' : 1,}} orbsym = [MOLPRO_ID[mol.groupname][i] for i in symm.label_orb_symm(mol, mol.irrep_name, mol.symm_orb, c)] fcidump.from_integrals('fcidump.example5', h1e, eri, c.shape[1], mol.nelectron, ms=0, orbsym=orbsym) # # Hamiltonians of FCIDUMP file can be load # ctx = fcidump.read('fcidump.example1') ctx = fcidump.read('fcidump.example5', molpro_orbsym=True) # # Construct an SCF object using the quantities defined in FCIDUMP # (pyscf-1.7.4 or newer) # mf = fcidump.to_scf('fcidump.example5', molpro_orbsym=True) mf.mol.verbose = 4 mf.run() mf.MP2().run()
''' Writing FCIDUMP file for given integrals or SCF orbitals ''' from functools import reduce import numpy from pyscf import gto, scf, ao2mo, cc from pyscf.cc import ccsd_t from pyscf import symm from pyscf.tools import fcidump mol = gto.M(atom='H 0 0 0; H 0 0 0.7', basis='cc-pvtz') # # Hamiltonians of FCIDUMP file can be load # ctx = fcidump.read('H2_0.7.ezfio.FCIDUMP') # # Construct an SCF object using the quantities defined in FCIDUMP # (pyscf-1.7.4 or newer) # mf = fcidump.to_scf('H2_0.7.ezfio.FCIDUMP', molpro_orbsym=True) mf.mol.verbose = 4 mf.run() mf.MP2().run() mycc = cc.CCSD(mf) mycc.kernel() e_ee, c_ee = mycc.eeccsd(nroots=5)