Table of Contents

개요

2023 KIAS-APCTP 통계물리 겨울학교 조재윤 교수님 프로젝트 내용 정리입니다.

모형

두 개의 에너지 준위를 가지는 입자 두개로 이루어진 계를 생각해보자. 이 때, 각 입자의 두 에너지 준위 사이의 에너지 차이가 $\hbar \omega$이고 두 입자가 $J$라는 세기로 상호작용하고 있다면 다음과 같은 해밀토니안을 생각할 수 있다. $$H = \frac{\hbar\omega}2\left(\sigma_z^A+\sigma_z^B\right)+\hbar J\sigma_x^A\sigma_x^B$$ 그리고 계의 입자와 외부 환경과의 상호작용을 다음과 같은 항으로 도입하자. $$L_0 = \sigma_-^A,~~L_1=\sigma_A^B,~~\gamma_i = \gamma$$ 여기서 외부 환경은 고려하고자 하는 계에 비해 매우 커서 이러한 상호작용을 도입하더라도 외부 환경은 변하지 않는다고 가정한다.

이를 가지고 린드블라드 방정식을 다음과 같이 쓸 수 있다. $$\dot\rho(t) = -\frac i\hbar[H_f+H_{\text{int}},\rho(t)]+\sum_{i=0}^1\gamma_i\left(L_i\rho(t)L_i^\dagger-\frac12L_i^\dagger L_i\rho(t)-\frac12\rho(t)L_i^\dagger L_i\right)$$ 여기서 $A$와 $B$에 작용하는 연산자가 곱해져 있을 때 이는 실제로 텐서곱을 의미하고, 둘 중 하나에만 작용하는 연산자는 항등연산자와의 텐서곱을 의미한다는 것을 주의해야 한다. 예를 들어, $$ \sigma_-^A = \sigma_-^A\otimes I,\quad\sigma_x^A\sigma_x^B=\sigma_x^A\otimes\sigma_x^B $$ 이다.

위 린드블라드 방정식을 풀 때는 밀도행렬을 열벡터로 펼치고, 각 항에 걸려있는 해밀토니안과 결어긋남 항들을 이 밀도행렬에 걸리는 연산자로 취급해서 푸는 것이 편리하다. 즉, 변환 $$X\rho Y=X\otimes Y^T\vec\rho$$ 를 이용해서 $$\dot{\vec \rho}(t) = M\vec\rho(t)$$ 의 형태로 만들자. 이 때 행렬 $M$을 리우빌리안이라고 부른다. 이렇게 하면, 어떤 양자계의 동역학은 위 리우빌리안 행렬의 고윳값과 고유벡터를 구하는 문제가 된다.

위 변환을 이용해서 우리 계의 리우빌리안을 구해보면 $$M = \left( \begin{array}{cccccccccccccccc} -2 \gamma & 0 & 0 & i J & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -i J & 0 & 0 & 0 \\ 0 & -\frac{3 \gamma }{2}-i \omega & i J & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -i J & 0 & 0 \\ 0 & i J & -\frac{3 \gamma }{2}-i \omega & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -i J & 0 \\ i J & 0 & 0 & -\gamma -2 i \omega & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -i J \\ 0 & 0 & 0 & 0 & -\frac{3 \gamma }{2}+i \omega & 0 & 0 & i J & -i J & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ \gamma & 0 & 0 & 0 & 0 & -\gamma & i J & 0 & 0 & -i J & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & i J & -\gamma & 0 & 0 & 0 & -i J & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & \gamma & 0 & i J & 0 & 0 & -\frac{\gamma }{2}-i \omega & 0 & 0 & 0 & -i J & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & -i J & 0 & 0 & 0 & -\frac{3 \gamma }{2}+i \omega & 0 & 0 & i J & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & -i J & 0 & 0 & 0 & -\gamma & i J & 0 & 0 & 0 & 0 & 0 \\ \gamma & 0 & 0 & 0 & 0 & 0 & -i J & 0 & 0 & i J & -\gamma & 0 & 0 & 0 & 0 & 0 \\ 0 & \gamma & 0 & 0 & 0 & 0 & 0 & -i J & i J & 0 & 0 & -\frac{\gamma }{2}-i \omega & 0 & 0 & 0 & 0 \\ -i J & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -\gamma +2 i \omega & 0 & 0 & i J \\ 0 & -i J & 0 & 0 & 0 & 0 & 0 & 0 & \gamma & 0 & 0 & 0 & 0 & -\frac{\gamma }{2}+i \omega & i J & 0 \\ 0 & 0 & -i J & 0 & \gamma & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & i J & -\frac{\gamma }{2}+i \omega & 0 \\ 0 & 0 & 0 & -i J & 0 & \gamma & 0 & 0 & 0 & 0 & \gamma & 0 & i J & 0 & 0 & 0 \\ \end{array} \right)$$ 가 된다.

