-
Notifications
You must be signed in to change notification settings - Fork 209
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The AngularMomentum
operator is unable to account for spin contamination
#1273
Labels
Comments
mrossinek
added a commit
to mrossinek/qiskit-nature
that referenced
this issue
Nov 14, 2023
5 tasks
mrossinek
added a commit
that referenced
this issue
Nov 15, 2023
* feat: include the overlap in the AngularMomentum Fixes #1273 * test: add unittests for spin operators with overlap * Add reno * Update docs * Add spelling exceptions * Add missing import * Handle overlap in AngularMomentum during transformers * Handle overlap during drivers * Mention new method to extract overlap from QCSchema in reno * Update releasenotes/notes/fix-angular-momentum-73eca0a5afb70679.yaml Co-authored-by: Steve Wood <[email protected]> --------- Co-authored-by: Steve Wood <[email protected]>
mergify bot
pushed a commit
that referenced
this issue
Nov 15, 2023
* feat: include the overlap in the AngularMomentum Fixes #1273 * test: add unittests for spin operators with overlap * Add reno * Update docs * Add spelling exceptions * Add missing import * Handle overlap in AngularMomentum during transformers * Handle overlap during drivers * Mention new method to extract overlap from QCSchema in reno * Update releasenotes/notes/fix-angular-momentum-73eca0a5afb70679.yaml Co-authored-by: Steve Wood <[email protected]> --------- Co-authored-by: Steve Wood <[email protected]> (cherry picked from commit 0c0b3c8)
mergify bot
added a commit
that referenced
this issue
Nov 15, 2023
* feat: include the overlap in the AngularMomentum Fixes #1273 * test: add unittests for spin operators with overlap * Add reno * Update docs * Add spelling exceptions * Add missing import * Handle overlap in AngularMomentum during transformers * Handle overlap during drivers * Mention new method to extract overlap from QCSchema in reno * Update releasenotes/notes/fix-angular-momentum-73eca0a5afb70679.yaml Co-authored-by: Steve Wood <[email protected]> --------- Co-authored-by: Steve Wood <[email protected]> (cherry picked from commit 0c0b3c8) Co-authored-by: Max Rossmannek <[email protected]>
ialsina
pushed a commit
to ialsina/qiskit-nature
that referenced
this issue
Nov 17, 2023
* feat: include the overlap in the AngularMomentum Fixes qiskit-community#1273 * test: add unittests for spin operators with overlap * Add reno * Update docs * Add spelling exceptions * Add missing import * Handle overlap in AngularMomentum during transformers * Handle overlap during drivers * Mention new method to extract overlap from QCSchema in reno * Update releasenotes/notes/fix-angular-momentum-73eca0a5afb70679.yaml Co-authored-by: Steve Wood <[email protected]> --------- Co-authored-by: Steve Wood <[email protected]>
1 task
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Environment
What is happening?
Evaluating the
AngularMomentum
operator (a.k.a.S^2
) does not work as intended. As it is implemented right now, this operator has the baked-in assumption, that the orbitals form an orthonormal basis. While this is true for restricted-spin calculations, this does not necessarily hold for unrestricted-spin calculations. This reflects itself in the form of spin contamination as can be seen below.How can we reproduce the issue?
What should happen?
We should be able to resolve the correct spin contamination on the pure HF ground state, just like PySCF can reproduce it. To do so, we need to take the non-trivial overlap between the alpha- and beta-spin orbitals into account when constructing the
S^+
andS^-
operators which go into theAngularMomentum
operator.Any suggestions?
The code snippet above already contains the solution. The API of the following methods/classes will need to be adapted slightly to make this a complete fix:
AngularMomentum
s_plus_operator
s_minus_operator
s_x_operator
(can be built fromS^+
andS^-
)s_y_operator
(can be built fromS^+
andS^-
)The text was updated successfully, but these errors were encountered: