21b skyrius
Trūkioji fluorescencija ir kvantiniai šuoliai

Inicializacija

Inicializacinės ląstelės turi būti įvykdytos pirmiausia. Atsiradusiame dialogo lange paspaudus "Yes", jos bus  įvykdytos automatiškai.

Išjungiame pastabų generatorių, nes naudosime daug kintamųjų panašiais vardais.

In[1]:=

21b_skyrius_1.gif

Apibrėžiam  kompleksiškai sujungtinį dydį

In[2]:=

21b_skyrius_2.gif

Paulio matricos 21b_skyrius_3.gif atvaizde

In[3]:=

21b_skyrius_4.gif

Visuose piešiniuose naudosime tą patį užrašų stilių

In[6]:=

21b_skyrius_5.gif

In[7]:=

21b_skyrius_6.gif

Out[7]=

21b_skyrius_7.gif

In[8]:=

21b_skyrius_8.gif

Out[8]=

21b_skyrius_9.gif

Kvantinių trajektorijų metodas pritaikytas 2L sistemai

Schrödingerio lygtis stochastinei banginei funkcijai

Pirmiausia apibrėšime pakėlimo ir nuleidimo operatorius bazėje {|1>, |2>}

In[9]:=

21b_skyrius_10.gif

Out[9]//MatrixForm=

21b_skyrius_11.gif

Out[10]//MatrixForm=

21b_skyrius_12.gif

Dviejų lygmenų sistemos atominis hamiltonianas 21b_skyrius_13.gif,  kur ω12 žymi atstumą tarp energijos  lygmenų yra

In[11]:=

21b_skyrius_14.gif

Out[11]//MatrixForm=

21b_skyrius_15.gif

Optinio žadinimo hamiltonianas, kur μ12 yra elektrinis dipolis, o Ft harmoninis elektrinis laukas bus

In[12]:=

21b_skyrius_16.gif

Out[12]//MatrixForm=

21b_skyrius_17.gif

Tada įprastinis 2L Schrödingerio lygties hamiltonianas atrodo taip

In[13]:=

21b_skyrius_18.gif

Out[13]//MatrixForm=

21b_skyrius_19.gif

◆ Įvedame  tankio matricą

In[14]:=

21b_skyrius_20.gif

Out[14]//MatrixForm=

21b_skyrius_21.gif

Apskaičiuojame komutatorių –i [H, ρ]  

In[15]:=

21b_skyrius_22.gif

Out[15]//MatrixForm=

21b_skyrius_23.gif

◆ Kaip jau žinome, tankio matricos judėjimo lygtis Lindblado formoje turi pavidalą (h = 1)

21b_skyrius_24.gif

kur Lindblado (relaksacijos) operatoriai yra L 21b_skyrius_25.gif σP ir 21b_skyrius_26.gif 21b_skyrius_27.gif σM.
Tada bazėje {|1>, |2>} relaksacijos matrica atrodo taip

In[16]:=

21b_skyrius_28.gif

Out[16]//MatrixForm=

21b_skyrius_29.gif

Sudarome lygčių sistemą, kai nagrinėjamos sistemos dinamiką lemia  tik relaksacijos operatoriai

In[17]:=

21b_skyrius_30.gif

Out[17]//TableForm=

21b_skyrius_31.gif
21b_skyrius_32.gif
21b_skyrius_33.gif
21b_skyrius_34.gif

Jos sprendinys yra

In[18]:=

21b_skyrius_35.gif

Out[18]//MatrixForm=

21b_skyrius_36.gif

Iš sprendinių matyti, kad laikui bėgant jie visi gęsta.

Pilna tankio matricos (lygties) dešinioji pusė yra

21b_skyrius_37.gif

In[19]:=

21b_skyrius_38.gif

Out[19]//MatrixForm=

21b_skyrius_39.gif

Skaitinis sprendinys

Laikykime, kad turime harmoniškai kintantį elektrinį lauką, o šį lauką ir jo sąveiką su sistemą kurį aprašo tokie parametrai {g = 1, e = 2}

In[20]:=

21b_skyrius_40.gif

In[21]:=

21b_skyrius_41.gif

Tankio matricos (lygties) dešinioji pusė tada tampa

In[23]:=

21b_skyrius_42.gif

Out[23]//MatrixForm=

21b_skyrius_43.gif

Iš jos sudarome diferencialinių lygčių sistemą

In[24]:=

21b_skyrius_44.gif

Out[24]//TableForm=

21b_skyrius_45.gif
21b_skyrius_46.gif
21b_skyrius_47.gif
21b_skyrius_48.gif

kurią išsprendžiame, laikydami, kad pradiniu laiko momentu elektronas buvo apatiniame lygmenyje (atsakymas taip pat priklauso ir nuo nediagonalinių tankio matricos elementų)

In[25]:=

21b_skyrius_49.gif

Out[25]//TableForm=

ρ[1,1][t]→InterpolatingFunction[{{0.,25.}},<>][t]
ρ[1,2][t]→InterpolatingFunction[{{0.,25.}},<>][t]
ρ[2,1][t]→InterpolatingFunction[{{0.,25.}},<>][t]
ρ[2,2][t]→InterpolatingFunction[{{0.,25.}},<>][t]

Antrojo lygmens populiacijos priklausomybę nuo laiko pavaizduojame grafiškai

In[26]:=

21b_skyrius_50.gif

Out[26]=

21b_skyrius_51.gif

Stochastinės Schrödingerio lygties sprendimas

Efektyvinis hamiltonianas

Įvedame efektyvinį hamiltonianą

21b_skyrius_52.gif

In[27]:=

21b_skyrius_53.gif

Out[27]//TraditionalForm=

21b_skyrius_54.gif

Spontaninę fotonų emisiją iš 2L sistemos nagrinėsime Monte Carlo banginės funkcijos metodu, kuris aprašytas straipsnyje [1], (5) formulė  iš šio straipsnio:

21b_skyrius_55.gif

kur efektyvinis hamiltonianas sutampa su aukščiau užrašytuoju

21b_skyrius_56.gif

Pastebėsime, kad hamiltoniamas nėra ermitinis (vienas iš diagonalinių elementų yra kompleksinis dydis, todėl hamiltoniano tikrinės vertės nebus realios).
Pagrindinio ir sužadinto lygmens banginės funkcijos yra 21b_skyrius_57.gif ir  21b_skyrius_58.gif. Šių būsenų evoliuciją aprašo lygtys

21b_skyrius_59.gif

Jose įvedėme pažymėjimus:
ω = lazerio dažnis,
21b_skyrius_60.gif = 21b_skyrius_61.gif energijų skirtumas tarp pagrindinio (ground) ir sužadinto (excited)  lygmens,
21b_skyrius_62.gif = 21b_skyrius_63.gif electrinis dipolinis momentas,
F  = elektrinio lauko amplitudė,
κ = spontaninės emisijos sparta iš sužadinto lygmens,

Lygtis užrašome Mathematica kalba

In[28]:=

21b_skyrius_64.gif

Out[28]=

21b_skyrius_65.gif

Out[29]=

21b_skyrius_66.gif

Imsime tokias parametrų skaitines vertes

In[30]:=

21b_skyrius_67.gif

Iš šių parametrų apskaičiuotas Rabio dažnis Ω=2 μ F ir išderinimas 21b_skyrius_68.gif, yra

In[31]:=

21b_skyrius_69.gif

Out[31]=

21b_skyrius_70.gif

Tegu banginės funkcijos t=0 momentu tenkina tokias pradines sąlygas: 21b_skyrius_71.gif and 21b_skyrius_72.gif  t.y. manysime, kad  pradiniu momentu elektronas yra pagrindiniame lygmenyje. Apibrėžiame integravimo laiką tend ir skaitiškai sprendžiame diferencialinių lygčių sistemą. Kadangi iš gautų sprendinių vėliau norėsime apibrėžti normos funkciją, tai šį kartą patogesnis yra rezultato pateikimas grynosios funkcijos pavidalu. Jį gausime priklausomas funkcijas komandoje NDSolve[ ] užrašę kaip {ψg, ψe}, o ne kaip {ψg[t], ψe[t]}.

In[32]:=

21b_skyrius_73.gif

Out[33]=

21b_skyrius_74.gif

Pavaizduojame sužadinto lygmens amplitudės modulio kvadrato kitimą laikui bėgant, kurį normuojame tokiu būdu:  21b_skyrius_75.gif

In[34]:=

21b_skyrius_76.gif

Out[34]=

21b_skyrius_77.gif

Kaip matome banginės funkcijos norma, 21b_skyrius_78.gif priklauso nuo laiko. Gęsimo greitis priklauso nuo  κ vertės.  Normos kitimą pavaizduosime grafiškai

In[35]:=

21b_skyrius_79.gif

Out[35]=

21b_skyrius_80.gif

Atvirkštinė problema: t = f(χ)

Pirmiausia mums yra reikalinga funkciją21b_skyrius_81.gif, rodanti kaip keičiasi norma laikui bėgant. Ją iš esmės mes jau esame apskaičiavę, nes integralo 21b_skyrius_82.gif, kurio viršutinis rėžis priklauso nuo laiko, apskaičiavimas yra ekvivalentiškas Schrödingerio lygties išsprendimui. Kadangi šį sprendinį mes jau turime, tai normą (jos mes ieškosime iki laiko momento tend)  aprašys grynoji funkcija: 21b_skyrius_83.gif.

In[36]:=

21b_skyrius_84.gif

Pavyzdžiui momentu t = 2 ir t = 8 turime

In[37]:=

21b_skyrius_85.gif

Out[37]=

21b_skyrius_86.gif

Sužadinto lygmens banginę funkciją, kuri normuota į  norm[t], momentais  t < tend apskaičiuosime tokia grynąja  funkcija: χe(t) =  ψe(t) / (21b_skyrius_87.gif)

In[38]:=

21b_skyrius_88.gif

Pavyzdžiui,

In[39]:=

21b_skyrius_89.gif

Out[39]=

21b_skyrius_90.gif

In[40]:=

21b_skyrius_91.gif

Out[40]=

21b_skyrius_92.gif

Atvirkštinę funkciją interpoliacinei funkcijai nesunku gauti pasinaudojus komanda FindRoot[ ]

In[41]:=

21b_skyrius_93.gif

Pavyzdžiui paėmę norm=0.236536 arba norm=0.01 randame tokias laiko vertes

In[42]:=

21b_skyrius_94.gif

Out[42]=

21b_skyrius_95.gif

In[43]:=

21b_skyrius_96.gif

Out[43]=

21b_skyrius_97.gif

Pasinaudoję atvirkštine funkcija  time[ ]  pavaizduojame laiko priklausomybę nuo normos

In[44]:=

21b_skyrius_98.gif

Out[44]=

21b_skyrius_99.gif

Atsitiktinių laikų parinkimas

Parenkam atsitiktinį skaičių x tarp 0 ir 1, ir iš formulės 21b_skyrius_100.gif randame atsitiktinį laiko momentą t. Norint eliminuoti taškus, kurie yra už intervalo (0...tend) ribų, reikia, kaip matyti iš grafiko, surasti minimalią normą norm[ ]

In[45]:=

21b_skyrius_101.gif

Out[45]=

21b_skyrius_102.gif

kuri atitinka tokį maksimalų laiką

In[46]:=

21b_skyrius_103.gif

Out[46]=

21b_skyrius_104.gif

Tada, atsitiktiniam x iš intervalo nuo 0 iki 1 atitinka apibrėžtas laikas tn, kurį apibrėžia tokia grynoji funkcija

In[47]:=

21b_skyrius_105.gif

Pavaizduosime laiko tn priklausomybę nuo atsitiktinių  x=0.1

In[48]:=

21b_skyrius_106.gif

Out[48]=

21b_skyrius_107.gif

Kaip pavyzdį, atidedam tn, imdami atsitiktinius x

In[49]:=

21b_skyrius_108.gif

Out[49]=

21b_skyrius_109.gif

Viena realizacija (Time propagation over single realization)

Užduosime naujas parametrų vertes

In[50]:=

21b_skyrius_110.gif

Out[53]=

21b_skyrius_111.gif

Out[54]=

21b_skyrius_112.gif

Out[55]=

21b_skyrius_113.gif

Perskaičiuojame reikalingus dydžius

In[56]:=

21b_skyrius_114.gif

Out[56]=

21b_skyrius_115.gif

In[57]:=

21b_skyrius_116.gif

Out[57]=

21b_skyrius_117.gif