수치해

이론적으로는 위 행렬의 고윳값과 고유벡터를 구하면 계의 모든 특성을 알아낼 수 있지만, 식의 형태가 매우 복잡해지므로 여기서는 수치해를 구하는 것에 집중하도록 한다. 적분 방법으로는 4차 룽게-쿠타 방법을 이용했고 초기 조건으로는 다음과 같은 상태를 고려했다. $$\rho(0) = \frac{1-p}4I + p\vert\psi^+\rangle\langle\psi^+\vert$$ 여기서 $\vert\psi^+\rangle = 1/\sqrt2\left(\vert eg\rangle + \vert ge\rangle\right)$이다. 즉, $p=1$이면 벨 상태이고, $p=0$이면 분리가능한 상태이다.

그리고 물리량으로는 얽힘 엔트로피 $$S_E(t) = \text{Tr}_A \rho_A(t)\log\rho_A(t)$$ 를 선택했다.

결과

using LinearAlgebra
using Printf
 
if (length(ARGS)<5)
	println("Usage: julia lindblad.jl J gamma p tf dt")
	exit()
end
 
J = parse(Float32,ARGS[1])
gamma = parse(Float32,ARGS[2])
p=parse(Float32,ARGS[3])
tf = parse(Float32,ARGS[4]) 
dt = parse(Float32,ARGS[5])
omega = 1
 
sx = [0 1; 1 0]
sz = [1 0; 0 -1]
sm = [0 0; 1 0]
id2 = [1 0; 0 1]
id4 = kron(id2,id2)
 
function Hf(omega)
  hf = omega*(kron(sz,id2)+kron(id2,sz))/2.0
  return -im*(kron(hf,id4)-kron(id4,hf))
end
 
function Hint(J)
  hint = J*kron(sx,sx)
  return -im*(kron(hint,id4)-kron(id4,hint))
end
 
function Decoherence(gamma)
  L0 = kron(sm,id2)
  L1 = kron(id2,sm)
 
  decoherence0 = kron(L0,L0)-0.5*(kron(transpose(L0)*L0,id4)+kron(id4,transpose(L0)*L0))
  decoherence1 = kron(L1,L1)-0.5*(kron(transpose(L1)*L1,id4)+kron(id4,transpose(L1)*L1))
  return gamma*(decoherence0+decoherence1)
end
 
function EntanglementEntropy(r)
  r = reshape(r,(4,4))
  c = real((r[1,1]+r[2,2])*(r[3,3]+r[4,4])-(r[3,1]+r[4,2])*(r[1,3]+r[2,4]))
  l1 = 0.5*(1.0+sqrt(1.0-4.0*c))
  l2 = 0.5*(1.0-sqrt(1.0-4.0*c))
  return -l1*log2(l1)-l2*log2(l2)
end
 
 
M = Hf(omega)+Hint(J)+Decoherence(gamma)
dmatrix = [(1-p)/4; 0; (1-p)/4; 0; 0; (1+p)/4; p/2; (1-p)/4; (1-p)/4; p/2; (1+p)/4; 0; 0; (1-p)/4; 0; (1-p)/4]
 
t=0.0
while(t<tf)
  global dmatrix,t,dt
  k1 = dt*M*dmatrix
  k2 = dt*M*(dmatrix+k1/2.0)
  k3 = dt*M*(dmatrix+k2/2.0)
  k4 = dt*M*(dmatrix+k3)
  dmatrix = dmatrix+(k1+2.0*k2+2.0*k3+k4)/6.0
  @printf "%.4f %.4f\n" t EntanglementEntropy(dmatrix)	
  t+=dt
end

참고문헌

STEADY-STATE ENTANGLEMENT IN BIPARTITE SYSTEMS UNDER THE INFLUENCE OF NON-MARKOVIAN ENVIRONMENTS, Ph.D thesis of Joachim Fischbach