Skip to content

Commit

Permalink
Add basic examples for Molecule class
Browse files Browse the repository at this point in the history
  • Loading branch information
chmwzc committed Dec 5, 2023
1 parent c287677 commit 7fd7e63
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 47 deletions.
46 changes: 0 additions & 46 deletions doc/source/code-examples/examples.rst

This file was deleted.

2 changes: 1 addition & 1 deletion doc/source/code-examples/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ This section provides examples of how to use Qibochem.
.. toctree::
:maxdepth: 2

examples
molecule
60 changes: 60 additions & 0 deletions doc/source/code-examples/molecule.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
Building a Molecule
===================

To get started with Qibochem, the molecular system of interest is first defined:

Molecular geometry input
------------------------

A ``Molecule`` can be defined either inline, or using an ``.xyz`` file. An example for a H2 molecule:

.. code-block::
from qibochem.driver.molecule import Molecule
# Inline definition
h2 = Molecule([('H', (0.0, 0.0, 0.0)), ('H', (0.0, 0.0, 0.74804))])
# From an .xyz file
# h2 = Molecule(xyz_file='h2.xyz')
Note that the comment line in the ``.xyz`` file can be used to define the electronic charge and spin multiplicity of the molecule.
If it is not given, it defaults to 0 and 1, respectively.


Obtaining the molecular Hamiltonian
-----------------------------------

After defining the molecular coordinates, the next step is to obtain the molecular integrals.
Qibochem offers the functionality to interface with either `PySCF`_ or `PSI4`_ towards that end:

.. _PySCF: https://pyscf.org/
.. _PSI4: https://psicode.org/

.. code-block::
from qibochem.driver.molecule import Molecule
# Inline definition of H2
h2 = Molecule([('H', (0.0, 0.0, 0.0)), ('H', (0.0, 0.0, 0.74804))])
# Using PySCF
h2.run_pyscf()
# Using PSI4
# h2.run_psi4()
After the molecular integrals have been calculated, molecular Hamiltonian can then be constructed in the form of a Qibo ``SymbolicHamiltonian``:

.. code-block::
from qibochem.driver.molecule import Molecule
# Inline definition of H2
h2 = Molecule([('H', (0.0, 0.0, 0.0)), ('H', (0.0, 0.0, 0.74804))])
# Calculate molecular integrals
h2.run_pyscf()
# Get molecular Hamiltonian
hamiltonian = h2.hamiltonian()

0 comments on commit 7fd7e63

Please sign in to comment.