Sudarome atsitiktinių sklaidos laikų tn[ ] sąrašą  tnList vienai realizacijai. Šio sąrašo visų elementų suma turi būti mažesnė už iš anksto pasirinktą maksimalią modeliavimo trukmę tend

In[58]:=

21b_skyrius_118.gif

Out[58]=

21b_skyrius_119.gif

Sąrašą  tnList sukaupiame komandoje NestWhile[ ], kuri atsitiktinius laiko intervalus generuoja tol, kol jų suma neviršija nurodytos tend vertės

In[59]:=

21b_skyrius_120.gif

Out[59]=

21b_skyrius_121.gif

Patikriname, kaip taip ir yra

In[60]:=

21b_skyrius_122.gif

Out[60]=

21b_skyrius_123.gif

Sąrašo tnList gale pridedame dar vieną narį (laiko intervalą), taip kad visų intervalų suma duotų tend.

In[61]:=

21b_skyrius_124.gif

Out[61]=

21b_skyrius_125.gif

Patikriname,

In[62]:=

21b_skyrius_126.gif

Out[62]=

21b_skyrius_127.gif

In[63]:=

21b_skyrius_128.gif

Out[63]=

21b_skyrius_129.gif

Gautą laikų sąrašą  tnList komanda Accumulate[ ] palaipsniui susumuojame, o po to sudaliname į intervalus (atžvilgiu pradinio laiko momento 0), kuriuose laikysime, kad banginės funkcijos evoliucija vyksta netrikdomai.

In[64]:=

21b_skyrius_130.gif

Out[64]=

21b_skyrius_131.gif

Kitaip tariant, pirmasis kiekvieno iš vidinių sąrašų (turinčių 2 elementus) skaičius rodo kuriuo laiko momento prasideda, o galinis, kada baigiasi tolydi banginės funkcijos evoliucija. Žinant šiuos intervalus nesunku apibrėžti gabalais tolydžią funkciją, kuri būtų nelygi nuliui tik tuose intervaluose. Gabalais tolydžią funkciją apibrėžia komanda Piecewise[ ].

In[65]:=

21b_skyrius_132.gif

Kiekviename naujame intervale normuotos tikimybės | 21b_skyrius_133.gif evoliucija  prasideda iš naujo. Tai labai gerai matyti pavaizdavus vieną 21b_skyrius_134.gif realizaciją grafiškai

In[66]:=

21b_skyrius_135.gif

Out[66]=

21b_skyrius_136.gif

Iš auksčiau aprašytų komandų sukonstruojame modulį, kuris generuoja vieną realizaciją apibrėžtame laiko intervale nuo 0 iki tmax

In[67]:=

21b_skyrius_137.gif

Jo atsakymas yra gabalais tolydi 21b_skyrius_138.gif funkcija. Kaip pavyzdį pavaizduokime dvi realizacijas paėmę tmax=10

In[68]:=

21b_skyrius_139.gif

Out[68]//TableForm=

21b_skyrius_140.gif
21b_skyrius_141.gif

Tankio matricos (master equation) simuliacija

Norėdami ištirti kvantinių šuolių priklausomybę nuo laiko iš karto daugeliui realizacijų, reikia apskaičiuoti daugelio realizacijų sumą singleRealization[ ], ir padalinti ją iš realizacijų skaičiaus. Imkime, pavyzdžiui, 400 realizacijų. Apskaičiavimai šiek tiek užtrunka, nes 400 funkcijų yra sumuojamos simboliškai (visiškai tiksliai)

In[69]:=

21b_skyrius_142.gif

Out[69]=

21b_skyrius_143.gif

Simuliaciją galima pagreitinti, jei dalį apskaičiavimų atliksime skaitiškai, pavyzdžiui, apskaičiuodami funkcijos vertes Δt=1/100 intervalu. 4000 realizacijų suma, aišku, duoda tikslesnius rezultatus

In[70]:=

21b_skyrius_144.gif

Out[70]=

21b_skyrius_145.gif

Gautus grafikus sudedame į vieną

In[71]:=

21b_skyrius_146.gif

Out[71]=

21b_skyrius_147.gif

Sąsiuvinio pabaigoje pateiksime kitaip suprogramuotą (procedūriniu stiliumi) šios simuliacijos variantą, kuris kiek labiau atspindi praktikoje sutinkamus algoritmus.

Tikslūs sprendiniai, gauti naudojant tankio matricos formalizmą

