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

Function to rewrite any Operator in terms of LocalSigma only #64

Open
goerz opened this issue Apr 18, 2018 · 0 comments
Open

Function to rewrite any Operator in terms of LocalSigma only #64

goerz opened this issue Apr 18, 2018 · 0 comments
Labels
enhancement new or improved features review needs review or further discussion

Comments

@goerz
Copy link
Member

goerz commented Apr 18, 2018

The should be a function rewrite_ops_as_localsigma that rewrites any Operator in terms of LocalSigma. This provides a very useful canonicalization that would make e.g. convert.to_sympy_matrix much easier to implement.

I've been thinking about adding a way to convert spin Hamiltonians to qutip using a "bit-testing" encoding in a restricted subspace, e.g. if the Hamiltonian in an N-spin system only allows for dynamics in the single-excitation subspace, the size of the Hilbert space can be reduced from 2^N to N (where the eigenstates are labeled 100..0, 010..0, ..., 000..1) This kind of conversion also is much easier if the operators only contain LocalSigma.

With OperatorIndexedSum, which allows for infinite sums, rewriting an operator into LocalSigma is always possible, even if the Hilbert space has no finite basis. For an OperatorSymbol S, one can write S = ∑ (S)_ij |i><j| where (S)_ij are new scalar symbols.

@goerz goerz added enhancement new or improved features review needs review or further discussion labels May 22, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement new or improved features review needs review or further discussion
Projects
None yet
Development

No branches or pull requests

1 participant