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

TEBD for non-hermitian Hamiltonians #96

Closed
jhauschild opened this issue Dec 18, 2019 · 0 comments
Closed

TEBD for non-hermitian Hamiltonians #96

jhauschild opened this issue Dec 18, 2019 · 0 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@jhauschild
Copy link
Member

People start to think about non-hermitian Hamiltonians.
DMRG would need major adjustments for that, but TEBD could be adjusted quite simply.
Like in the imaginary time evolution with hermitian H, it would lead to non-hermitian U = expm(-i*dt *H_bond), but that's probably fine as long as the time step is small enough, and one could do the left-right-sweep instead of the brick-wall pattern to account for that.

Right now, the only point where it actually does break down is in generating the correct U=expm(-i*dt*H), because it does that by diagonalizing the H = V E V^dagger with eigh under the assumption that H is hermitian, and computing U = V exp(-i dt E) V^dagger.
For non-hermitian H, V V^dagger is no longer the identity, so one would need to compute matrix inverses in Engine._calc_U_bond. Alternatively, and probably better, one could overwrite that function Engine._calc_U_bond to not use the diagonalized H and instead use something like scipy.linalg.expm blockwise, which is already implemented for np_conserved Arrays in expm.

@jhauschild jhauschild added the enhancement New feature or request label Dec 18, 2019
@jhauschild jhauschild added this to the Release 0.5.0 milestone Dec 19, 2019
@jhauschild jhauschild self-assigned this Dec 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant