bachelor_thesis/presentation/spin_chain/transfer_matrix.py

24 lines
661 B
Python
Raw Permalink Normal View History

from pyqcs import X, Z, H, R, CX, State, list_to_circuit
def T_interaction(a, b, t):
theta = -t/2
return (CX(a, b) | R(a, -theta)
| X(a) | R(a, theta) | X(a) | CX(a, b))
def T_field(a, t, g):
theta = g*t/2
return (H(a) | R(a, -2*theta) | H(a)
| R(a, theta) | X(a) | R(a, theta) | X(a))
def T_time_slice(qbits, t, g, N):
interactions_half = list_to_circuit(
[T_interaction(i, i+1, t/(2*N))
for i,_ in enumerate(qbits[:-1])]
)
field = list_to_circuit([T_field(i, t/N, g) for i,_ in enumerate(qbits)])
return (interactions_half | field | interactions_half)