Skip to content

Commit 2f844cb

Browse files
committed
update molecular_hamiltonian.rst
Signed-off-by: marwafar <[email protected]>
1 parent a5be51a commit 2f844cb

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

docs/sphinx/examples_rst/solvers/molecular_hamiltonians.rst

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ Generating Molecular Hamiltonians
22
----------------------------------
33

44
The CUDA-Q Solvers library accelerates a wide range of applications in the domain of quantum chemistry.
5-
To facilitate these calculations, CUDA-Q Solvers provides the `solver.create_molecule` function to allow users to generate basis sets and Hamiltonians for many systems of interest.
6-
The molecule class contains basis set informations, and the Hamiltonian (`molecule.hamiltonian`) for the target systems.
5+
To facilitate these calculations, CUDA-Q Solvers provides the `solver.create_molecule` function to allow users to generate the electronic Hamiltonians for many systems of interest.
6+
The molecule class contains informations about the Hamiltonian (`molecule.hamiltonian`) for the target systems.
77
These Hamiltonians can then be used as input into the hybrid quantum-classical solvers that the CUDA-Q Solvers API provides.
88

99

1010
Molecular Orbitals and Hamiltonians
1111
+++++++++++++++++++++++++++++++++++
1212

13-
First we define the atomic geometry of the molecule by specifying a array of atomic symbols as strings, and coordinates in 3D space. We then get a molecule object from the `solvers.create_molecule` call.
14-
Here we create "default" Hamiltonian for the N2 system using complete active space molecular orbitals constructed from Restricted Hartree-Fock molecular orbitals.
13+
First, we define the atomic geometry of the molecule by specifying an array of atomic symbols as strings, and coordinates in 3D space. We then get a molecule object from the `solvers.create_molecule` call.
14+
Here, we create "default" Hamiltonian for the N2 system using complete active space molecular orbitals constructed from Restricted Hartree-Fock molecular orbitals.
1515

1616
.. tab:: Python
1717

@@ -28,16 +28,16 @@ Here we create "default" Hamiltonian for the N2 system using complete active spa
2828
2929
We specify:
3030
- The geometry previously created
31-
- The single particle basis set (here STO-3G)
32-
- The total spin
31+
- The basis set (here STO-3G)
32+
- The total spin (2 * S)
3333
- The total charge
3434
- The number of electrons in the complete active space
35-
- The number of orbitals in the complete activate space
35+
- The number of orbitals in the complete active space
3636
- A verbosity flag to help introspect on the data what was generated.
3737

38-
Along with the orbitals and Hamiltonian, we can also view various properties like the Hartree-Fock energy, and the energy of the frozen core orbitals by printing `molecule.energies`.
38+
Along with the Hamiltonian, we can also view various properties like the Hartree-Fock energy, and the energy of the frozen core orbitals by printing `molecule.energies`.
3939

40-
For using Unrestricted Hartree-Fock (UHF) orbitals, you can set the `UR` parameter to `True` in the `create_molecule` function. Here's an example:
40+
For using Unrestricted Hartree-Fock (UHF) orbitals, user can set the `UR` parameter to `True` in the `create_molecule` function. Here's an example:
4141

4242
.. tab:: Python
4343

@@ -79,7 +79,9 @@ This option is unallowed yet when using `UR=True`. When using `UR=True`, only UH
7979
CASSCF Orbitals
8080
+++++++++++++++
8181

82-
Next, we can start from either Hartree-Fock or perturbation theory atomic orbitals and build complete active space self-consistent field (CASSCF) molecular orbitals.
82+
Next, we can start from either Hartree-Fock or perturbation theory natural orbitals and build complete active space self-consistent field (CASSCF) molecular orbitals.
83+
84+
In the example below, we employ the CASSCF procedure starting from RHF molecular orbitals to generate the spin molecular Hamiltonian.
8385

8486
.. tab:: Python
8587

@@ -96,7 +98,8 @@ Next, we can start from either Hartree-Fock or perturbation theory atomic orbita
9698
integrals_casscf=True,
9799
verbose=True)
98100
99-
For Hartree-Fock, or
101+
Alternatively, we can also start from RHF, then MP2 natural orbitals and then perform CASSCF to generate the spin molecular Hamiltonian.
102+
In this case, natural orbitals from MP2 are used to set the active space for the CASSCF procedure.
100103

101104
.. tab:: Python
102105

@@ -115,15 +118,13 @@ For Hartree-Fock, or
115118
integrals_casscf=True,
116119
verbose=True)
117120
118-
for MP2 natural orbitals. In these cases, printing the `molecule.energies` also shows the `R-CASSCF` energy for the system.
119-
120-
Now that we have seen how to generate basis sets and Hamiltonians for quantum chemistry systems, we can use these as inputs to hybrid quantum-classical methods like VQE or adapt VQE via the CUDA-Q Solvers API.
121+
In these cases, printing the `molecule.energies` also shows the `R-CASSCF` energy for the system.
121122

122123

123124
For open-shell systems
124125
++++++++++++++++++++++++++
125126

126-
If you want to use Restricted Open-shell Hartree-Fock (ROHF) orbitals, you can set the `spin` parameter to a non-zero value while keeping the `charge` parameter as needed. For example, for a molecule with one unpaired electron, you can set `spin=1` and `charge=1`. Here's an example:
127+
For Restricted Open-shell Hartree-Fock (ROHF) orbitals, user can set the `spin` parameter to a non-zero value while keeping the `charge` parameter as needed. For example, for a molecule with one unpaired electron, you can set `spin=1` and `charge=1`. Here's an example:
127128

128129
.. tab:: Python
129130

@@ -139,7 +140,7 @@ If you want to use Restricted Open-shell Hartree-Fock (ROHF) orbitals, you can s
139140
verbose=True)
140141
141142
142-
If you want to use Unrestricted Hartree-Fock (UHF) orbitals, you can set `UR=True` and the `spin` parameter to a non-zero value while keeping the `charge` parameter as needed. Here's an example:
143+
For Unrestricted Hartree-Fock (UHF) orbitals, user can set `UR=True` and the `spin` parameter to a non-zero value while keeping the `charge` parameter as needed. Here's an example:
143144

144145
.. tab:: Python
145146

@@ -153,4 +154,6 @@ If you want to use Unrestricted Hartree-Fock (UHF) orbitals, you can set `UR=Tru
153154
nele_cas=3,
154155
norb_cas=3,
155156
UR=True,
156-
verbose=True)
157+
verbose=True)
158+
159+
Now that we have seen how to generate the spin molecular Hamiltonians for quantum chemistry systems, we can use these as inputs to hybrid quantum-classical methods like VQE or adapt VQE via the CUDA-Q Solvers API.

0 commit comments

Comments
 (0)