Molecule#

The Molecule object contains all the information from a classical quantum chemistry calculation that will be used in the quantum simulation.

The key inputs required are:

geometry

atomic coordinates in the form of a list of tuples

charge

an integer value for the net charge for the entire molecule

default value is 0

multiplicity

spin multiplicity given as 2S + 1, where S is the number of unpaired electrons multipled by 1/2

default value is 1 (all electrons paired)

Optional inputs:

basis

the atomic orbital basis set to be used

default value is ‘STO-3G’

xyz_file

qibochem allows the geometry, charge, and multiplicity to be specified as an .xyz file, with the format:

n_atoms
charge multiplicity
atom_1 x_coord y_coord z_coord
...
atom_n x_coord y_coord z_coord
active

list of molecular orbitals to be considered in the quantum simulation

The current implementation supports both restricted and unrestricted spins. (TODO: elaborate)

Variables#

Upon executing the PyScf driver program for a given molecule, molecular quantities are calculated at the Hartree-Fock (HF) level and stored in the Molecule class. These include:

  • converged Hartree-Fock energy

  • optimized molecular orbital (MO) coefficients

  • one- and two-electron integrals

Additional details are provided in the API reference.

Example#

The following examples show how to use the driver program to save molecule quantities into the Molecule object

PySCF for H2 with H-H distance of 0.74804 Angstroms at HF/STO-3G level

from qibochem.driver.molecule import Molecule

h2 = Molecule([('H', (0.0, 0.0, 0.0)), ('H', (0.0, 0.0, 0.74804))])
h2.run_pyscf()
print(h2.e_hf)

Output:

converged SCF energy = -1.11628373627429