def test_freeze_core(self):
        """Test the `freeze_core` convenience argument."""
        driver = HDF5Driver(hdf5_input=self.get_resource_path('LiH_sto3g.hdf5', 'transformers'))
        q_molecule = driver.run()

        trafo = FreezeCoreTransformer(freeze_core=True)
        q_molecule_reduced = trafo.transform(q_molecule)

        expected = HDF5Driver(hdf5_input=self.get_resource_path('LiH_sto3g_reduced.hdf5',
                                                                'transformers')).run()

        self.assertQMolecule(q_molecule_reduced, expected, dict_key='FreezeCoreTransformer')
    def test_freeze_core_with_remove_orbitals(self):
        """Test the `freeze_core` convenience argument in combination with `remove_orbitals`."""
        driver = HDF5Driver(hdf5_input=self.get_resource_path('BeH_sto3g.hdf5', 'transformers'))
        q_molecule = driver.run()

        trafo = FreezeCoreTransformer(freeze_core=True, remove_orbitals=[4, 5])
        q_molecule_reduced = trafo.transform(q_molecule)

        expected = HDF5Driver(hdf5_input=self.get_resource_path('BeH_sto3g_reduced.hdf5',
                                                                'transformers')).run()

        self.assertQMolecule(q_molecule_reduced, expected, dict_key='FreezeCoreTransformer')
Ejemplo n.º 3
0
    def test_freeze_core(self):
        """Test the `freeze_core` convenience argument."""
        driver = HDF5Driver(hdf5_input=self.get_resource_path(
            "LiH_sto3g.hdf5", "transformers/second_quantization/electronic"))
        q_molecule = driver.run()

        trafo = FreezeCoreTransformer(freeze_core=True)
        q_molecule_reduced = trafo.transform(q_molecule)

        expected = HDF5Driver(hdf5_input=self.get_resource_path(
            "LiH_sto3g_reduced.hdf5",
            "transformers/second_quantization/electronic")).run()

        self.assertQMolecule(q_molecule_reduced,
                             expected,
                             dict_key="FreezeCoreTransformer")
    def test_full_active_space(self, kwargs):
        """Test that transformer has no effect when all orbitals are active."""
        driver = HDF5Driver(hdf5_input=self.get_resource_path('H2_sto3g.hdf5', 'transformers'))
        q_molecule = driver.run()

        # The references which we compare too were produced by the `ActiveSpaceTransformer` and,
        # thus, the key here needs to stay the same as in that test case.
        q_molecule.energy_shift['ActiveSpaceTransformer'] = 0.0
        q_molecule.x_dip_energy_shift['ActiveSpaceTransformer'] = 0.0
        q_molecule.y_dip_energy_shift['ActiveSpaceTransformer'] = 0.0
        q_molecule.z_dip_energy_shift['ActiveSpaceTransformer'] = 0.0

        trafo = FreezeCoreTransformer(**kwargs)
        q_molecule_reduced = trafo.transform(q_molecule)

        self.assertQMolecule(q_molecule_reduced, q_molecule, dict_key='FreezeCoreTransformer')