Release Notes#

0.4.0#

New Features#

  • Added support for Python 3.12.

0.3.0#

Prelude#

The use of the deprecated qiskit.algorithms module has been replaced by the new qiskit-algorithms package which provide a drop-in replacement in the form of the qiskit_algorithms module.

New Features#

  • Support was added for FCISolver instances which have their nroots attribute set to a value higher than 1, indicating that they also compute excited states.

Upgrade Notes#

  • Support for running with Python 3.7 has been removed. You now need to use Python 3.8 as the minimum version.

Bug Fixes#

  • The ElectronicDensity object that was returned as part of the ElectronicStructureResult from the PySCFGroundStateSolver was faultily storing restricted-spin information within the alpha-spin register even though the object is documented as storing unrestricted spin-data. This has been fixed and the ElectronicDensity object is now guaranteed to store unrestricted-spin information. If a restricted-spin density is required it may be obtained from the trace_spin() method.

0.2.0#

New Features#

  • Adds the PySCFGroundStateSolver to provide simpler means for testing and debugging classical computational workflows in Qiskit Nature. Below is an example of how to use it:

    from pyscf import fci
    
    from qiskit_nature.second_q.drivers import MethodType, PySCFDriver
    from qiskit_nature.second_q.transformers import ActiveSpaceTransformer
    
    from qiskit_nature_pyscf import PySCFGroundStateSolver
    
    driver = PySCFDriver(
        atom="O 0.0 0.0 0.0; O 0.0 0.0 1.5",
        basis="sto3g",
        spin=2,
        method=MethodType.UHF,
    )
    problem = driver.run()
    
    transformer = ActiveSpaceTransformer(4, 4)
    
    problem = transformer.transform(problem)
    
    solver = PySCFGroundStateSolver(fci.direct_uhf.FCI())
    
    result = solver.solve(problem)
    print(result)
    
  • Added support for running with Python 3.11.

Bug Fixes#

  • Ensures compatibility of this plugin with Qiskit Nature 0.6. The examples are updated in order to avoid triggering deprecation warnings. Using Qiskit Nature 0.5 is still supported.

0.1.0#

New Features#

  • First release of Qiskit Nature PySCF with the class qiskit_nature_pyscf.runtime.QiskitSolver

    from pyscf import gto, scf, mcscf
    
    from qiskit.algorithms.optimizers import SLSQP
    from qiskit.primitives import Estimator
    from qiskit_nature.second_q.algorithms import GroundStateEigensolver, VQEUCCFactory
    from qiskit_nature.second_q.circuit.library import UCCSD
    from qiskit_nature.second_q.mappers import ParityMapper, QubitConverter
    
    from qiskit_nature_pyscf import QiskitSolver
    
    mol = gto.M(atom="Li 0 0 0; H 0 0 1.6", basis="sto-3g")
    
    h_f = scf.RHF(mol).run()
    
    norb, nelec = 2, 2
    
    cas = mcscf.CASCI(h_f, norb, nelec)
    
    converter = QubitConverter(ParityMapper(), two_qubit_reduction=True)
    
    vqe = VQEUCCFactory(Estimator(), UCCSD(), SLSQP())
    
    algorithm = GroundStateEigensolver(converter, vqe)
    
    cas.fcisolver = QiskitSolver(algorithm)
    
    cas.run()