コード例 #1
0
    def test_minimal_active_space(self):
        """Test a minimal active space manually."""
        driver = HDF5Driver(
            hdf5_input=self.get_resource_path(
                "H2_631g.hdf5", "transformers/second_quantization/electronic"
            )
        )
        driver_result = driver.run()

        trafo = ActiveSpaceTransformer(num_electrons=2, num_molecular_orbitals=2)
        driver_result_reduced = trafo.transform(driver_result)

        expected = ElectronicStructureDriverResult()
        expected.add_property(
            ElectronicEnergy(
                [
                    OneBodyElectronicIntegrals(
                        ElectronicBasis.MO,
                        (np.asarray([[-1.24943841, 0.0], [0.0, -0.547816138]]), None),
                    ),
                    TwoBodyElectronicIntegrals(
                        ElectronicBasis.MO,
                        (
                            np.asarray(
                                [
                                    [
                                        [[0.652098466, 0.0], [0.0, 0.433536565]],
                                        [[0.0, 0.0794483182], [0.0794483182, 0.0]],
                                    ],
                                    [
                                        [[0.0, 0.0794483182], [0.0794483182, 0.0]],
                                        [[0.433536565, 0.0], [0.0, 0.385524695]],
                                    ],
                                ]
                            ),
                            None,
                            None,
                            None,
                        ),
                    ),
                ],
                energy_shift={"ActiveSpaceTransformer": 0.0},
            )
        )
        expected.add_property(
            ElectronicDipoleMoment(
                [
                    DipoleMoment(
                        "x",
                        [OneBodyElectronicIntegrals(ElectronicBasis.MO, (np.zeros((2, 2)), None))],
                        shift={"ActiveSpaceTransformer": 0.0},
                    ),
                    DipoleMoment(
                        "y",
                        [OneBodyElectronicIntegrals(ElectronicBasis.MO, (np.zeros((2, 2)), None))],
                        shift={"ActiveSpaceTransformer": 0.0},
                    ),
                    DipoleMoment(
                        "z",
                        [
                            OneBodyElectronicIntegrals(
                                ElectronicBasis.MO,
                                (
                                    np.asarray(
                                        [[0.69447435, -1.01418298], [-1.01418298, 0.69447435]]
                                    ),
                                    None,
                                ),
                            )
                        ],
                        shift={"ActiveSpaceTransformer": 0.0},
                    ),
                ]
            )
        )

        self.assertDriverResult(driver_result_reduced, expected)