예제 #1
0
    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.")
예제 #2
0
 def test_driver_result_log(self):
     """Test DriverResult log function."""
     driver_result = FCIDumpDriver(
         self.get_resource_path(
             "test_driver_fcidump_h2.fcidump",
             "drivers/second_quantization/fcidumpd")).run()
     with self.assertLogs("qiskit_nature", level="DEBUG") as _:
         driver_result.log()
예제 #3
0
 def test_oh(self):
     """OH test"""
     driver = FCIDumpDriver(
         self.get_resource_path("test_driver_fcidump_oh.fcidump",
                                "drivers/second_quantization/fcidumpd"))
     result = self._run_driver(driver)
     self._assert_energy(result, "oh")
예제 #4
0
 def setUp(self):
     super().setUp()
     self.nuclear_repulsion_energy = 11.3412
     self.num_molecular_orbitals = 6
     self.num_alpha = 5
     self.num_beta = 4
     loaded = np.load(
         self.get_resource_path("test_driver_fcidump_oh.npz",
                                "drivers/second_quantization/fcidumpd"))
     self.mo_onee = loaded["mo_onee"]
     self.mo_onee_b = loaded["mo_onee_b"]
     self.mo_eri = loaded["mo_eri"]
     self.mo_eri_ba = loaded["mo_eri_ba"]
     self.mo_eri_bb = loaded["mo_eri_bb"]
     driver = FCIDumpDriver(
         self.get_resource_path("test_driver_fcidump_oh.fcidump",
                                "drivers/second_quantization/fcidumpd"))
     self.driver_result = driver.run()
예제 #5
0
 def setUp(self):
     super().setUp()
     self.nuclear_repulsion_energy = 0.7199
     self.num_molecular_orbitals = 2
     self.num_alpha = 1
     self.num_beta = 1
     self.mo_onee = np.array([[1.2563, 0.0], [0.0, 0.4719]])
     self.mo_onee_b = None
     self.mo_eri = np.array([
         [[[0.6757, 0.0], [0.0, 0.6646]], [[0.0, 0.1809], [0.1809, 0.0]]],
         [[[0.0, 0.1809], [0.1809, 0.0]], [[0.6646, 0.0], [0.0, 0.6986]]],
     ])
     self.mo_eri_ba = None
     self.mo_eri_bb = None
     driver = FCIDumpDriver(
         self.get_resource_path("test_driver_fcidump_h2.fcidump",
                                "drivers/second_quantization/fcidumpd"))
     self.driver_result = driver.run()
예제 #6
0
 def test_oh_with_atoms(self):
     """OH with num_atoms test"""
     driver = FCIDumpDriver(
         self.get_resource_path("test_driver_fcidump_oh.fcidump",
                                "drivers/second_quantization/fcidumpd"),
         # atoms=["O", "H"],
     )
     result = self._run_driver(driver,
                               transformers=[FreezeCoreTransformer()])
     self._assert_energy(result, "oh")
예제 #7
0
 def test_oh_freeze_core(self):
     """OH freeze core test"""
     with self.assertLogs("qiskit_nature", level="WARNING") as log:
         driver = FCIDumpDriver(
             self.get_resource_path("test_driver_fcidump_oh.fcidump",
                                    "drivers/second_quantization/fcidumpd"))
         result = self._run_driver(driver,
                                   transformers=[FreezeCoreTransformer()])
         self._assert_energy(result, "oh")
     warning = (
         "WARNING:qiskit_nature.drivers.second_quantization.qmolecule:Missing molecule "
         "information! Returning empty core orbital list.")
     self.assertIn(warning, log.output)