• Nie Znaleziono Wyników

1. Toshiaki Suhara „Semiconductor Laser Fundamentals”, Marcel Dekker, Inc., 270 Madison Avenue, NY 10016; R. Diehl „High-Power Diode Lasers Fundamentals, Technology, Applications”, Springer-Verlag Berlin Heidelberg 2000; http://photoni-x.net/ − strona poświęcona laserom półprzewodnikowym.

2. J. Misiewicz, G. Sęk, P. Sitarek, „Spektroskopia fotoodbiciowa struktur półprzewodnikowych”, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 1999.

3. W. Salejda, M. H. Tyc, M. Just; „Algebraiczne metody rozwiązywania równania Schrödingera”, Wydawnictwo Naukowe PWN S.A., Warszawa 2002.

4. Sphen F.-P. Paul, Henning Fouckhardt; „An improved shooting approach for solving the time-independent Schrödinger equation for III/V QW structures", Physics Letters A 286, 1999-2004 (2001).

5. Paul Harrison, „Quantum Wells, Wires and Dots”, John Wiley and Sons Ltd, Chichester, 2001.

6. P. Butcher, N. H. March, M. P. Tosi; “Physics of Low-Dimensional Semiconductor Structures”, Plenum Press New York, 1993.

7. K. Sierański, M Kubisa, J. Szatkowski, J. Misiewicz, „Półprzewodniki i struktury półprzewodnikowe”, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2002.

8. N.W Ashcroft, N.D Mermin, “Fizyka ciała stałego”, Wydawnictwo Naukowe PWN SA, Warszawa 1986.

9. http://www.thefreecountry.com/compilers/fortran.shtml − strona zawierająca m.in.

darmowe kompilatory języka Fortran 77.

10. http://people.deas.harvard.edu/~jones/ap216/images/bandgap_engineering/bandgap_engineering.html − strona poświęcona teorii pasmowej półprzewodników.

11. http://www.gnuplot.info/ − oficjalna strona darmowego programu Gnuplot, którym zostały stworzone wszystkie wykresy zawarte w tej pracy.

Dodatek A. Struktury krystaliczne

Podstawowe informacje na temat struktury kryształu są niezbędne do zrozumienia budowy i złoŜoności materiałów półprzewodnikowych [3].

Większość popularnych półprzewodników posiada regularny, ściennie centrowany rozkład atomów (ang. face-centered cubic Bravis lattice), jak pokazano na rys. A.1.

Struktura krystaliczna powstaje poprzez umieszczenie atomów w punktach tak zwanej sieci Bravais. Punkty siatki Bravais są zdefiniowane jako liniowa kombinacja wektorów translacji, które mają następująca postać [3]:

( )

j k a

( )

k i a

( )

i j gdzie A0 to odległość pomiędzy atomami wewnątrz kryształu, jak pokazano na rys.A.1.

Czasem wektory (A.1) zapisywane są jako rozkład

3

Materiały takie jak Si, Ge, GaAs, AlAs, InP itd., składają się z dwóch atomów, jeden

w połoŜeniu  zaznaczono na rys. A.1).

Rys. A.1. Ściennie centrowany rozkład atomów [3].

Dla półprzewodników typu III-V i II-IV takich jak GaAs, AlAs, InP, HgTe oraz CdTe, kation znajduje się w połoŜeniu 

 

− − − 8 , 1 8 , 1 8

1 natomiast anion w 

 

+ + + 8 , 1 8 , 1 8

1 – takie typy kryształów nazywane są strukturami siarczku cynku ZnS (ang. zinc blende). Jedynym wyjątkiem jest tutaj GaN, oraz jego stop, InxGa1xN, które w ostatnich latach stały się bardzo waŜne z powodu zastosowań w produkcji „zielonych” i „niebieskich” diod elektroluminescencyjnych oraz laserów – te materiały mają tzw. strukturę wurcytu (ang.

wurtzite strukture).

Z elektrostatycznego punkt widzenia, potencjał wewnątrz kryształu składa się z trójwymiarowej siatki sferycznie symetrycznych potencjałów jąder atomowych oraz elektronów (patrz rys. A.2), które są połączone wiązaniami kowalencyjnymi utrzymującymi wszystko razem [3].

Rys. A.2. Schematyczna ilustracja potencjałów składających się na skomplikowaną strukturę wewnątrz kryształu [3]. Ilustracja przedstawia trójwymiarową macierz sferycznie symetrycznych potencjałów na płaszczyźnie [001].

Dodatek B. Elementy teorii pasmowej półprzewodników

Jak zostało wykazane doświadczalnie w strukturze energetycznej półprzewodników wyróŜnić moŜna dwa zasadniczo róŜne pasma energii. NiŜsze pasmo, zwane walencyjnym, jest całkowicie wypełnione elektronami. W paśmie tym związane ze sobą kowalencyjnie atomy tworzą chmurę elektronów walencyjnych, które po dostarczeniu im dodatkowej energii mogą przedostać się do wyŜszych stanów, z tzw. pasma przewodnictwa, pozostawiając po sobie tzw. dziurę – ładunek dodatni. Pasmo walencyjne moŜe przewodzić prąd przez ruch tychŜe stanów pustych [3].

WyŜsze pasmo jest natomiast całkowicie pozbawione elektronów w stanie podstawowym (w idealnym modelu w temperaturze zera bezwzględnego). W warstwie tej mogą znaleźć się wzbudzone elektrony, które poprzez dodatkową energie (np. elektromagnetyczną lub cieplną) przedostały się z niŜszego pasma. Pasmo to nosi nazwę pasma przewodnictwa.

W półprzewodnikach (w odróŜnieniu od metali) pasma walencyjne i przewodnictwa są oddzielone od siebie energią zwana przerwą energetyczną (ang. band gap). Dlatego w niskich temperaturach wykazują bardzo duŜą rezystancję.

Przedstawiony tutaj opis struktury energetycznej niedomieszkowanych półprzewodników jest wyidealizowanym modelem. W praktyce okazuje się, Ŝe w typowych półprzewodnikach znajduje się więcej niŜ tylko jedno pasmo walencyjne, co powoduje, Ŝe dziury wykazują róŜne wartości masy efektywnej w zaleŜności od połoŜenia (przybliŜenie masy efektywnej zostało przedstawione wcześniej w tej pracy).

Dodatek C. Opis programu Strzały

Program Strzały jest prostą w obsłudze aplikacją środowiska Windows®

umoŜliwiającą przeprowadzenie obliczeń energii oraz wektorów własnych dla wielu rodzajów pojedynczych studni kwantowych. Dzięki przejrzystemu układowi graficznemu stanowi on dobre narzędzie obliczeniowe umoŜliwiające natychmiastową prezentację wyników. Dodatek ten stanowi opis oraz instrukcję obsługi programu. Program Strzały znajduję się na dołączonej płytce CD.

Aby przeprowadzić obliczenia dla danej struktury, naleŜy wykonać następujące kroki opisane poniŜej.

1. Wprowadzić postać rozkładu potencjału

Rozkład potencjału ustala się poprzez naciśnięcie przycisku ‘1 Ustal Potencjał’ oraz odpowiednim wyborze dostępnych rozkładów potencjału.

Rys. C. 1. Okno dialogowe programu Strzały pozwalające na określenie rozkładu potencjału.

Jak widzimy na rys. C.1 mamy moŜliwość wyboru z pośród czterech dostępnych rodzajów rozkładu potencjału. Po wyborze jednego z nich ukazuje się nam dokładniejszy jego opis oraz miejsca, w które musimy wpisać odpowiednie parametry.

2. Wprowadzić postać rozkładu masy

Podobnie jak do ustalenia potencjału okno dialogowe pozwalające nam na określenie rozkładu masy wywołuje się przyciskiem ‘2 Ustal Masę’.

Rys. C.2 Okno dialogowe programu Strzały pozwalające na określenie rozkładu masy.

Program oferuje nam (patrz rys C.2) cztery moŜliwe rozkłady masy. Po wyborze odpowiedniego z nich naleŜy wpisać niezbędne dla niego parametry.

3. Ustalić parametry obliczeniowe dla badanego zagadnienia

Rys. C.3. Część głównego okna programu Strzały pozwalająca wprowadzenie parametrów obliczeniowych.

Parametry takie jak: całkowita długość przedziału całkowania, ilość punktów siatki, dokładność przeprowadzonych obliczeń oraz maksymalna energia (Emax), dla której mają być wyszukiwane stany własne, wprowadza się w przypisane im pola (patrz rys. C.3).

Odpowiedni dobór parametrów jest bardzo waŜną częścią kaŜdego z obliczeń, bowiem nieodpowiedni ich dobór jest częstą przyczyną błędnych obliczeń.

4. Zweryfikować rozkład masy oraz potencjału na zadanym przedziale całkowania Krok ten nie jest konieczny do przeprowadzenia obliczeń, jednakŜe czynności związane ze sprawdzeniem poprawności wprowadzonego potencjału oraz masy pomagają w uniknięciu błędów obliczeniowych.

Rys. C. 4. Okno głównego menu wykresu programu Strzały.

W celu sprawdzenia wybranych rozkładów naleŜy wybrać odpowiednie polecenie z głównego menu wykresu (patrz rys. C.4) znajdującego się w górnej części okna programu.

Kształt potencjału zostanie przedstawiony na głównym wykresie programu (który moŜna usunąć wybierając odpowiednie polecenie w menu wykres – rys. C.4), co sprzyja wykreślaniu obliczonych wektorów własnych, oraz jest niezbędne dla manualnej metody strzałów (opis manualnej metody strzałów znajduje się w dalszych punktach). Wykres masy zostanie przedstawiony w dodatkowym oknie. Sprawdzając wybrane rozkłady naleŜy zwrócić szczególną uwagę na to czy ich wartości nie są ujemne (dotyczy to potencjałów róŜnych od prostokątnej studni potencjału – rys. C.1). Program jest tak skonstruowany, Ŝe prowadzi obliczenia tylko dla potencjałów o wartościach dodatnich.

5. Rozpocząć obliczenia poprzedzone wyborem odpowiedniego algorytmu – domyślnym jest algorytm ulepszonej metody strzałów

Rys. C.5. Część głównego okna programu Strzały pozwalająca określenie algorytmu obliczeń.

Jak pokazano na rys. C.5 mamy do wyboru trzy metody: ulepszona metoda strzałów, metoda macierzowa Martina-Deana oraz tzw. manualną metodę strzałów. Pierwsze dwie słuŜą do obliczeń wszystkich stanów własnych rozpatrywanej jamy potencjału niŜszych od zadanej energii maksymalnej (Emax). Wyniki tych metod zostają wypisane w miejscu przedstawionym na rys. C.7. Metoda manualna słuŜy do samodzielnego wyznaczenia energii własnej poprzez „strzelanie” wartościami energii, dla których wykreślony zostaje wektor własny. Wartości te moŜna wybrać na dwa sposoby. Pierwszy z nich to wpisanie odpowiedniej wartości w pole przypisane energii próbnej oraz zatwierdzenie jej przyciskiem

‘5 LICZ’ (patrz rys. C.6). Drugim sposobem jest pobranie wartości z wykresu klikając w wybrany jego punkt (na wykresie tym musi znajdować się wykres potencjału). „Strzelana”

przez nas w ten sposób wartość energii zostaje równieŜ wpisana w pole poświęcone manualnej metodzie strzałów (patrz rys. C. 6). Jak zostało powiedziane w 3 rozdziale pracy szukana wartość energii to ta, dla której wartości wektora własnego dąŜą do zera na granicy przedziału.

Rys. C. 6. Wygląd części głównego okna programu Strzały poświęconej manualnej metodzie strzałów.

6. Wyznaczyć wektory własne

Po przeprowadzeniu obliczeń metodą inną niŜ manualna metoda strzałów obliczone energie własne zostają wypisane w okienku poniŜej jak pokazano na rys. C.7. Aby wyznaczyć wektor własny odpowiadający wybranej przez nas wartości energii wystarczy wybrać ją myszką. Po kliknięciu na interesującą nas wartość energii zostanie wykreślony na głównym wykresie odpowiadający jej wektor własny (moŜe on zostać usunięty z wykresu przez wybór odpowiedniego polecenia z głównego menu wykresu – patrz rys.C.4).

Wektory własne w metodzie macierzowej wyznaczane są algorytmem rekurencyjnym DWSZ opisanym w [2].

Jak zostało pokazane na rys. C.7. program zwraca czasem energie własne równe wartości –1. Oznacza to, Ŝe pomimo znalezienia przedziału zawierającego energię, nie została ona dokładnie obliczona. Dzieje się tak z powodu złego doboru danych obliczeniowych (patrz rys. C.3). Najczęściej przyczyną jest zadanie zbyt duŜej dokładności obliczeń, za mała liczba punktów siatki bądź nieodpowiednio dobrany przedział całkowania [3].

Rys. C.7. Część głównego okna programu Strzały poświęcona prezentacji wyników.

Dodatek D. Parametry uŜytego w obliczeniach materiału półprzewodnikowego

PoniŜej przedstawione są wszystkie niezbędne parametry struktury półprzewodnikowejGaAs/Ga1xAlxAs jakie potrzebne są do przeprowadzenia obliczeń numerycznych (zarówno programem opisanym w Dodatku C jak i programami opisanymi w Dodatku E). Parametry te zostały zaczerpnięte z [3].

•••• Przerwa energetyczna, Eg =

(

1,426+1,247x

)

[eV]

•••• Przyjęte rozłoŜenie przerwy energetycznej przypadającej na pasmo przewodnictwa to 67% – co oznacza, Ŝe jeśli przerwa energetyczna wynosi 1 eV, to głębokość studni w paśmie przewodnictwa wynosić będzie 0,67 eV natomiast głębokość studni pasma walencyjnego wynosić będzie odpowiednio 0,33 eV.

•••• Masa efektywna elektronu,

( )

0

* 0,067 0,083x m

m = +

•••• Masa efektywna dziury,

( )

0

* 0,62 0,14x m

m = +

Dodatek E. Programy źródłowe

Dołączona do pracy płytka CD zawiera kody źródłowe wszystkich uŜytych w pracy podprogramów napisanych w języku FORTRAN 77, realizujących algorytmy rozwiązywania równania Schrödingera omówione w rozdziale 3 oraz dodatkowo metodę macierzową Martina-Deana opisaną w [3]. Na płycie znajdują się równieŜ przykładowe kody programów umoŜliwiające przetestowanie poszczególnych algorytmów.

Tabela E.1 zawiera opis wszystkich podprogramów oraz programów z krótkim opisem ich działania.

Tabela E.1 Podprogramy dołączone na płycie CD

Nazwa

podprogramu Plik zawierający Opis

Ulepszona Metoda Strzałów

shootP fStrzalow.f

funkcja zwracająca wartość wektora własnego na końcu przedziału całkowania dla zadanej energii odwzorowaniem wstępującym – uŜywana w podprogramie solution

shootL fStrzalow.f

funkcja zwracająca wartość wektora własnego na końcu przedziału całkowania dla zadanej energii odwzorowaniem zstępującym – uŜywana w podprogramie solution

shootPV fStrzalowV.f

procedura obliczająca wszystkie wartości współrzędnych wektora własnego dla zadanej energii odwzorowaniem wstępującym – uŜywana do wyznaczania wektorów własnych

shootLV fStrzalowV.f

procedura obliczająca wszystkie wartości współrzędnych wektora własnego dla zadanej energii odwzorowaniem zstępującym – uŜywana do wyznaczania wektorów własnych

IleP fIleP.f funkcja wyznaczająca przedziały zawierające pojedynczą energię własną

solution fbisec.f funkcja znajdująca wartości własne w zadanym przedziale (metoda bisekcji)

UlepszonaMS UlepszonaMS.f

przykładowy program wyznaczający energie własne oraz wektory własne dla pojedynczej studni kwantowej lub supersieci ulepszoną metodą strzałów Metoda Martina-Deana [3]

IlePMD fIlePMD.f funkcja wyznaczająca przedziały zawierające pojedynczą energię własną

M_D fMD.f funkcja znajdująca wartości własne w zadanym przedziale (metoda bisekcji)

DWSZ DWSZ.f procedura wyznaczająca wektory własne metodą DWSZ

Przykład_MD MD.f

przykładowy program wyznaczający energie własne oraz wektory falowe dla pojedynczej studni kwantowej metodą Martina-Deana

Prosta Metoda Strzałów (PMS)

strzalPK fstrzalow_PMS.f

funkcja zwracająca wartość współrzędnej wektora własnego dla zadanej energii w zadanym punkcie odwzorowaniem wstępującym – uŜywana w podprogramie solution_PMS

strzalLK fstrzalow_PMS.f

funkcja zwracająca wartość współrzędnej wektora własnego dla zadanej energii w zadanym punkcie odwzorowaniem zstępującym – uŜywana w podprogramie solution_PMS

strzalLKP fstrzalow_PMS.f

funkcja zwracająca wartość współrzędnej wektora własnego dla zadanej energii w zadanym punkcie odwzorowaniem zstępującym dla stanów parzystych – uŜywana w podprogramie solution_PMS

strzalP fstrzalowV_PMS.f

procedura obliczająca wszystkie współrzędne wektora własnego dla zadanej energii odwzorowaniem wstępującym – uŜywana do wyznaczania wektorów własnych

strzalL fstrzalowV_PMS.f

procedura obliczająca wszystkie współrzędne wektora własnego dla zadanej energii odwzorowaniem zstępującym – uŜywana do wyznaczania wektorów własnych

IleP_PMS fIleP_PMS.f funkcja wyznaczająca przedziały zawierające pojedynczą energię własną

wynik_PMS Fbisec_PMS.f funkcja znajdująca wartości własne w zadanym przedziale (metoda bisekcji)

PMS PMS.f

przykładowy program wyznaczający energie własne oraz wektory falowe pojedynczej studni kwantowej prostą metodą strzałów

Szczegółowe opisy przedstawionych programów oraz podprogramów zawarte są w komentarzach wewnątrz kodów źródłowych.

PoniŜej zamieszczone zostały kody źródłowe najwaŜniejszych podprogramów wraz z opisem, realizujących opisany w rozdziale 3 algorytm ulepszonej metody strzałów [4].

Podprogram shootP jest funkcją zwracającą ostatni obliczony punkt funkcji falowej na zadanym przedziale, dla podanej wartości energii. Jest to funkcja napisana w celu przyspieszenia obliczeń – nie potrzebuje rezerwacji miejsca na wszystkie punkty funkcji

falowej. Posługując się dwiema lokalnymi zmiennymi wyznacza tylko potrzebny nam ostatni punkt w celu odnalezienia energii własnej. Wykorzystywana jest ona w podprogramie solution, który wyznacza energię dla której końcowa wartość funkcji falowej (na końcu przedziału całkowania) przyjmuję wartość zero z zadaną dokładnością.

C funkcja strzalu, wstepujaca zwracajaca ostatni obliczony punkt C wektora falowego - przydatna tylko do wyznaczenia energi wlasnej Double precision Function shootP(krok,xca,k1,k2,m,V,E,wym) C DP - krok -dlugosc kroku calkowania

end ! koniec funkcji shootP!

Na płycie znajduje się równieŜ analogiczna do przedstawionej funkcja zstępująca (shootL), która przeprowadza obliczenia od końcowego punktu przedziału całkowania do początkowego.

Następnym waŜnym podprogramem jest wspomniany wcześniej solution. Jest to funkcja, która poszukuje (na zadanym przedziale) takiej wartości energii dla której przekazana jej funkcja (shootP lub shootL) zwróci punkt równy zeru z zdaną dokładnością.

Funkcja ta wykorzystuje algorytm bisekcji w celu wyznaczenia energii własnej.

Double precision Function solution (fShoot, C---wszystko potrzebne do fShoot

C DP - krok -dlugosc kroku

Double precision xca, A,Ep,Ek,dok,tempP,tempK,tempS Double precision EtempS ,EtempK,EtempP, V(wym), m(wym)

External fShoot

tempP =fShoot(krok,xca,k1,k2,m,V,EtempP,wym) tempK = fShoot(krok,xca,k1,k2,m,V,EtempK,wym) tempS =fShoot(krok,xca,k1,k2,m,V,EtempS,wym) j=j+1 ! obliczenie ilosci wywolan

if (j.EQ.2000) then ! kontrola przed zapetleniem sie programu

Solution = EtempS

write(*,*) 'zadana dokladnosc nie zostala osiagnieta' write(*,*) 'aby osiagnac zadana dokladnosc nalezy zwiekszys & ilosc punktow siatki,badz zmniejszyc dokladnosc'

elseif (ABS(tempS).LE.dok) then zawiera dokładnie jedno rozwiązanie. Dlatego konieczny jest dodatkowy podprogram wyszukujący przedziały zawierające dokładnie jedną energię własną.

W tym celu napisany został podprogram IleP, który zadany mu przedział dzieli dodatkowo (z podanym krokiem) na mniejsze przedziały i wyszukuje takich dla których wykorzystywana funkcja (shootP lub shootL) posiada miejsce zerowe. Przedział zawiera energię własną jeśli dla dwóch wartości końców badanego przedziału ostatni punkt wektora falowego przyjmuje róŜne znaki. Podprogram ten jest funkcją, która pod swą nazwa zwraca ilość znalezionych przedziałów a w przekazanej tablicy (przedzialy) zwraca znalezione przedziały (dwie następujące po sobie liczby w tablicy określają odpowiednio początek i koniec przedziału).

Integer function IleP (fShoot,tempKr, !wzsystko niezbedne do funkcji fShoot & krok,xca,k1,k2,m,V,Ep,Ek,wym,

!--- & przedzialy)

C DP funkcja - fShoot - funkcjia obliczjaca ostatni punkt wektora falowego C (moze byc przekazana zarowno funkcjia shooP jak i shooL

C---wszystko potrzebne do fShoot C DP - krok -dlugosc kroku

C przedzialy - tablica ktora zawiera obliczone przedzialy C kolejno - xp1,xk1,xp2,xk2...

Implicit none

C zmienne robocze i lokalne integer wym,pk,i,j

Double precision krok,Ep,Ek,k1,k2,wynik(wym+1),x, przedzialy(wym) Double precision xca, TempKr, TempP,TempK, V(wym),m(wym)

Double precision fShoot external fShoot

!jesli nie jest zadeklarowane przyjmij warotsc domyslna if(TempKr.Eq.0) then

TempKr = (Ek-Ep)/1d2 !krok endif

x=Ep i=1

!jesli funkcjia fShoot wywolana dla wartosc x zwraca wynik o przeciwnym znaku do !wyniku gdy funkcja fShoot wywolana jest dla (x+TempKr) obliczają wszystkie punkty wektora odpowiadające przekazanej im energii. Funkcje shootPV oraz shootLV to odpowiednio funkcja wstępująca i zstępująca. PoniŜej przedstawiamy kod źródłowy tylko jednej z nich – wszystkie uŜyte, lecz nie zamieszczone tutaj kody źródłowe znajdują się na dołączonej płycie CD.

C procedura strzalow (wstepujaca) do wyznaczenia wektora falowego dla zadanej Energi Subroutine shootPV(krok,xca,k1,k2,m,V,E,wynik,wym)

C DP - krok -dlugosc kroku

C tablica DP - wynik - tablica o wymiarze wym - zawiera punkty wektora wlasnego C Integer - wym - rozmiar tablicy

do i=2, wym+1

x=(-xca*5d-1)+((i-1)*krok)

wynik(i) = wynik(i-1) +(k1*krok*m(i)*PsiD(i-1)) PsiD(i)= PsiD(i-1) +(k2*krok*(V(i-1)-E)*wynik(i-1)) suma = suma +(Wynik(i)*wynik(i))

end do

!normowanie wektora suma = sqrt(suma) do i=1, wym+1

wynik(i) = wynik(i)/suma enddo

end ! koniec procedury shootPV! end ! koniec procedury shootPV!

Procedura ta zwraca znormalizowaną funkcję falową wewnątrz przekazanej tablicy wynik.

Wykorzystując przedstawione wyŜej procedury numeryczne moŜemy wyznaczyć zarówno energie własne jak równieŜ odpowiadające im wektory własne dla dowolnie skonstruowanej heterostruktury przedstawionej jako rozkład potencjału oraz masy (tablice zawierające wartości potencjału oraz masy na zadanym przedziale są parametrami wejściowymi funkcji shootP oraz shootL). Efekt wykorzystania opisanych procedur został krótko przedstawiony w treści pracy (rozdział 4).

PoniŜej znajduje się kod źródłowy przykładowego programu (znajdującego się w pliku UlepszonaMs.f) wykorzystującego wszystkie z zaprezentowanych podprogramów. Program umoŜliwia przeprowadzenie obliczeń wartości własnych energii oraz wektorów własnych jak równieŜ pomiar czasu obliczeń, dla pojedynczej studni kwantowej lub supersieci, ograniczając się tylko to skokowego rozkładu potencjału jak i masy (co moŜe być zmienione na rozkład ciągły przez wprowadzenie niewielkich zmian w programie). Wynikiem omawianego programu, oprócz wyświetlenia wyznaczonych energii własnych oraz potrzebnego czasu obliczeń na ekranie są cztery pliki zawierające bezwymiarowe wartości:

•••• v.txt – zawiera rozkład potencjału na zadanym przedziale całkowania – plik zawiera dwie kolumny, pierwsza z nich to współrzędna połoŜenia (x), druga to wartość potencjału w danym punkcie ( V(x) ),

•••• m.txt – zawiera rozkład masy na zadanym przedziale całkowania – plik zawiera dwie kolumny, pierwsza z nich to współrzędna połoŜenia (x), druga to wartość masy w danym punkcie ( m(x) ),

•••• E.txt – zawiera obliczone energie własne – plik zawiera trzy kolumny, pierwsza to liczba porządkowa wyznaczonej energii, druga to wartość energii obliczona procedurą wstępującą, trzecia to wartość energii obliczona procedurą zstępującą,

•••• wektor.txt – zawiera punkty wektorów falowych rozpatrywanej struktury – plik zawiera trzy kolumny, pierwsza to współrzędna połoŜenia (x), druga to wartość wektora falowego w danym punkcie obliczona procedurą wstępującą ψr

( )

x , trzecia to wartość wektora falowego w danym punkcie obliczona procedurą zstępującą ψs

( )

x .

Pliki skonstruowane są w sposób łatwy do sporządzenia wykresów np. darmowym programem Gnuplot, który moŜna bezpłatnie pobrać z [11], bądź do importu przez wiele innych programów takich jak np. Microsoft Exel.

C Przykladowy program umozliwjajacy obliczenie wartosci wlasnych energii C oraz odpowiadajacych im wektorom falowym dla pojedynczych studni kwantowych C badz supersieci

Double precision V,Vdane,V0,x,xca,szerokosc,krok ,przedzialy Double precision m, Eprob,hkr,L0,Ep,Ek,krokE,dok

Double precision VfalP,VfalL, fm,k1,k2, solution

double precision TempDPP,TempDPL, VTab, MTab ,mz,mw,d double precision shootP,shootL

************ Potrzebne do pomiaru czasu********************************

real Atime, time ,etime dimension Atime(2) external etime C Parametry

Parameter (N=200000) ! maksymalny rozmiar tablicy Parameter (hkr = 1.0545726663d-34)! stala Diraca

Parameter (m = 9.1093d-31, V0=1.602176d-19)! jednostka masy oraz jednostka energi [1eV]

Parameter (L0 = 1d-9) !jednostka dlugosci [1nm]

C Rozmiary tablic

Dimension VfalP(N+1),VfalL(N+1), przedzialy(N), Vtab(N+1) Dimension MTab(N+1)

External V, fm ,solution,IleP , shootP,shootL,shootPV,shootLV C stworzenie plikow wyjsciowych

Open(10,File='v.txt') !plik zawierajacy rozklad potencjalu Open(20,File='m.txt') !plik zawirejacy rozklad masy

Open(30,File='wektor.txt')!plik zawierajacy obliczone wektory wlasne OPEN(50,File='E.txt') !plik zawierajacy obliczone energie wlasne C oblicznie wspolczynnikow dla bezwymiarowego row. Schrodingera k1=L0*m *1d40 Write(*,*)'* wektory falowe dla pojedynczych studni kwantowych *' Write(*,*)'* badz supersieci *'

write(*,*)'Podaj dolna granice wyszukiwania wartosci wlasnych [eV &]'

read(*,*) Ep

write(*,*)'Podaj gorna granice wyszukiwania wartosci wlasnych [eV &]'

read(*,*) Ek

write(*,*) 'Podaj krok wyszukiwania przedzialow energii [eV]' read (*,*) krokE

write(*,*) 'Podaj ilosc punktow siatki' read(*,*) wym

write(*,*) 'Podaj dokladnosc wyszukiwania wartosci wlasnych' read(*,*) dok

C Wywolanie funckji implementujacej tablice z potencjalem jak i masa

call ImplementVM(V,Vdane,szerokosc,fM,mz,mw,d,ileS,xca,VTab,MTab,

C wywolanie procedury obliczajacej przedzialy warosc energi wlasnej temp = IleP(shootP,krokE,krok,xca,

& k1,k2,MTab,VTab,Ep,Ek,wym, przedzialy)

& k1,k2,MTab,VTab,Ep,Ek,wym, przedzialy)

Powiązane dokumenty