Ką tik nagrinėtas kvantinis Monte Carlo uždavinys yra palyginti paprastas ir jį galima išspręsti analiziškai. Po to gautą rezultatą palyginsime su skaitine simuliacija.

Imsime dviejų lygmenų efektyvinį hamiltonianą

In[72]:=

21b_skyrius_148.gif

Out[72]//MatrixForm=

21b_skyrius_149.gif

tankio

In[73]:=

21b_skyrius_150.gif

Out[74]//MatrixForm=

21b_skyrius_151.gif

ir relaksacijos matricas

In[75]:=

21b_skyrius_152.gif

Out[75]//MatrixForm=

21b_skyrius_153.gif

Tankio matricos judėjimo lygtys tada turi pavidalą

In[76]:=

21b_skyrius_154.gif

Out[76]=

21b_skyrius_155.gif

Pradinės sąlygos  tankio matricai yra

In[77]:=

21b_skyrius_156.gif

Out[77]=

21b_skyrius_157.gif

Parametrų vertės

In[78]:=

21b_skyrius_158.gif

Out[78]=

21b_skyrius_159.gif

Elektrinis laukas

In[79]:=

21b_skyrius_160.gif

Out[79]=

21b_skyrius_161.gif

Apskaičiuojame visus keturis tankio matricos elementus

In[80]:=

21b_skyrius_162.gif

Out[81]=

21b_skyrius_163.gif

Sužadinto ir pagrindinio lygmens populiacijas pavaizduojame

In[82]:=

21b_skyrius_164.gif

Out[82]=

21b_skyrius_165.gif

In[83]:=

21b_skyrius_166.gif

Out[83]=

21b_skyrius_167.gif

Tikslų ir anksčiau gautą apytikslį Monte Carlo sprendinį pavaizduojame viename grafike

In[84]:=

21b_skyrius_168.gif

Out[84]=

21b_skyrius_169.gif

Pastaba: kiekvieną kartą vykdant šį sąsiuvinį, apskaičiuota Monte Carlo metodu kreivė dėl baigtinės realizacijos truputį keisis. Didinant realizacijų skaičių ji artėja prie tikslios kreivės.

Tankio matricos (master equation) simuliacija. Procedūrinio programavimo pavyzdys

Aukščiau aprašyta Monte Carlo simuliacijų metodo realizacija buvo kiek neįprasta ir orientuota išimtinai į funkcinį Mathematica programavimo stilių. Dabar tą patį algoritmą realizuosime skaitytojams įprastomis komandomis

Viena realizacija (Time propagation over single realization)

Parametrų vertės

In[85]:=

21b_skyrius_170.gif

Out[88]=

21b_skyrius_171.gif

Out[89]=

21b_skyrius_172.gif

Out[90]=

21b_skyrius_173.gif

Perrašome  komandas, kurios bus reikalingos.

In[91]:=

21b_skyrius_174.gif

Out[91]=

21b_skyrius_175.gif

In[92]:=

21b_skyrius_176.gif

Out[92]=

21b_skyrius_177.gif

In[93]:=

21b_skyrius_178.gif

Out[94]=

21b_skyrius_179.gif

In[95]:=

21b_skyrius_180.gif

Sudarome atsitiktinių sklaidos laikų  tn[ ] sąrašą  tnList  vienai realizacijai.  Visų suma yra mažesnė už iš anksto nustatytą tmax

In[96]:=

21b_skyrius_181.gif

Out[96]=

21b_skyrius_182.gif

In[97]:=

21b_skyrius_183.gif

Out[99]=

21b_skyrius_184.gif

Patikriname, kaip taip yra

In[100]:=

21b_skyrius_185.gif

Out[100]=

21b_skyrius_186.gif

Out[101]=

21b_skyrius_187.gif

Prie sąrašo tnList prijungiame dar vieną narį (laiko intervalą), taip kad visų intervalų suma duotų tmax.

In[102]:=

21b_skyrius_188.gif

Out[102]=

21b_skyrius_189.gif

Patikriname, kad taip yra

In[103]:=

21b_skyrius_190.gif

Out[103]=

21b_skyrius_191.gif

Out[104]=

21b_skyrius_192.gif

Pasinaudoję laikų tnList sąrašu, sudarome vienos realizacijos sąrašą realization. Sąrašas realization užpildomas funkcijos 21b_skyrius_193.gif vertėmis nuo laiko t, kurios prasideda kiekvieną kartą iš naujo pagal laikų sąrašą tnList. Kiekvienam naujam momentui sąraše tnList normuota tikimybė | 21b_skyrius_194.gif  prasideda iš naujo

In[105]:=

21b_skyrius_195.gif

Pavaizduojame vieną realizaciją.  Įvairiems atsitiktiniams pradiniams laikams t < tmax  dydis 21b_skyrius_196.gif  sąraše  tnList  yra ta pati funkcija ir todėl prasideda nuo tos pačios vertės (šiuo atveju nuo nulio). Dėl šios priežasties piešinyje stebime trūkius

In[108]:=

21b_skyrius_197.gif

Out[108]=

21b_skyrius_198.gif

Grafike matome trūkio taškus nutolusius vienas nuo kito laiko intervalais, kurie buvo sugeneruoti sąraše tnList

In[109]:=

21b_skyrius_199.gif

Out[109]=

21b_skyrius_200.gif

Iš auksčiau aprašytų komandų sukonstruojame modulį, kuris duoda vienos realizacijos sąrašą

In[110]:=

21b_skyrius_201.gif

Kaip pavyzdį pavaizduosime dvi realizacijas

In[111]:=

21b_skyrius_202.gif

Out[111]=

21b_skyrius_203.gif

In[112]:=

21b_skyrius_204.gif

Out[112]=

21b_skyrius_205.gif

Tankio matricos (master equation) simuliacija

Įvairūs grafikai yra gaunami iššaukiant modulį singleRealization[ ], tačiau elementų skaičius modulio sugeneruotuose sąrašuose  (grafikų ilgiai)  nėra tiksliai vienodi, pavyzdžiui, iššaukę modulį tris kartus, gauname

In[113]:=

21b_skyrius_206.gif

Out[113]=

21b_skyrius_207.gif

Tam, kad elementų skaičius įvairiose realizacijose sutaptų ir būtų lygus numb, paimame vieną iš realizacijų ir sumažiname elementų skaičių, pavyzdžiui, viena dešimtimi

In[114]:=

21b_skyrius_208.gif

Out[114]=

21b_skyrius_209.gif

Dabar galima laikyti, kad elementų skaičius visuose sąrašuose (realizacijuose) yra tas pats ir lygus numb

In[115]:=

21b_skyrius_210.gif

Out[115]=

21b_skyrius_211.gif

Norėdami apskaičiuoti kvantinių šuolių priklausomybę nuo laiko iš karto daugeliui realizacijų, surandame daugelio realizacijų sumą singleRealization, ir padaliname ją iš realizacijų skaičiaus. Pradžioje reikia užduoti realizacijų skaičių numRealizations, pavyzdžiui, 400 realizacijų

In[116]:=

21b_skyrius_212.gif

Tankio matricos elemento ρ(t) priklausomybė nuo laiko bus tikslesnė jei paimsime didesnį realizacijų numRealizations skaičių. Jei reikia parametrus galima keisti sąraše param2. Taip pat reiktų ten pažiūrėti koks didžiausias laikas tmax ir laiko žingsnis timestep yra parinkti. Pavaizduojame gautą ρ22 priklausomybę nuo laiko

In[120]:=

21b_skyrius_213.gif

Out[120]=

21b_skyrius_214.gif

Gautus grafikus sudedame į vieną  stulpelį

In[121]:=

21b_skyrius_215.gif

Out[121]=

21b_skyrius_216.gif

Baigę uždarome branduolį

In[122]:=

21b_skyrius_217.gif

Literatūra

[1]. R. Dum, A. S. Parkins, P. Zoller, C. W. Gardiner. Monte Carlo simulation of master equations in quantum optics for vacuum, thermal, and squeezed reservoirs. Phys. Rev. A, 46(7):4382–4396, 1992

Norėdami grįžti į tą pačią vietą, kurioje paspaudėte nuorodą į šią literatūrą, spragtelėkite meniu komandą , kurią rasite šalia teksto lygiavimui skirtų meniu komandų "Priemonių  (toolbar) juostoje".

Spikey Created with Wolfram Mathematica 7.0 using Mark McClure Blog CSS, 2011-04-08