예제 #1
0
 def test_vqe_uccsd(self):
     """ Test VQE UCCSD case """
     solver = VQEUCCSDFactory(
         QuantumInstance(BasicAer.get_backend('statevector_simulator')))
     calc = GroundStateEigensolver(self.transformation, solver)
     res = calc.solve(self.driver)
     self.assertAlmostEqual(res.energy, self.reference_energy, places=6)
    def _setup_evaluation_operators(self):
        # first we run a ground state calculation
        solver = VQEUCCSDFactory(QuantumInstance(BasicAer.get_backend('statevector_simulator')))
        calc = GroundStateEigensolver(self.transformation, solver)
        res = calc.solve(self.driver)

        # now we decide that we want to evaluate another operator
        # for testing simplicity, we just use some pre-constructed auxiliary operators
        _, aux_ops = self.transformation.transform(self.driver)
        return calc, res, aux_ops
    def setUp(self):
        super().setUp()
        try:
            self.driver = PySCFDriver(atom='H .0 .0 .0; H .0 .0 0.735',
                                      unit=UnitsType.ANGSTROM,
                                      charge=0,
                                      spin=0,
                                      basis='sto3g')
        except QiskitChemistryError:
            self.skipTest('PYSCF driver does not appear to be installed')

        self.reference_energy = -1.137306

        self.transformation = \
            FermionicTransformation(qubit_mapping=FermionicQubitMappingType.JORDAN_WIGNER)

        self.seed = 50
        self.quantum_instance = QuantumInstance(
            BasicAer.get_backend('statevector_simulator'),
            shots=1,
            seed_simulator=self.seed,
            seed_transpiler=self.seed)

        self._vqe_uccsd_factory = VQEUCCSDFactory(self.quantum_instance)