Przybliżenie Davisa to znane w kwantowej fizyce statystycznej narzędzie służące do opisu dynamiki zredukowanej
$\rho(t)=\mbox{Tr}_{E} R(t)$
gdzie $R$ jest stanem układu kwantowego składającego się z badanego podukładu (w naszym przypadku to qubit lub para qubitów) oraz termostatu (zwyczajowo modelowanego jako pole bozonowe lub fermionowe), zaś ślad wykonuje się jedynie po stopniach swobody termostatu. Powyższy ślad częściowy oblicza się przy wykorzystaniu szeregu przybliżeń. Spośród najbardziej znanych wymieńmy przybliżenia Borna i Markowa. Ich omówieniu poświęcimy się kiedy indziej. Celeowość znajdowania dynamiki zredukowanej wiąże się z jej znaczeniem statystycznym: dowolne loklane obserwable obliczone dla dynamiki zredukowanej dają wyniki zgodne z wartościami oczekiwanymi obliczonymi dla pełnej dynamiki. Co więcej w większości przypadków "otoczenie" jest modelowane przez nieskończenie wymiarowe pole (bozonowe lub fermionowe) zaś dynamika zredukowana jest skończenie wymiarowa (w przypadku qubitów dwuwymiarowa), w przypadkach kwantowo-optycznych przeliczalnie wymiarowa. Dzięki temu obliczenia numeryczne są znacząco uproszoczone ze względu na brak konieczności wykonywania wiarygodnych obcięć przestrzeni stanów.
Skuteczne i wiarygodne modelowanie dynamiki zredukowanej wymaga przyjecia szeregu założeń opisujących zarówno otoczenie, jak i badany układ. Najpowszechniejsze przybliżenia wymagają założenia o dobrej separacji skal czasowych/energetycznych układów. Separacja ta przekłada się na separację odpowiednich czasów relaksacji otoczenia i układu wynikiem czego może być uzasadnione przybliżenie Markowa.
W przypadku przybliżenia Daviesa możemy mówić o wysoce posuniętej ścisłości matematycznej. W oparciu o szczegółową znajomość parametrów układu i termostatu otrzymuje się dynamikę zredukowaną będącą rozwiązaniem pewnego typu równania fundamentalnego (tzw. równania Master):
$\frac{d}{dt}\rho(t)=\mathcal{L}[\rho(t)]$
gdzie informacja o własnościach układu kryje się w superoperatorze $\mathcal{L}$. Należy podkreślić, że rozwiązanie równania fundamentalnego jest w ogólnym przypadku trudne. Istotą wyprowadzenia dynamiki zredukowanej w przybliżeniu Daviesa jest rachynek zaburzeń przeprowadzony ze względu na energię sprzężenia pomiędzy ukłądem i otoczeniem.
W tych materiałach badamy, ograniczając się do przypadku qubitów, rozwiązanie uproszczone dane za pomocą tzw. mapy Daviesa [W. Roga, M. Fannes, K. Życzkowski, RMP 66, 311 (2010)]. Opisuje ona rozwiązania równania funadamentalnego w wybranych chwilach czasu.
Mapa Daviesa $D=D(p,A,G,\omega,t)$ określona na macierzach bazowych zbioru operatorów qubitowych (2 wymiary) ma następującą postać
$ D|1\rangle\langle 1|= [1-(1-p)(1-e^{-At})]|1\rangle\langle 1|+(1-p)(1-e^{-At})|0\rangle\langle 0| $
$ D|1\rangle\langle 0|= e^{i\omega t -Gt}|1\rangle\langle 0| $
$ D|0\rangle\langle 1|= e^{-i\omega t -Gt}|0\rangle\langle 1| $
$ D|0\rangle\langle 0|= (1-e^{-At})|1\rangle\langle 1|+[1-(1-e^{-At})]|0\rangle\langle 0|$
gdzie $p\in[0,1/2]$ wiąże się z temperaturą (przy $k_B=1$) poprzez:
$ p=\exp(-\omega/2T)/[\exp(-\omega/2T)+\exp(\omega/2T)]. $
$\omega$ opisuje odległość między poziomami energetycznymi qubitu:
$H_Q=\frac{\omega}{2}(|1\rangle\langle 1|-|0\rangle\langle 0|)$
Parametry $A = 1/\tau_R$ oraz $G = 1/\tau_D$ wiążą się z czasem relaksacji enregii $\tau_R$ oraz czasem defazingu $\tau_D$.
Zauważmy, że dla długich czasów mapa Daviesa daje równowagowy stan Gibbsa:
$ \lim_{t\rightarrow\infty}D(p,A,G,\omega,t)\rho=p|1\rangle\langle 1|+(1-p)|0\rangle\langle 0|$
UWAGA Parametry mapy Daviesa wymagają spełnienia $ G \ge A/2 $ dla uzyskania fizycznie sensownych własności mapy (takich jak zupełna dodatniość)
Przystąpmy do numerycznej konstrukcji mapy Daviesa. W pierwszym kroku importujemy odpowiednie narzędzia
from qutip import *
from pylab import *
%pylab inline
Populating the interactive namespace from numpy and matplotlib
WARNING: pylab import has clobbered these variables: ['power', 'linalg', 'draw_if_interactive', 'random', 'save', 'load', 'info', 'fft'] `%pylab --no-import-all` prevents importing * from pylab and numpy
i wprowadzamy uproszczenia notacji dla bazy przestrzeni Hilberta qubitu
up=basis(2,0)
dn=basis(2,1)
Szczególną rolę odgrywają dalej macierze bazowe, za pomocą których wyrazić można dowolną macierz działającą na przestrzeni Hilberta pojedynczego qubitu:
rpp=up*up.dag()
rpm=up*dn.dag()
rmp=rpm.trans()
rmm=dn*dn.dag()
Następnie definiujemy działanie mapy Daviesa na macierzach bazowych jako funkcję parametrów termostatu i czasu $t$
def dav_pp(A,G,p,W,t):
xx=(1-(1-p)*(1-exp(-A*t)))*rpp+(1-p)*(1-exp(-A*t))*rmm
return xx
def dav_pm(A,G,p,W,t):
xx=exp(-1j*W*t)*exp(-G*t)*rpm
return xx
def dav_mp(A,G,p,W,t):
xx=exp(1j*W*t)*exp(-G*t)*rmp
return xx
def dav_mm(A,G,p,W,t):
xx=(1-((1-p)*(1-exp(-A*t)))*p/(1-p))*rmm+(1-p)*(1-exp(-A*t))*p/(1-p)*rpp
return xx
Oczywiście funkcję taką możemy teraz określić bezpośrednio dla stanu $\rho$ uwzględniając fakt, że w zbiorze macierzy gęstości można wprowadzić iloczyn skalarny Hilberta Schmidta
$\langle A,B\rangle=\mbox{Tr}(A^\dagger B) $
pozwalający na znalezienie składowych dowolnej macierzy w wybranej ortonormalnej bazie macierzowej:
def davis(rho,A,G,p,W,t):
#
dpp=dav_pp(A,G,p,W,t)
dpm=dav_pm(A,G,p,W,t)
dmp=dav_mp(A,G,p,W,t)
dmm=dav_mm(A,G,p,W,t)
#
xpp=(rpp*rho.dag()).tr()
xmp=(rmp*rho.dag()).tr()
xpm=(rpm*rho.dag()).tr()
xmm=(rmm*rho.dag()).tr()
out=xpp*dpp+xmm*dmm+xmp*dmp+xpm*dpm
return out
Teraz możemy ustalić parametry:
A=1.0
G=1.0
p=1.0/2.0
q=1.0/2.0
W=0.0
i stan początkowy:
vv=(up+dn).unit()
rho=ket2dm(vv)
rho
Naszym pierwszym zadniem będzie wizualizacja wartości entropii von Neumanna
$S(\rho)=-\mbox{Tr}(\rho\log\rho) $
dla stanu $\rho(t)=D\rho$
Na wstępie określmy listy dla chwil czasu (tlist) oraz wyników (outlist):
tlist=linspace(0.0,3.0,20.0)
outlist=zeros(len(tlist))
W następnym kroku obliczamy, używając funkcji QuTip entropy_vn(), entropię dla każdej chwili czasu. Wczaeśniej przy użyciu naszej funkcji davis() znajdujemy oczywiści $\rho(t)$:
for i1 in range(len(tlist)):
t=tlist[i1]
out=davis(rho,A,G,p,W,t)
outlist[i1]=entropy_vn(out)
Uzyskane wyniki można nakreślić:
plot(tlist,outlist,'-.r',label='xx', linewidth=4)
xlabel('t',fontsize=20)
ylabel('S_vN',fontsize=20)
show()
Rozważmy teraz inny, nie mniej ciekawy, problem. Mając dany maksymalnie splątany stan Bella:
BB0=(tensor(rpp,rmm)+tensor(rpm,rmp)+tensor(rmp,rpm)+tensor(rmm,rpp))/2.0
spróbujmy określić i zwizualizować wpływ otoczenia termicznego na splątanie tego stanu. Korzystając z faktu, że mapa Daviesa jest operacją liniową wystarczy określić jej działanie na macierzach bazowych przy ustalonych parametrach termostatu:
A=1.0
G=1.0
p=1.0/2.0
q=1.0/2.0
W=0.0
t=0.1
dpp=dav_pp(A,G,p,W,t)
dpm=dav_pm(A,G,p,W,t)
dmp=dav_mp(A,G,p,W,t)
dmm=dav_mm(A,G,p,W,t)
Jeśli przyjmiemy, że tylko jeden z qubitów tworzących stan Bella jest w kontakcie z termostatem, wówczas , w chwili $t=0.1$ stan BB0 przekształaca się do postaci:
Env=(tensor(dpp,rpp)+tensor(dpm,rpm)+tensor(dmp,rmp)+tensor(dmm,rmm))/2.0
Splątanie stanu Env można zmierzyć i obliczyć wykorzystując funkcję concurrence(). Przypomnijmy, że przyjmuje ona wartość 1 w przypadku stanów maksymalnie splątanych, zaś 0 dla stanów niesplątanych
concurrence(Env)
0.85725612705393783
Teraz zaś wykonamy powyższe zadanie dla całego przedziału czasu:
tlist=linspace(0.0,3.0,20.0)
outlist=zeros(len(tlist))
for i1 in range(len(tlist)):
t=tlist[i1]
#
dpp=dav_pp(A,G,p,W,t)
dpm=dav_pm(A,G,p,W,t)
dmp=dav_mp(A,G,p,W,t)
dmm=dav_mm(A,G,p,W,t)
#
out=(tensor(dpp,dpp)+tensor(dpm,dpm)+tensor(dmp,dmp)+tensor(dmm,dmm))/2.0
outlist[i1]=concurrence(out)
Uzyskane wyniki nakreślimy:
plot(tlist,outlist,'-.r',label='xx', linewidth=4)
xlabel('t',fontsize=20)
ylabel('C',fontsize=20)
show()