You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
7
7
These Hamiltonians can then be used as input into the hybrid quantum-classical solvers that the CUDA-Q Solvers API provides.
8
8
9
9
10
10
Molecular Orbitals and Hamiltonians
11
11
+++++++++++++++++++++++++++++++++++
12
12
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.
15
15
16
16
.. tab:: Python
17
17
@@ -28,16 +28,16 @@ Here we create "default" Hamiltonian for the N2 system using complete active spa
28
28
29
29
We specify:
30
30
- 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)
33
33
- The total charge
34
34
- 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
36
36
- A verbosity flag to help introspect on the data what was generated.
37
37
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`.
39
39
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:
41
41
42
42
.. tab:: Python
43
43
@@ -79,7 +79,9 @@ This option is unallowed yet when using `UR=True`. When using `UR=True`, only UH
79
79
CASSCF Orbitals
80
80
+++++++++++++++
81
81
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.
83
85
84
86
.. tab:: Python
85
87
@@ -96,7 +98,8 @@ Next, we can start from either Hartree-Fock or perturbation theory atomic orbita
96
98
integrals_casscf=True,
97
99
verbose=True)
98
100
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.
100
103
101
104
.. tab:: Python
102
105
@@ -115,15 +118,13 @@ For Hartree-Fock, or
115
118
integrals_casscf=True,
116
119
verbose=True)
117
120
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.
121
122
122
123
123
124
For open-shell systems
124
125
++++++++++++++++++++++++++
125
126
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:
127
128
128
129
.. tab:: Python
129
130
@@ -139,7 +140,7 @@ If you want to use Restricted Open-shell Hartree-Fock (ROHF) orbitals, you can s
139
140
verbose=True)
140
141
141
142
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:
143
144
144
145
.. tab:: Python
145
146
@@ -153,4 +154,6 @@ If you want to use Unrestricted Hartree-Fock (UHF) orbitals, you can set `UR=Tru
153
154
nele_cas=3,
154
155
norb_cas=3,
155
156
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