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

A question on setting the initial state #63

Open
adscft-quibt opened this issue Mar 23, 2022 · 1 comment
Open

A question on setting the initial state #63

adscft-quibt opened this issue Mar 23, 2022 · 1 comment
Labels
physics Issues related to the simulation of a particular model question Further information is requested

Comments

@adscft-quibt
Copy link

Hi TEMPO developers,

I have a question about the setting of the initial state. How can i set the initial state of the system as the maximal entanglement state in PT-TEBD algorithm,if the system is composed by two qubits?

Best regards.

@gefux
Copy link
Member

gefux commented Mar 24, 2022

Hi @adscft-qubit!

You can start a TEBD simulation in any state. For this it is, however, necessary to enter the state in a canonical Vidal form in Liouville space. This means that for a N site chain you'll need to enter the state in an MPS form consisting of N Gamma tensors and N-1 diagonal lambda matrices as shown in this picture:

2022-03-24_18:10:46_area

I've labeled the axis of the Gamma tensors with "L" for "left bond", "R" for "right bond", "P" for "physical bond in vectorised Liouville space". The axis order should be [L, P, R] as described in the documentation of oqupy.AugmentedMPS here.

Example: |Ψ-> Bell State

Let's assume we'd like to start a PT-TEBD simulation in the Bell State |Ψ-> = |u, d> - |d, u>. (read "up" and "down" for "u" and "d"). The density matrix for this state is:

2022-03-24_18:10:56_area

The last expression is an MPS in canonical form with a bond dimension of 4 due to the 4 terms. We can write this in python using the single site Liouville basis {uu, ud, du, uu} where xy = |x><y|.

uu = np.array([[1,0],[0,0]]).flatten()
ud = np.array([[0,1],[0,0]]).flatten()
du = np.array([[0,0],[1,0]]).flatten()
dd = np.array([[0,0],[0,1]]).flatten()

gamma0 = np.array([uu,(-1)*ud, (-1)*du, dd])
lambda0 = np.array([0.5, 0.5, 0.5, 0.5])
gamma1 = np.array([dd, du, ud, uu])

gamma0.shape=(1,4,4)
gamma0 = np.swapaxes(gamma0, 1, 2)
gamma1.shape=(4,4,1)

initial_augmented_mps = oqupy.AugmentedMPS(
    gammas=[gamma0, gamma1],
    lambdas=[lambda0,])

@adscft-qubit: Is this what you needed?

Comments:

  1. There has been a bug Bug: Correlated initial AugmentedMPS assertion error #64 concerning correlated initial MPS in the release, which I've corrected with the last commit 1f42e2f.
  2. We appreciate that this is not the most convenient way of entering a general initial state. Making correlated initial state more accessible is on an internal ToDo list. If anyone has any problems with this (or, in fact, has written something that could help) feel free to open another issue about it!

Best, gefux

@gefux gefux added question Further information is requested physics Issues related to the simulation of a particular model labels May 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
physics Issues related to the simulation of a particular model question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants