Skip to content
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

General n-body rotations for PolynomialTensor #86

Closed
kevinsung opened this issue Oct 27, 2017 · 6 comments
Closed

General n-body rotations for PolynomialTensor #86

kevinsung opened this issue Oct 27, 2017 · 6 comments

Comments

@kevinsung
Copy link
Collaborator

kevinsung commented Oct 27, 2017

Currently, the rotate_basis method of the PolynomialTensor class only rotates the (1, 0) and (1, 1, 0, 0) tensors, i.e., the tensors corresponding to terms of the form a^\dagger_p a_q and a^\dagger_p a^\dagger_q a_r a_s. Ideally, it would correctly rotate all tensors that are stored in the PolynomialTensor instance.

The rotation of the (1, 0) tensor is straightforward (just a basis change for a matrix), and the implementation of the rotation for the (1, 1, 0, 0) tensor is described in equations (22) and (23) of the release paper. The task for this issue is to work out how to generalize these expressions to arbitrary tensors and implement it in the rotate_basis method.

@fangzh-umich
Copy link
Contributor

Before this is resolved, maybe make the code throw an exception if there are other tensors stored? Failing silently feels dangerous.

@fangzh-umich
Copy link
Contributor

From what I have seen, the rotation is just applied to all the indices of the tensor, with no regards to the "key", i.e. the (1, 1, 0, 0) and the (0, 0, 1, 1) tensors should be rotated the same way. Can anyone confirm that this is indeed the correct behavior?

@fangzh-umich
Copy link
Contributor

It seems that the release paper "specialized" the rotation U to be real and orthogonal. Shouldn't we support the general case anyway?

@kevinsung
Copy link
Collaborator Author

kevinsung commented Nov 30, 2017

Yes, we should support the general case. The rotations of the (1, 1, 0, 0) tensors and (0, 0, 1, 1) tensors should differ by some complex conjugates (as we discussed in person).

@kevinsung
Copy link
Collaborator Author

I'll note here that for the complex one-body case, the transformation M' = R M R^T generalizes to R* M R^T.

@babbush
Copy link
Contributor

babbush commented Dec 3, 2017

Closed by #117

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants