ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf ·...

137
ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen Kumaran Ethan Lai Bayo Lau Project Sponsors: Dr. Tom Tiedje Erin Young Engineering Physics 479 Engineering Physics Project Laboratory The University of British Columbia January 15, 2004

Transcript of ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf ·...

Page 1: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS

Raveen Kumaran Ethan Lai Bayo Lau

Project Sponsors: Dr. Tom Tiedje

Erin Young

Engineering Physics 479 Engineering Physics Project Laboratory

The University of British Columbia January 15, 2004

Page 2: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

i

ABSTRACT

A study was conducted into the effects of bismuth surfactants on the growth of indium

arsenide (InAs) quantum dots using Molecular Beam Epitaxy. Bismuth was selected due to its

inclination to sit on the substrate surface affecting growth conditions without incorporating into the

growth material. Using RHEED analysis, it was determined that bismuth does not affect the

critical thickness of the wetting layer, which is the thickness of the 2D InAs layers grown before

the transition to 3D island (quantum dot) growth occurs. Samples grown and quenched

immediately following the onset of dot formation revealed via AFM that bismuth-assisted growth

yields smaller and more uniform dots. On the other hand, samples grown past the onset of dot

formation with equivalent amounts of indium deposited yielded much larger but still more uniform

dots in favour of the bismuth-assisted growth. This suggests that bismuth dampens the initial

formation of dots at the onset but aids in the enlargement of the dots as more material is

deposited. This data was supported by Photoluminescence analysis of the samples that yielded a

large difference in peak wavelengths which is indicative of the difference in dot size. An off-lattice

kinetic Monte Carlo simulation was developed to model the growth of quantum dots. All atomic

interactions are completely determined by the Lennard-Jones potential. The model predicted the

formation of quantum dots and the strain distribution in a quantum dot. Simulation results

suggested that surface diffusion is a limiting factor in quantum dot growth.

Page 3: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

ii

TABLE OF CONTENTS

LIST OF ILLUSTRATIONS................................................................................................. iv

1.0 INTRODUCTION...........................................................................................................1

2.0 BACKGROUND ............................................................................................................3

3.0 EXPERIMENTAL SETUP .............................................................................................5

3.1 MBE Growth System........................................................................................5

3.2 Preparing the MBE System for Growth............................................................8

3.3 In-Situ Monitoring Equipment.........................................................................10

3.4 Ex-Situ Monitoring Equipment .......................................................................12

3.4.1 Atomic Force Microscope...........................................................12

3.4.2 Photoluminescence ....................................................................14

3.5 Growth Procedure ..........................................................................................17

3.6 RHEED Analysis ............................................................................................19

3.6.1 Analysis of Plots .........................................................................20

4.0 SIMULATION ..............................................................................................................25

4.1 Simulation Model............................................................................................27

4.2 Adatom Kinetic Monte Carlo Simulation Method ...........................................33

4.3 Implementation of Simulation Program..........................................................35

4.4 Simulation of Microscopic Atomic Configuration............................................38

5.0 RESULTS....................................................................................................................41

5.1 First Set of Growths (Runs 1410 and 1411) ..................................................41

5.2 Second Set of Growths (Runs 1417 and 1418) .............................................46

5.3 Third Set of Growths (Runs 1421 and 1422) .................................................54

5.4 Simulation Results .........................................................................................57

6.0 CONCLUSIONS..........................................................................................................61

7.0 RECOMMENDATIONS...............................................................................................64

7.1 RHEED...........................................................................................................64

Page 4: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

iii

7.2 Light Scattering ..............................................................................................65

7.3 Growths..........................................................................................................66

7.4 Simulation ......................................................................................................68

8.0 REFERENCES............................................................................................................69

9.0 APPENDICES .............................................................................................................70

Page 5: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

iv

LIST OF ILLUSTRATIONS

TABLES

FIGURES

1. Molecular Beam Epitaxy Layout ......................................................................................5

2. VG V80-H MBE System .................................................................................................6

3. RHEED Diffraction Off Sample Surface .......................................................................10

4. LabView DRS Controls that Locate the Sharp Wavelength Transition .........................11

5. Atomic Force Microscope ..............................................................................................12

6. AFM Setup Display........................................................................................................13

7. Experimental Setup to Perform PL Analysis .................................................................15

8. Liquid Nitrogen Storage Used to Cool the Spectrometer ..............................................16

9. RHEED Intensity Plot for Growth (set 1) without Bismuth.............................................20

10. (left) RHEED Display of a Smooth Substrate Surface with Reconstruction Lines.

(right) reconstruction lines disappearing after ~20s of indium deposition. ...................21

11. (left) RHEED Display at t = 25s where the Reconstruction Lines have Fully

Disappeared (beginning of plateau). (right) t = 75s, End of Plateau. Note that

there has been Minimal Changes Since the 25s Mark................................................21

12. RHEED Display at the Onset of Quantum Dot Formation...........................................22

13. RHEED Display at Dot Formation ...............................................................................22

14. RHEED Intensity Plot for Growth (set 1) with Bismuth................................................23

15. A preview of simulation................................................................................................27

16. Plot of Lennard-Jones potential...................................................................................28

17. 2-D plot of superposition of Lennard-Jones potential..................................................30

18. Potential along an atomic hopping path. .....................................................................30

19. Simulation flow-chart. ..................................................................................................37

20. Simulation result of dislocation. ...................................................................................38

21. Simulation result of vacancies. ....................................................................................39

Page 6: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

v

22. Simulation result of bulged-up absorbate layer. ..........................................................40

23. Simulation result of bulged-down absorbate layer. .....................................................40

24. Surface Morphology of Quantum Dots Grown without Bismuth

until Dot Formation ......................................................................................................42

25. Surface Morphology of Bismuth-Assisted Quantum Dots Grown

until Dot Formation ......................................................................................................43

26. Quantum Dot Peak Height Distribution for Dots Grown without

Bismuth until Onset of Formation ................................................................................44

27. Bismuth-Assisted Quantum Dot Peak Height Distribution for Dots

Grown until Onset of Formation...................................................................................44

28. GaAs Surface Resulting from Low Arsenic Flux .........................................................48

29. 2D Top View of Quantum Dots Grown for 95 Seconds on Low

Arsenic Flux Affected GaAs Surface ...........................................................................49

30. Surface Morphology of Quantum Dots Grown for 95 Seconds on

Low Arsenic Flux Affected GaAs Surface ...................................................................49

31. Surface Morphology of Quantum Dots Grown for 95 Seconds without Bismuth ........51

32. Surface Morphology of Bismuth-Assisted Quantum Dots Grown

for 100 Seconds ..........................................................................................................51

33. Peak Height Distribution for Quantum Dots Grown for 95 Seconds

without Bismuth ...........................................................................................................52

34. Peak Height Distribution for Bismuth-assisted Quantum Dots Grown

for 100 Seconds ..........................................................................................................53

35. PL Spectrum of Room Temperature Sample Grown without Bismuth........................54

36. PL Spectrum of Sample Grown without Bismuth at 30K.............................................55

37. PL Spectrum of Room Temperature Sample Grown with Bismuth .............................56

38. PL Spectrum of Sample Grown with Bismuth at 30K..................................................56

39. Simulated island growth after 0.28 monolayer of indium had been deposited............58

40. Simulated island growth after 1.13 monolayer of indium had been deposited............58

Page 7: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

vi

41. Simulated island growth after 1.7 monolayer of indium had been deposited..............58

42. Simulated strain distribution of island. .........................................................................58

43. Simulated island growth after 0.28 monolayer of indium had been deposited............59

44. Simulated island growth after 1.3 monolayer of indium had been deposited..............59

45. Simulated island growth after 1.7 monolayer of indium had been deposited..............59

46. Simulated rough layer-by-layer after 4 monolayer of indium had been deposited......60

47. Simulated rough layer-by-layer growth after 6 monolayer of indium had been deposited.

...........................................................................................................................................60

TABLES

1. Relevant Temperatures for MBE Sources.......................................................................8

2. Choice of Lennard Jones Potential................................................................................31

Page 8: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

1

1.0 INTRODUCTION

The purpose of this report is to analyze the effects of bismuth as a surfactant on

epitaxially grown self-assembled quantum dots by explaining the experimental procedure and the

techniques used to analyze the samples. The primary effects investigated were the size and

distribution of the quantum dots. In addition, suggestions will be made in order to enhance

knowledge on this subject.

The motivation for this experiment is derived from the constant drive for higher

performance devices, such as the memory and logic circuits that are used in almost every piece

of electrical equipment today. Dr. Tom Tiedje, head of the Molecular Beam Epitaxy (MBE)

Laboratory in the AMPEL (Advanced Material Process Engineering Laboratory) building at UBC,

and Erin Young, a PhD student also working in the MBE Laboratory are pursuing methods which

could contribute to the fabrication of these devices. One of the methods is the basis of the study:

do bismuth surfactants in some way contribute to smaller, denser and more uniformly grown

quantum dots?

To date, several techniques have been used to grow quantum dots with the attributes

described above; however, there has yet to be a proven technique which can consistently yield

the type of dots necessary for high performance electronics. To begin the transition from silicon

based to quantum dot based electronics, it will require extremely convincing evidence that there

exists a technique that will yield a material which is superior to silicon in ways which include

fabrication costs, performance metrics among many others. The incorporation of bismuth as a

surfactant during quantum dot growth is intended to be a step in achieving the desired quantum

dot attributes.

The first part of the report will describe the theory involved in the creation of quantum

dots. The various phenomena, such as self-assembly, and forces crucial in dot formation will be

explained here.

The second part of the report will describe the experimental procedure. Here, the

apparatus and the various conditions used for growing the quantum dots will be described in

Page 9: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

2

detail. In particular, an in depth description of the MBE system and the “recipes” used will be

discussed.

The third part of the report details the analysis of the samples obtained by the

experiment. The two primary techniques used were via the AFM (atomic force microscope) and

PL (photoluminescence); the methods and results of the studies will be included here.

The fourth part of the report explains the details of the simulation software which was

created to support the results of the experiment. The ability to have experimental results backed

up by a simulation based on the fundamentals of quantum dot formation provides increased

confidence that the results were not just random occurrences.

The report concludes with recommendations for further actions which may further the

understanding of surfactant (bismuth as well as other materials) effects on quantum dot growth.

Page 10: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

3

2.0 BACKGROUND

The growth of quantum dots is a result of lattice-mismatched heteroepitaxy. In this

project, heteroepitaxy growth was performed by depositing Indium on a GaAs substrate in arsenic

atmosphere. InAs is the absorbate compound; GaAs is the substrate compound. InAs layers

formed at a rate of 0.02 mono-layer-per-second. The lattice constant of InAs is approximately 7%

bigger than that of GaAs. As the monolayer formed, the InAs molecules are squeezed together to

fit on top of the GaAs lattice. Such a flat film is thermodynamically unfavourable because of the

extra strain energy needed to push the InAs molecules together. The film would buckle up to

relax the strain energy, and the resulting perturbation is the quantum dots.

The InAs on GaAs system has a Stranski-Krastanow (SK) growth mode []. The absorbate

grows layer-by-layer and grow into island later. Thermodynamics predicts three types of growth

mode, characterized by the Helm-Holtz free energies of the system.

INTAS γγγ +> ,

where γS is the substrate’s surface energy, γA is the absorbate’s surface energy, γINT is the

substrate-absorbate interface energy. Layer-by-layer growth (Frank-van der Merwe mode) is

energetically favourable when the inequality holds; otherwise, 3D island growth (Volmer-Weber

mode) is energetically favourable. In case of the InAs/GaAs system, the energies favour layer-by-

layer growth at the beginning. However, the strain due to lattice mismatch would increase γINT,

and island growth would be eventually more favourable. This two-stage growth mode is called the

SK mode. Even when either islanding or layer-by-layer growth is energetically favourable, the

morphology of the film is changing at a rate limited by the diffusion rate of surface atoms.

The initial flat layer of InAs is called the wetting layer. The thickness of the wetting layer is

called the critical thickness. In our experiment, the InAs film initially grew layer-by-layer for

approximately 1.6 monolayers and then buckled up to form quantum dots. This critical thickness

indicates when the islanding begins, but it doesn’t necessarily indicate when islanding is

energetically favourable.

Page 11: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

4

In recent years, researchers have been working on heteroepitaxy growth models based

on rate equation analysis and kinetic Monte Carlo simulations. These methods have been

reviewed before the development of the project’s simulation model.

Page 12: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

5

3.0 Experimental Setup and Procedure

3.1 MBE Growth System

Figure 1: Molecular Beam Epitaxy Layout

The indium arsenide (InAs) quantum dots are grown using a VG-V80H molecular beam

epitaxy (MBE) deposition system that consists of many parts working under Ultra High Vacuum

(UHV), which usually refers to the 10-10 torr range. The layout of a typical MBE system is shown

in Figure # above. As a result, many complexities arise, sometimes requiring the entire system to

be vented which usually introduces long periods of ‘downtime’.

The system is comprised of three main chambers: deposition, preparation and load-lock.

The load-lock is a small and easily vented chamber that allows for the quick transfer of samples

into and out of the MBE system. The vacuum pressure, usually in the 10-7 torr range, is

maintained using a single turbo pump. The MBE used for the project is shown in figure # below.

Page 13: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

6

Figure 2: VG V80-H MBE System

The preparation chamber is the intermediary between the load-lock and the deposition

chamber as it has a trolley that is used to transport samples between the two. The preparation

chamber also consists of a high temperature heating stage (HTHS) that is useful for outgassing

samples prior to a growth. The vacuum pressure, usually in the 10-9 torr range, is maintained

using a single ion pump.

The deposition chamber is the heart of the epitaxy process, and as such is loaded with

the most features. There are a number of conventional Knudsen effusion cells containing atomic

sources for gallium, indium, bismuth, aluminum, silicon, a two-zone valved cracker source for

arsenic, as well as an RF plasma source for nitrogen. The relevant sources for this project are

gallium, indium, bismuth and arsenic. Arsenic is unlike the former three in that it is not an atomic

source but instead molecular in the form of As4. Hence, a cracker is utilized to split As4 into As2,

which improves arsenic incorporation into the thin film being grown.

Page 14: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

7

The cells in the deposition chamber are oriented around and focused at the sample

holder in which the substrate is placed. When heated, the evaporated sources impinge on the

substrate and crystallize based on the respective flux ratios. The control over which sources are

deposited is implemented using a series of electromagnetically controlled shutters placed just in

front of the aperture of the Knudsen cells. Normally, the substrate is heated as well in order to

improve diffusivity of atoms on the surface yielding smoother growth surfaces.

The cells are equipped with Tantalum/ Molybdenum filaments to heat the sources reliably

to such high temperatures as 1400°C. Water-cooling is thus required to regulate the cell

temperature and is implemented along the jacket of the cells. The substrate is heated radiatively

using a tantalum heater located behind the sample holder. A thin piece of poly boron nitride

(PBN) is placed on the back surface of the substrate, which helps in the uniform heating of the

substrate.

The deposition chamber is kept clean by filling the cryo-shroud that lines the chamber

walls and the cold-trap on top of the chamber with liquid nitrogen. When excess atoms come into

contact with these cold walls, they stick there. In fact, when the chamber is sufficiently cold and

prior to growth, the vacuum pressure tends to be in the low 10-10 or even 10-11 torr range. This is

achieved using both an ion pump and a cryo-pump.

Page 15: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

8

3.2 Preparing the MBE System for Growth

After a period of maintenance (or exposure to air due to leaks, etc) and before the system

can be used to perform growths again, a few steps must be conducted in order to bring the MBE

to a functional state. First, a good vacuum must be re-established. This involves bringing all the

system pumps online. Once that is accomplished, the entire system is enclosed in a bake box

(thermally insulating shields) and a bake-out is performed. The purpose of which is to remove as

much water vapour and other impurities as possible. This involves heating the entire system at

around 200°C for at least 12 hours or until the vacuum pressure stabilizes. An ideal bake-out

would run for a few days, as this will yield a cleaner and higher purity system.

Once the bake-out is complete and the system is given sufficient time to cool down, the

Knudsen cells are outgassed one by one in order to remove any impurities that might have

adsorbed on to the cells. Outgassing is achieved by simply heating up and maintaining the cells

at higher-than operational temperatures until the vacuum pressure stabilizes. During this

operation it is imperative that the cryo-shroud be kept cold and water-cooling for the cells turned

on. The table below displays typical temperatures associated with the relevant cells:

Rest Temperature

(°C)

Nominal Operational

Temperature (°C)

Outgassing

Temperature (°C)

Gallium 600 1010 1100

Indium 450 800 900

Bismuth 300 700 750

Arsenic Source 200 400 450

Arsenic Cracker 500 950 1050

Table 1: Relevant Temperatures for MBE Sources

A certain element of care must be observed during the initial heating of sources from

room temperature. Raising (or ramping down) the temperature across an element’s melting point

Page 16: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

9

must be done slowly. The primary cause for concern is that the crucible that holds the source

material might crack if the source undergoes a rapid phase transition. Bismuth’s melting point is

271.3°C, indium’s is 156.6°C while gallium’s is 29.76°C. This is particularly relevant for indium

and bismuth and as such, the temperatures are ramped slowly from 100°C to 200°C for indium

and 200°C to 300°C for bismuth.

In general, the sources are maintained at the rest temperatures mentioned in the table

above to avoid having to pass the melting points repeatedly as well as being midway to the

nominal growth temperatures. The nominal growth temperatures correspond to an approximate

growth rate of 1 monolayer per second for GaAs and InAs where the arsenic-group III flux ratio is

high (hence arsenic overpressure) when the valved cracker is set to ‘fully open’. Bismuth at

700°C corresponds to a flux of order 10-6 torr, which is also on the same order as the flux of the

arsenic overpressure.

Page 17: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

10

3.3 In-Situ Monitoring Equipment

Besides the Knudsen cells and substrate holder, the deposition chamber also houses in-

situ monitoring equipment, namely the Reflection High Energy Electron Diffraction (RHEED)

system, Monitoring Ion Gauge (MIG) as well as the Diffuse Reflectance Spectroscopy (DRS)

system. The MIG is simply a retractable ion gauge that is placed in the path of the molecular

beam that allows for the measurement of the flux directed towards the substrate. Unfortunately,

during the course of this project, the MIG was non-functional.

The STAIB RHEED RH-20S system consists of an electron gun shooting high-energy

(15keV) electrons at a grazing angle of incidence (less than 3°) with respect to the substrate

surface. This is displayed in figure # below. As a result of the small angle, electrons are only

diffracted by the first few surface monolayers, and thus provide valuable insight concerning the

current surface morphology. On the other side of the chamber, in the same axial plane as the

electron beam, a phosphorus screen is mounted in order to display the diffraction pattern. A black

and white CCD camera is mounted outside that port and is connected to a video card allowing for

RHEED videos to be recorded.

Figure 3: RHEED Diffraction Off Sample Surface

After starting the RHEED high voltage power supply, the voltage is ramped slowly in 2kV

intervals for every 10 seconds. Once the 15keV set point is reached, the electron beam current is

then increased; first to 1mA in 5 seconds followed by 5-second intervals for each additional

0.1mA until reaching the final 1.5mA set point. Thus a bright and clearly discernable RHEED

Page 18: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

11

pattern is obtained. Ideally, the RHEED pattern should be as sharp and well defined as possible.

This is achieved by adjusting the ‘GRID’ and ‘FOCUS’ values on the RHEED controller.

The DRS system is an optical thermometry technique used to measure the substrate

temperature during growth which is accurate to ±2.5°C. It involves the transmission of wide

bandwidth chopped white light from a 12V tungsten-halogen lamp across the substrate. The light

source is directed towards the substrate using a series of mirrors placed inside the deposition

chamber. Transmitted light through the substrate is reflected off the poly boron nitride (PBN) strip

back across the substrate. As a result, light is transmitted across the substrate twice, which is

then picked up using another set of mirrors for analysis by a monochromator.

The theory behind the DRS involves the transmission of light across a semiconductor.

Photons with energy larger than the bandgap energy are absorbed by the material while those

with less energy freely pass through. In the case of GaAs, the bandgap is 1.43 eV at room

temperature. This corresponds to a wavelength of 885 nm. In the vicinity of this wavelength, a

sharp transition can be observed pertaining to the intensities detected. Wavelengths above

885nm will transmit across the semiconductor while those below will be absorbed. The spectrum

of transmitted light is scanned with the aid of a lock-in amplifier in order to locate this cut-off

wavelength. There exists a direct and unique relationship between the cutoff wavelength and

temperature for a specific material and knowing this relationship, the current temperature can be

obtained. A sample display screen from the LabView controls is shown below in figure #.

Figure 4: LabView DRS Controls that Locate the Sharp Wavelength Transition

Page 19: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

12

3.4 Ex-Situ Analysis Equipment

3.4.1 Atomic Force Microscope

Upon growth completion, the samples are removed from the system for analysis using

external equipment, namely the Atomic Force Microscope (AFM) as well as Photoluminescence

(PL). The Digital Instruments AFM is utilized to obtain 3 dimensional images of the surface

morphology of the samples grown. The system involves an AFM tip attached to a cantilever that

is dragged along the surface. A laser is reflected off the back of the AFM tip such that as the tip

traces the surface morphology, the different reflections measured by a photodiode can be

translated into discrete points of height. The resolution is very good and is down to the 1- 2nm

range. A photo of the AFM used is displayed in figure # below.

Figure 5: Atomic Force Microscope

The AFM can be operated in two modes: Contact and Tapping. In Contact mode, the

surface topography is measured by simply dragging the tip across the surface. In Tapping mode,

the tip oscillates instead at a particular frequency and height measurements are taken when it

taps the surface. Even though Tapping mode is slightly slower than Contact mode, the main

advantage it provides is a reduction of the lateral shear forces arising from dragging the tip in

Contact mode. However, Tapping mode does not remove these shearing forces altogether, and

Page 20: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

13

as a result, symmetric circular objects will appear slightly elliptical. This is especially the case for

quantum dots. As such, dot sizes are parameterized by the individual dot heights instead of

diameters.

Figure 6: AFM Setup Display

Before using the AFM to analyze a sample, a few steps must be implemented. First, the

laser must be aligned to the cantilever. This is accomplished using the ‘paper method’ where a

piece of paper is placed under the AFM head and the laser is oriented such that the shadow of

the cantilever edge is clearly observable. This implies that the laser is properly focused on to the

back of the AFM tip. The AFM head consists of the tip holder, laser and photodiode array.

The next step involves orienting the photodiode towards the reflected beam. This is

accomplished by adjusting the mirror level on the rear of the AFM head until a maximum

photodiode voltage signal is obtained. This is observed as the SUM (signal 1) bar on the AFM

display above (figure #). Following that, the vertical and horizontal differences (signal 2), which

reflect the voltage differences in the various segments of the photodiode, must be minimized.

Finally, the cantilever must be tuned. An automatic tuning program performs a frequency

sweep and locates the cantilever resonance frequency. According to literature, the optimum

frequency to drive the oscillating cantilever is just below the resonance frequency, approximately

where the vibrational amplitude decreases by 10%. The justification used is that from trial and

error, the best results are produced this way. The sample to be analyzed can then be loaded and

the AFM tip engaged. The tip scans back (Trace) and forth (Retrace) and the measurements

obtained for each scan line can be plotted in scope mode. The maximum scan resolution capable

Page 21: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

14

is 512 x 512 data points. The PID settings that control the piezo height are optimized such that

the measurements during Trace and Retrace are almost identical.

3.4.2 Photoluminescence

Photoluminescence (PL) spectroscopy is a non-contact and non-destructive method of

probing the electronic structure of a given material. In the experiment, a green laser was directed

at the sample encased in a metallic heat shield. The sample absorbs photons of specific

wavelengths, hence energy, become excited and moves into an excited state. This process is

called photo-excitation. As atoms always try to return to a more energetically favourable state,

i.e. the ground state, they will dissipate the absorbed energy through the emission of light (there

are also other ways for the atoms to return to their ground state, but it is the emission of light that

is the essence of PL), or luminescence. In the case of photo-excitation, the luminescence is

referred to as photoluminescence.

By recording the intensity of these emissions over a wide range of wavelengths (~700nm

– 1300nm in the experiment), it is possible to determine various important material quantities

such as the bandgap energy. The energy of the emitted light is related to the difference in energy

between the excited state and the ground state. Bandgap determination is very useful when

working with a new semiconductor material because the most common transition in such a

material is between the states in the bottom of the conduction band and those in the top of the

valence band.

PL can also be used to detect impurities in a material. In general, different materials

absorb photons of different energies; therefore, by observing the relative peaks of the spectrum, it

is possible to identify specific defects while the intensity (or height of the peak) can be used to

determine the amount of the defect present in the material.

The experimental setup used to do PL on the samples is shown in the figure below.

Page 22: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

15

Figure 7: Experimental Setup to Perform PL Analysis

The long black tube-like object at the right edge of the Figure above is the laser which

was used to excite the particles on the sample. The laser was green in color and was pumped at

400Hz. The metal casing just to the left of center is where the sample is housed. The main

purpose of the case is to shield the sample from the outside heat while the sample inside is kept

at very low temperatures (as low as ~20K). The cooling device is just out of the bottom of the

Figure. Between the laser and the sample lies a series of lenses, mirrors and flaps. The lenses

and mirrors focus and guide the laser beam onto the sample while the flaps are used to block out

the laser beam when necessary.

A background run is necessary before taking PL measurements. First, the room lights

are turned off and flaps are used to stop the laser beam from reaching the sample. Next, the

option called ‘acquire background’ is chosen and the spectrometer will take a reading. On all

subsequent measurements (with the beam unblocked), the measured values will have the

background values subtracted from it. However, before any measurements (background or real)

are taken, the spectrometer must be cooled by filling the black cylindrical chamber shown in the

figure below with liquid nitrogen. The cooling process takes approximately 2-3 hours on average.

Page 23: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

16

Figure 8: Liquid Nitrogen Storage Used to Cool the Spectrometer

Once the spectrometer has been cooled, measurements can be taken. There are two

types of measurements: room temperature and temperature dependent.

Page 24: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

17

3.5 Growth Procedure

All growths were performed using a gallium arsenide (GaAs) substrate of 350-micron

thickness. The substrate is semi-insulating, of mechanical grade with a polished surface and

oriented in the 001 plane. Each substrate is one of four sectors cleaved from a 2” GaAs wafer.

Prior to introduction into the MBE system, the substrates are left untreated (chemical etching,

etc).

The substrates are mounted into the sample holder and two such holders (the only ones

available) are entered into the MBE system via the load-lock. Each sample holder is first

outgassed in the High Temperature Heating Stage (HTHS) prior to growth, for approximately an

hour at 450°C. Following that, the sample holder is carted into the deposition chamber and

mounted into growth position. The deposition chamber is then isolated from the rest of the system

via a retractable angle valve.

Before deposition of InAs can begin, the substrate surface must be prepared for growth.

This involves desorbing the oxide layer on the surface that forms as a result of exposure to air.

The removal process involves heating the substrate to around 600°C (measured using the DRS)

under a high arsenic flux and annealing it for a few minutes. The oxide layer literally explodes off

the surface rendering it rough and pitted. Confirmation is possible through a spotty RHEED

diffraction indicative of a rough crystalline surface. Arsenic from the GaAs substrate desorbs at

high temperatures as well, and thus necessitates the high arsenic flux to prevent gallium droplets

from forming on the surface.

Once the oxide is removed, the temperature is lowered to around 520°C and the growth

of a GaAs buffer layer is started and maintained for approximately 20 minutes. The purpose of

the buffer layer is to make the surface smooth and thus suitable for growth. Both gallium and

arsenic sources are set to their nominal operational temperatures and the arsenic valve is fully

opened. This corresponds to a growth rate of 1 monolayer per second or 10nm per minute. After

the completion of the buffer layer, the substrate temperature is further reduced to 450°C while

GaAs layers are continuously deposited.

Page 25: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

18

The development of a smooth surface is confirmed by the appearance of streaky RHEED

diffraction patterns. The substrate is then rotated until the RHEED pattern of the 2 side of the 2x4

reconstruction is observed. This pattern is easily discernible because a single intermediate streak

is clearly visible between primary streaks. As a result, this side of the reconstruction was chosen

when recording the transition of RHEED patterns during formation of the InAs quantum dots.

Alternatively, the pattern for the 4-side involves 3 evenly spaced intermediate streaks between

primary streaks.

450°C was the most suitable substrate temperature to grow the quantum dots because it

yielded optimal bismuth coverage. The cooler the substrate, the larger the amount of bismuth that

lightly bonds to the surface (i.e. sits on the surface without adsorbing) and thus the better the

coverage. However, lowering the substrate temperature too much reduces surface diffusion,

which in turn leads to less smooth surfaces. Even though the quantum dots are themselves

rough, the InAs wetting layer that forms prior to dot formation should be made as smooth as

possible, as it influences the dots formed. The optimal compromise for coverage versus diffusion

was determined by the highest temperature point that showed the minimal change in coverage as

the temperature was decreased.

After the substrate temperature reached 450°C, growth was interrupted for a few minutes

to allow the surface to stabilize. The InAs quantum dots were then grown by opening the indium

shutter and allowing the indium flux to impinge on to the substrate. Since a number of growths

were performed (each with varying growth parameters), details will be provided with the results in

the sections to follow. The only parameter kept constant was that of the indium source

temperature, set to 710°C. This corresponded to a growth rate of around 1 monolayer per 50

seconds.

Page 26: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

19

3.6 RHEED Analysis

Two methods were used to analyze the data obtained by using the RHEED diffraction

patterns. During each growth, a video was created by taking snapshots of the pattern at a fixed

number of frames per second (this value was varied in between growths in an attempt to recreate

the growth with higher accuracy). The video served three main purposes.

First, it allowed for further review of the recently completed growth. This is very important

because the video is able to show potential flaws that may have occurred during the growth, i.e.

the growth time may not have been long enough for quantum dots to form.

Second, the amount of time the indium shutter was open, or the growth time, can be

determined to within a few frames (equivalent to a fraction of a second) by observing when the

RHEED pattern “shifts”. There may be several reasons as to why the pattern “shifts”, but it is

most likely due to the switch in polarity of the electromagnet controlling the shutter. The sudden

change in the electric field near the sample likely caused a brief disruption in the diffraction

pattern. After observing this characteristic through all of the growths, it was determined that the

growth time can be obtained by counting the number of elapsed frames (and, of course, dividing

by the number of frames per second) in between the shifts in the RHEED pattern.

Third, the information which was not easily observable by merely viewing the camera

output during the growth could be extracted for further study. A wealth of knowledge about the

growth can be obtained by choosing an area of interest and observing it throughout the video.

This area is chosen by first locating the coordinates of a bright spot in the pattern just before the

indium shutter closed to halt the growth. Next, the area of the spot was approximated by a

square of approximately 10x10 pixels. Even though the spot usually has a circular to elliptical

shape, the square was always enclosed by the spot; therefore, the area of interest was confined

to the bright spot and thus validates the approximation of using a square instead of the exact

shape which would require more computing time. With the area now defined, it is possible to

keep track of and plot the intensity of the diffraction pattern in this area throughout the video.

This is done via a script in Matlab which is included in Appendix (insert number). While this plot

cannot totally replace the video, it allows for a more detailed analysis of the events of the growth.

Page 27: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

20

3.6.1 Analysis of Plots

In this section, the method with which the RHEED plots were analyzed is detailed. The

following is an example of how a set of growths was analyzed. There are several regions of

interest in the plot below of the first growth done without adding bismuth.

Figure 9: RHEED Intensity Plot for Growth (set 1) without Bismuth

One of the most noticeable features is the sudden change in relative intensity at approximately

15s and 92s. These sharp changes represent the times at which the indium shutter was opened

and closed; therefore, the difference in these two times is the total time of deposition, or growth

rate. The increase in intensity from ~15s to 25s is a result of the previously smooth gallium

arsenide surface (the smooth buffer layer, see Figure 2) becoming coarse as the indium is being

deposited. In addition, the reconstruction lines have disappeared from the video during this time

Page 28: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

21

(Figure 2). The reason the relative intensity increased was mainly due to the fact that there is

more scattering on a rough surface than on a smooth one.

Figure 10: (left) RHEED Display of a Smooth Substrate Surface with Reconstruction Lines.

(right) reconstruction lines disappearing after ~20s of indium deposition.

Between the 25s and 82s mark, the intensity remains relatively constant (For this

particular plot though, there is a “notch” at approximately 50s. It will be shown later that this

“notch” is not a common occurrence, as the rest of the plots will show a plateau in the intensity

reading.) During this period of time, indium is being deposited on the substrate, but there is not

yet enough material to cause enough strain to cause the formation of quantum dots yet (see

Figure 3).

Figure 11: (left) RHEED Display at t = 25s where the Reconstruction Lines have Fully

Disappeared (beginning of plateau). (right) t = 75s, End of Plateau. Note that there has

been Minimal Changes Since the 25s Mark.

Page 29: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

22

At times slightly greater than 82s, the intensity begins to increase rapidly: this is the

onset of quantum dot formation (see Figure 4 below). In terms of the video, the bright spot which

is being tracked is just beginning to appear. From this time until the closure of the shutter, the

plot shows a linear increase in intensity. The linear relationship, as opposed to one where the

intensity seems to be saturating, suggests that the number of quantum dots on the surface is

increasing. This seems reasonable because once the wetting layer has reached its critical

thickness, any more material deposited will result in dot formation.

Figure 12: RHEED Display at the Onset of Quantum Dot Formation

At t = 92s, the shutter closes and the entire RHEED pattern on the video shifts as

described in the previous section. The information shown on the plot is no longer an accurate

representation of the spot that was being tracked prior to the closure of the shutter.

Figure 13: RHEED Display at Dot Formation

Page 30: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

23

In order to observe the effects of bismuth on quantum dot growth, it is imperative that the

two samples (with and without bismuth) are grown under conditions which are as close to

identical as possible. The figure below shows the RHEED intensities during the growth using

bismuth as a surfactant. Similar to the growth without bismuth, the indium shutter was opened at

~15s into the video and closed at ~93s.

Figure 14: RHEED Intensity Plot for Growth (set 1) with Bismuth

In addition, many of the regions mentioned previously also occur in this plot. There are

some differences in the plots, though. The most notable difference occurs at the onset of dot

formation to the time at which the shutter is closed. Upon comparing the linear regions of both

plots leading up to the shutter's close, the growth with bismuth resulted in a much shorter region

(4s vs. 10s). In the growth with bismuth, the atomic force microscope scans showed that the

average size of the dots were smaller than that of the growth without bismuth. The difference in

the times that the plots were in this linear regime may be connected to the size of the resulting

Page 31: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

24

quantum dots. The other significant difference occurs at the ~115s into the video of the growth

with bismuth where there is a sudden spike in the plot. This was simply connected to the closure

of the bismuth shutter.

Page 32: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

25

4.0 SIMULATION

In recent years, researchers have been working on heteroepitaxy growth model based on

rate equation analysis and kinetic Monte Carlo simulation. These methods have been reviewed

before the development of the project’s simulation model.

Rate equation analysis solves differential equations relating atomic diffusion flux and

chemical potential. Diffusion flux as a function of position on the surface is calculated from the

chemical potential, which is a function of surface morphology. The surface morphology is then

updated according to the flux and time step. The final film morphology is calculating by iterating

the above steps. The rate equation analysis models the film as a continuous surface. The

approach ignores the individual atom properties and generalizes microscopic processes with bulk

properties.

The kinetic Monte Carlo (kMC) approach calculates the site-to-site hopping probability of

the individual atoms based on the morphology of their immediate neighborhood. A diffusion

barrier, or activation energy, is calculated based on the morphology of the neighborhood. The

barrier is the energy required for an atom to hop from one site to another. An atom with high

diffusion barrier is less likely to be moved. The final film morphology is obtained by moving atoms

around based on their hopping probability. The total number of hops performed in a typical

simulation could be of the order of 1012. Most kMC heteroepitaxial methods are performed on a

fixed-grid; that is, the absorbate atoms are assumed to have equal bonding distance even in the

case of lattice mismatch. A strain field as a function of lateral position is calculated based on the

morphology of the film. In general, strain builds up at the edge of island. Atoms positioned at

high-strain area are more likely to hop to adjacent sites.

There were two major difficulties in modeling the surfactant-mediated growth. First,

researchers are still working on the modeling of InAs/GaAs heteroepitaxial growth. Second, no

theoretical work has been done on Bismuth as a surfactant; that is, no one really knows about the

interaction between Bismuth, InAs, and GaAs. This second problem could be solved by band-

structure calculation, which could be a project in the graduate level in the field of solid-state

physics.

Page 33: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

26

Given the time constraint of the project and the knowledge background of the group, the

theoretical study of the project was performed by developing and running a kMC model that

considers variable bond length and binding energy. Simulation was performed for different

simulation settings in attempt to gain knowledge of the InAs/GaAs growth. Insights into the growth

mechanism were gained from the simulation settings.

Although the model was not capable of simulating surfactant mediated growth, simulation

variables were adjusted in attempted to reproduce the surfactant effect observed experimentally.

The required change in simulation variables gave hints to the role of surfactant in heteroepitaxial

growth.

The following sections discuss the InAs/GaAs system model, the adatom simulation

method used to predict the evolution of the film, the implementation of the simulation program,

the simulation of special atom configurations, and quantum dot growth simulation results.

Page 34: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

27

4.1 Simulation Model

The simulation model was developed based on the work of Much, et. al [4].Many

simplifications and approximations has been made to the InAs/GaAs system, but the model

nevertheless captures more microscopic details than most existing kMC models.

The simulation calculates the evolution of a thin-film’s cross section. The simulation

assumes that an arsenic atom gets incorporated into the bulk only if a gallium or Indium atom is

present. Only gallium and indium atoms are considered in the simulation. To further simplify the

problem, the zinc-blend structure is modeled as a closely packed structure. A frame in the

simulation is shown in Figure 15. The red circles represent indium atoms. The blue circles

represent gallium atoms.

Figure 15: A preview of simulation.

Page 35: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

28

The interaction between atoms is completely determined by the Lennard-Jones (LJ)

potential, which describes the interaction between atoms. The potential associated with two

atoms, i and j, separated by a distance rij is

( )

=

612

04ijij

ij rrUrU

σσ (1)

A normalized LJ potential function is plotted in Figure 16. The 1/r12 term dominates for

small r and approximates the repulsion between two atoms at close distance; the 1/r6 term

dominates at large r and describes the attraction due to the van der Waals forces. Two atoms are

at equilibrium when they are separated by

σ⋅= 60 2r . (2)

The corresponding potential is at minimum

( ) 00 UrUU Min −== . (3)

Figure 16: Plot of Lennard-Jones potential.

Page 36: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

29

U0 is the bonding energy, the energy required to move two atoms from equilibrium to

infinitely far apart. The lattice constant, or the equilibrium distance between two atoms, can be set

by s .

The total potential energy of a N-atom system is a multi-variable function

( ) ( )∑ ∑=

+=− =

N

i

N

ijijijNNtot rUrrrU

1

1

1,11312 ..., , (4)

where

( ) ( )22jijiij yyxxr −+−= . (5)

The variables xi and yi are the coordinate of atom i. At equilibrium, all atoms are

positioned such that Utot is at its minimum; otherwise, the atoms will move around to relax the

extra potential energy.

The simulation also considers how tightly an atom is bonded to its current site. The

potential energy between an atom,i , and its surrounding atoms is

( ) ( )∑=j

ijijiNiii rUrrrU ..., 21 . (6)

Figure 17 plots Ui as a function of atom i’s position. Potential energy interference creates

local minima, which is often referred as potential wells. An atom will be drawn toward the bottom

of one of the potential wells and stay there at equilibrium. The potential minimum is lower for a

site with three neighbors than for a site with two neighbors; that is, an atom is more stable when

its number of neighbors increases.

Because the experimental temperature is non-zero, an atom at rest could gain thermal

energy, which allows the atom to overcome a energy maxima. Figure 18 shows Ui along a

possible hopping path of an atom i. The energy difference between a local minimum and its

adjacent local maximum is the activation energy, the amount of thermal energy required for an

atom to hop to an adjacent site. This energy is the “height” of the potential well and it can also be

thought of an energy barrier for diffusion.

( ) ( )iiA UMinUMaxE −= (7)

Page 37: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

30

Min(Ui) can be easily calculated because a system at equilibrium would always have all

its atoms at the bottom of potential wells. Calculating Max(Ui) is more involved. Max(Ui) is the

maximum along an atom’s hopping path. The hopping path is the minimum-energy path that

connects one potential well to another. Determining such a path would require knowledge of

Molecular Dynamics simulation. For computation time and simplicity, Max(Ui) is approximated as

0.69 * Min(Ui). The ratio is taken from the data in Figure 18.

Figure 17: 2-D plot of superposition of Lennard-Jones potential.

Figure 18: Potential along an atomic hopping path.

Page 38: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

31

Interaction Lattice Constant r0 S U0

GaAs - GaAs 0.59nm 1 sGa =0.8908987 UGa Empirical

InAs - InAs 0.63nm 1.07 s In = 0.9532616 UIn Empirical

Table 2: Choice of Lennard-Jones Potential

The LJ interaction becomes more complicated when two types of atoms interacting with

each other. The LJ potential between a pair of atoms depends on the type of each atom. Table 2

shows the U0 and s chosen for GaAs and InAs. s is calculated from r0, which is the normalized

lattice constant. The U0 values are not known experimentally so they have to be determined by

running the simulation. The U0 and s for GaAs-InAs interaction are chosen to be

2GaIn

Inter

InGaInter UUU

σσσ

+=

= (8)

These two terms are paramount to the simulation model because they determine the

heteroepitaxial behavior of the system. The choice of s Inter is intuitive because the equilibrium

separation of an InAs and GaAs has to be somewhere between ro,Ga and ro, In. s Inter captures the

strain effect of heteroepitaxy. Consider the beginning of the heteroepitaxial growth. When the first

In atom is deposited on the bulk of GaAs substrate, it will go into one of the potential

wells with s Inter. When another In atom hops to the site next to that of the first atom, that atom will

be also attracted toward the potential well with s Inter; however, the two In atoms will interact with

s In, which is slightly bigger than s Inter. The result is that they will repel each other away from the

minima of their respective potential wells. In other words, their activation energies decrease.

The choice of U0 for the three types of interaction captures the interesting physics of

heteroepitaxy. Consider the case in which UGa and UIn are equal, increasing both equally will

increase the depth of the potential wells, and surface atoms will be bound more tightly to the film.

Decreasing them will make the wells shallower, making it easier for surface atoms to diffuse.

Increasing UIn relative to UGa would increase UIn over UInter. The result is that InAs surface atoms

interact more with GaAs than with InAs. Similarly, decreasing UIn relative to UGa would decrease

Page 39: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

32

UIn relative to UInter. The result is that InAs atoms interact more with InAs than with GaAs. The

consequences of different choices of Uo are found experimentally by running the simulation. The

results are discussed in Section 5.4.

Page 40: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

33

4.2 Adatom Kinetic Monte Carlo Simulation Method

This section discusses the adatom kinetic Monte Carlo (kMC) simulation method used to

predict the evolution of the film. Adatom simply refers to the mobile atoms on the surface. Using

the LJ potential model discussed in the previous section, the simulation method chooses and

moves adatom one after another. The steps taken in a simulation is to the order of 109.

During each step of the simulation, the probabilities of all possible events are calculated.

There are two categories of events during growth: the deposition of atom and the hopping of

individual atoms. A deposition event simulates an atom arriving on the surface from the MBE’s K-

cell. A hopping event simulates the translation of a surface atom. Under the closely packed lattice

structure, an atom can have a maximum of six neighbors. Any atom with five or less neighbors

can hop to its adjacent site. The allowable movements are: moving in a lateral direction, climbing

a step, and descending a step.

The probabilities of these events are calculated using “rates”. An event rate is the number

of that event happening per second. The deposition rate is the rate at which atoms are added to

the substrate. An experimental flux of F mono-layer-per second is represented by the rate

LFRDeposition ⋅= , (9)

where L is the width of the simulation.

The hopping rate of a surface atom, i, is calculated according to the Arrhenius rate law,

which describes the kinetics of chemical reactions.

⋅−⋅=

TkE

R AHoppingi exp, ν , (10)

where v is the vibration frequency, k is the Boltzmann constant, T is the temperature in Kelvin,

and EA is the activation energy in Equation 7. To save computation time, the j indices cover only

the atoms within a 3r0 radius about atom i. Figure 16 shows that the energy contribution of atoms

located further than a 3-atom radius contribute negligible potential energy.

The vibration frequency, v, describes how frequently an atom vibrates in the potential

well. The more frequently it vibrates, the higher chance it has to hop out of the potential well. The

Page 41: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

34

value of vibration frequency is taken to be 1012 s-1. This value is widely used in adatom

simulations.

Because the hopping rate is proportional to the exponential of negative EB, an atom

located at a deeper potential well will have a lower hopping rate. Qualitatively, EB is

approximately proportional to Ui, and Ui is the potential sum between atom i and its neighbors. Ui

is most sensitive to atom i’s immediate neighbors. Therefore, the hopping rate is roughly

decreasing exponentially with increasing number of immediate neighbors. The hopping rate also

increases with temperature.

After Ri,Hopping has been calculated for each surface atom, the total rate of that simulation

is calculated by summing up the hopping rate of the atoms and the deposition rate.

Depositioni

HoppingiTotal RRR += ∑ , (11)

For a large number of simulation steps, the probabilities of the possible events are then

( )

( )Total

Deposition

Total

Hoppingi

R

RR

R

=

=

deposition atomProb

hopping i atomProb ,

, (12)

A uniformly distributed random number, u, is generated, and an event is chosen such that

for the smallest k,

uk

i

≥∑=1

i) Prob(Event . (13)

If a deposition event is chosen, a new atom will be added at a random site. If a hopping

event is chosen, the atom will be moved to its adjacent sites.

After each step, the time in simulation is incremented by

( )uR

tTotal

log1−

=∆ , (14)

where u is a uniformly distributed random variable. The quantity is positive because u is always

smaller or equal to unity. This time increment is derived in the ordinary kinetic Monte Carlo

framework.

Page 42: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

35

4.3 Implementation of Simulation Program

The simulation program is implemented using the C programming language. The

program was developed to run on the Steam Engine Linux cluster in the MBE lab at AMPEL.

Figure 19 shows a simple flow chart of the program. The details in the code are commented in

the code listed in Section 9.4.

Simulation starts by initializing data structures needed for calculation. Arrays are

prepared to store the atoms’ coordinates, type, and hopping probability. The initial simulation

environment is then setup. Temperature is set to 723K. The simulation size is set to a width, L.

The boundary condition is set to be continuous; that is, the coordinate x is actually Mod(x, L). Six

layers of rigid Ga atoms are inserted to emulate the bulk of GaAs substrate.

There are four major steps in the simulation: Ga atom deposition, annealing of the

substrate, In atom deposition, and annealing of the deposited film. The first two steps are used to

imitate the initial substrate roughness in the experiment. Unlike the initial six layers of Ga, all the

deposited Ga atoms are movable. The last two steps imitate the heteroepitaxy experiment.

The two deposition steps begin with the standard kinetic Monte Carlo simulation method

discussed in the previous section. The two annealing steps are the same as the two deposition

steps; however, there is no deposition (RDeposition = 0). Each simulation step changes the atomic

configuration of the system. In general, the atoms are very close to their equilibrium position. The

exact equilibrium configuration is determined by moving atoms around to minimize the system’s

total energy.

Energy minimization is the most unique and important step in this model. To save

computation time, only the 37 atoms within a 3-atom radius of an event are moved. Figure 16

shows that the energy contribution of atoms located further than a 3-atom radius contribute

negligible potential energy. In addition to the movable atoms, the calculation also considers the

potential energy contribution from 90 atoms located between 3-atom radius and 6-atom radius of

the event. The atoms located in this outer ring are non-movable, but they are within the 3-atom

radius of some of the movable atoms. Equation 4 is then simplified to

Page 43: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

36

( ) ( ) ( )∑ ∑∑= =+=

+=

37

1

127

38

36

137372211 ,,,,,...,,,

i kiiik

ijjjiiijtot yxUyxyxUyxyxyxU (15)

where movable atoms have indices between 1 and 37, and non-movable atoms have indices

between 38 and 127. The minimization of this 72-dimension function is performed using the

conjugate gradient method [5]. The method performs minimization by a clever use of the

function’s gradient. Because this numerical method is not developed in this project, please refer

to [5] for a detailed discussion. The magnitude of Utot is to the order of 102, and the maximum

error tolerance of minimization is set to be 10-2.

At the end of the simulation, memory is cleaned up and results are saved.

Page 44: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

37

BEGIN

Setup Data Structures

Setup Initial Condition

Enough

Chose between GaAs deposition and hopping event

Perform the chosen event

Rearrange atoms for minimum total system energy

Update Hopping probability for each surface atom

Anneal

Perform hopping event

Rearrange atoms for minimum total system energy

Update Hopping probability for each surface atom

Increment Time

Increment Time

Enough

Chose between InAs deposition and hopping event

Perform the chosen event

Rearrange atoms for minimum total system energy

Update Hopping probability for each surface atom

Increment Time

Anneal

Perform hopping event

Rearrange atoms for minimum total system energy

Update Hopping probability for each surface atom

Increment Time

Clear Memory

Save Results

END

Y

N

Y Y

Y

N N

N

Figure 19: Simulation flow-chart.

Page 45: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

38

4.4 Simulation of Microscopic Atomic Configuration

This section demonstrates the simulation capabilities of the model to predict some

interesting atomic configurations that cannot be predicted by conventional grid-based kinetic

Monte Carlo methods or rate equation analysis. These configurations might not occur in the

actual InAs/GaAs system, but the capability of predicting these configurations allow the group to

conclude the non-existence of configurations based on simulation results.

The model is capable of predicting dislocation. InAs and GaAs have a 7% lattice

mismatch; there are 107 Gallium atoms per 100 Indium atoms at the GaAs-InAs interface. The

site of missing Indium atoms is called dislocation. Fixed grid kMC method is unable to simulate

dislocations due to the constant inter-atomic distance approximation. Rate equation analysis

cannot yield dislocations simply because the film morphology is modeled as a continuous function

of height. Figure 20 shows a dislocation generated when the bigger absorbate atom is forced into

a layer-by-layer growth. One atom is missing to fit the bigger absorbate atoms into a layer.

Dislocation

The model can also predict missing atom in the bulk, as shown in Figure 21. Because

atoms block the paths to the empty sites, surface atoms cannot diffuse into the two empty sites.

Figure 20: Simulation result of dislocation.

Page 46: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

39

This phenomenon cannot be predicted by the rate equation method because the method

assumes the morphology of the film as a continuous function.

Figure 22 shows a flat layer of absorbate atom on a substrate. One absorbate atom is

penetrated into the substrate at the middle of the picture. Because the absorbate atoms are

slightly larger than the substrate atoms, the surface of the film is bulged up to accommodate the

extra absorbate atom. The straight line is drawn tangential to the top surface atom, and the

surface atoms on either side are located lower than it.

Figure 21: Simulation result of vacancies.

Page 47: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

40

On the other hand, if extra substrate atoms were located beneath the absorbate layer,

the smaller substrate atoms would make room for the absorbate over-layers to buckle down. This

is shown by the tangential line in Figure 23. The figure also shows another interesting

configuration, the relaxation on island edges. The absorbate atoms in the bulk of the film are

compressed together by their neighbors. The edge atoms have fewer neighbors and are

displaced slightly to the empty space.

Edge Relaxation

Figure 22: Simulation result of bulged-up absorbate layer.

Figure 23: Simulation result of bulged-down absorbate layer.

Page 48: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

41

5.0 RESULTS

5.1 First Set of Growths (Runs 1410 and 1411)

The initial aim for the growths was to compare samples grown with and without bismuth

surfactants using RHEED and AFM. Using RHEED, the parameter of importance was the time

elapsed from commencement of indium deposition until onset of quantum dot formation. This time

is directly linked to the critical thickness of the wetting layer, which is the amount of 2D InAs

layers grown until strain relaxation occurs. In a set of two growths one after the other (the first

without bismuth, the second with bismuth), the arsenic valve is fully opened throughout thus

yielding a high overpressure. This includes the growth interrupt period where only the gallium

source is blocked off.

In that first growth, indium was deposited for 77 seconds before the shutter was closed

and the sample was quickly quenched. The deposition was terminated promptly following the

observation of a spotty RHEED pattern. The reason for such action is that newly formed dots are

smallest in size and have the most uniform size distribution. The sample was quenched by simply

turning off the substrate heater, which caused a quick drop in substrate temperature. The

purpose of quenching is to ‘freeze’ the dots in place and to minimize the diffusion of smaller dots

around the surface, which usually leads to coalescence into larger irregular dots.

For the second growth (sample grown with bismuth), the bismuth source temperature

was kept at 600°C during growth. Bismuth was not used to aid in the growth of the 20 minute

buffer layer, but the bismuth shutter was later opened during the GaAs growth as the substrate

temperature was ramping down to 450°C. Indium was deposited for 80 seconds and following

that, the sample was quenched. The two growths were stopped after being quenched and thus

the quantum dots were left exposed on the surface allowing for AFM analysis.

Analysis of the RHEED videos recorded during the growths show that the onset of

quantum dots occurred after 74 and 78 seconds for the case without and with bismuth

respectively. With respect to the critical thickness, the effect of bismuth is almost negligible. One

Page 49: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

42

previous assumption was that bismuth might extend the critical thickness significantly due in part

to its effectiveness as a smoothing surfactant. Sitting on the surface, bismuth would reduce the

surface energy and with that delay the need for strain relaxation by the InAs layers. However, this

was found not to be the case.

AFM scans of the samples were then analyzed for the dot characteristics. The surface

morphologies of both samples are displayed in figures 24 and 25 below. The 3D surface height

data was studied using MATLAB to locate all the peaks that were plausible quantum dots. A

simple scanning algorithm was implemented which involved looking at all the points around a

particular point to determine if that centre point was a peak. If so, then the height of the point and

its location are stored.

Figure 24: Surface Morphology of Quantum Dots Grown without Bismuth until Dot Formation

Page 50: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

43

Figure 25: Surface Morphology of Bismuth-Assisted Quantum Dots Grown until Dot Formation

The algorithm also looks for the DC level relative to that peak so as to give the absolute

peak height. The DC level is found by looking for all the points around the peak where the first

derivative switches from positive to negative or vice versa. However, there are many occurrences

when the DC level differs for each region around the peak. This is due to the rough underlying

surface. For convention sake, the lowest point of all the DC levels was chosen in determining the

absolute peak height. The idea of averaging the points was dismissed because there were

numerous cases where quantum dots were joined at the hip and thus had unnaturally high DC

levels in those regions.

For the sample grown without bismuth, a 1-micron by 1-micron sample yielded 1247

quantum dots. This translates to a dot density of 124.7 billion per cm2. The average height was

7.2422nm with a standard deviation of 2.7657nm. For the sample grown with bismuth, a similar

1-micron by 1 micron sample yielded 1476 quantum dots which translates to a dot density of

147.6 billion per cm2. The average height was 3.5342nm with a standard deviation of 1.0928nm.

Page 51: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

44

The standard deviation to average height ratio was also better for the bismuth case, that is 0.31

compared to 0.38 for without bismuth. From these statistics, the effect of bismuth is quite

significant. With bismuth, the dot density is higher and more importantly the dots are smaller and

more uniform. The size distribution for both samples are displayed in figures 26 and 27 below.

Figure 26: Quantum Dot Peak Height Distribution for Dots Grown without Bismuth until Onset of Formation

Figure 27: Bismuth-Assisted Quantum Dot Peak Height Distribution for Dots Grown until Onset of Formation

Page 52: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

45

Since bismuth does not affect the critical thickness significantly, the question that arises

then is how bismuth improves the dot density and uniformity. One possibility involves the starting

surface. Since bismuth was used during the growth of the GaAs layers prior to dot growth, the

starting surface would have been smoother compared to the case without bismuth. This will allow

for a smoother 2D InAs wetting layer, which in turn would lead to more dots forming at the same

instant with a more equitable portion of material (as part of the strain relaxation) yielding higher

uniformity.

Alternatively, bismuth might also affect the dot formation process. In this case, the

bismuth surfactant layer that sits on the surface might suppress the effect of strain relaxation

during the transition from 2D to 3D growth. As the strained 2D InAs layers collapse into islands to

relieve the strain energy, the bismuth layer that is lightly bonded on the InAs surface might

interact with the process by suppressing the islands that are trying to form. This could be due to

the surface energy reducing effect of bismuth. As a result, the dots formed just after the onset

would be smaller.

Page 53: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

46

5.2 Second Set of Growths (Runs 1417 and 1418) The intention of the next set of growths was to alter the growth parameters, namely the

bismuth and arsenic flux, to determine if bismuth really has no effect on the critical thickness. The

matter under consideration involved the relationship between arsenic and bismuth during the

growth. Since they are both group V elements, there exists the possibility that a larger arsenic to

bismuth flux ratio might mitigate the effectiveness (if any) of bismuth in altering growth conditions.

As such, the growths were to be conducted under a higher bismuth to arsenic flux ratio than

previously. Another aim of the next set of growths was to study the effect of bismuth on the size

of the dots as the growth was extended. This is accomplished by continuously depositing indium

arsenide for some period of time after the onset of dot formation.

During the growth without bismuth, the arsenic flux was reduced during the buffer layer

growth (at 520°C) until a 2x4 to 4x2 reconstruction flip was observed using RHEED. At this point,

the 2 side of the 2x4 reconstruction instantly changed to the 4-side diffraction pattern. The

significance of which is that the arsenic to gallium flux ratio is close to unity. However, as the

substrate temperature was reduced to dot growth temperature, the surface roughened as seen by

a spotty RHEED pattern.

At first, it was assumed that gallium droplets had formed on the surface, which could be

attributed to the arsenic to gallium flux ratio dropping below unity. Physically looking at the

sample surface via a mirror inside the deposition chamber, it was observed that a third of the

sample surface from one corner had turned dull and non reflective. This would be consistent with

the development of gallium droplets. However, it was decided that InAs dot growth should still be

carried out, with the intention of forming dots on the unaffected section of the substrate.

The RHEED beam was translated along the x-axis until a streaky pattern was visible.

However, the pattern was not symmetric and appeared less than ideal. Following a growth

interrupt for a few minutes to allow the surface to stabilize, InAs layers were deposited for 95

seconds. The arsenic pressure had been increased slightly following the surface roughening, but

was still more than ample for the dot growth since the indium flux rate was approximately 50

times less compared to that of gallium.

Page 54: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

47

For the sample grown with bismuth, the arsenic flux was similarly reduced at 520°C

producing the reconstruction flip. When reducing the substrate temperature to growth

temperature, the bismuth flux was turned on similar to the previous growth set albeit at a higher

source temperature of 650°C (to increase the bismuth to arsenic flux ratio). However, probably as

a result of the presence of bismuth, the surface roughening did not occur. Thus the starting

surface for both samples was different. The dot growth time was intended to be 95 seconds,

exactly like the previous growth. Unfortunately, the computer controller that controls the indium

shutter malfunctioned, requiring manual action. Due to this delay, the actual dot growth time was

100 seconds. Both samples were immediately quenched after growth.

Analysis of the RHEED video post-growth indicates that the onset of dot formation for the

first growth occurred after 81 seconds. However, as mentioned earlier, since the initial RHEED

pattern was less than ideal, this number might not be accurate. For the growth with bismuth, the

time until onset was 76 seconds. This value agrees with the onset times from the first set of

growths and with that lends weight to the assumption that bismuth has no effect on the critical

thickness.

Upon removal from the MBE system, it could be seen that a portion of the surface of the

sample grown without bismuth was slightly white and non reflective. It was clearly distinguishable

from the rest of the sample with a demarcation that ran across the central region of the sample

surface. The roughness appeared most visibly at the corner of the sample with a decreasing

gradient towards the center. Analyzed using the AFM, the corner and most severe section yielded

surprising results. The earlier assumption of gallium droplets was incorrect. In fact, the surface

was covered with narrow parallel GaAs ridges in the 011 direction. A top view AFM scan is

displayed in figure # below.

Page 55: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

48

Figure 28: GaAs Surface Resulting from Low Arsenic Flux

In the center of the sample just outside the demarcation the AFM scan produced another

interesting result. In this case, quantum dots had grown in those narrow valleys. A top view and a

3D view are presented below in figures # and #. It is interesting to note that all the dots are

confined to the valleys. Perhaps the valleys are more attractive energetically for the formation of

dots.

Page 56: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

49

Figure 29: 2D Top View of Quantum Dots Grown for 95 Seconds on Low Arsenic Flux Affected GaAs Surface

Figure 30: Surface Morphology of Quantum Dots Grown for 95 Seconds on Low Arsenic Flux Affected GaAs Surface

Page 57: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

50

The two surface morphologies are different even though they are on the same sample

because there is a flux gradient across the sample surface that results in the amount of material

being deposited to be non-uniform. In normal practice, AFM scans are taken of the center

sections since this is part of the surface that would have the most uniform flux gradient due to the

symmetric arrangement of all the sources with respect to that point.

Taking into account the flux gradient, a section of the sample was chosen as close to the

center but situated fairly distant from the ‘rough’ area. AFM analysis yielded a distribution of dots

similar to the previous growth set, sitting on a relatively smooth surface. A scan was then taken of

a section of the sample grown with bismuth located in the same vicinity. The important

assumptions made here is that the surface roughening that occurred in one section of the sample

does not affect the growth on the rest of the sample. In addition to that, it is also assumed that the

same amount of material was deposited in both (with and without bismuth) cases on that section

of the sample even though the growth involving bismuth grew for a few seconds longer. Since the

growth rate is slow, the effect of those few extra seconds should be negligible. The surface

morphologies for both samples are displayed in figures # and # below.

Page 58: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

51

Figure 31: Surface Morphology of Quantum Dots Grown for 95 Seconds without Bismuth

Figure 32: Surface Morphology of Bismuth-Assisted Quantum Dots Grown for 100 Seconds

Page 59: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

52

The dot densities are approximately equivalent in both 1-micron by 1-micron samples:

48.1 billion per cm2 for the sample without bismuth versus 43.0 billion per cm2 for the sample with

bismuth. The size distribution on the other hand is rather different. For the sample without

bismuth, the average dot height is 5.78 nm with a standard deviation of 2.22 nm. This is much

smaller than the average dot height for the sample with bismuth, which is 24.01 nm with a

standard deviation of 4.59 nm. Even though the bismuth-assisted dots are larger, the size

distribution is better relatively. The ratio of standard deviation to average height is much smaller

compared to the non- bismuth sample, that is 0.19 as opposed to 0.38. The height distributions

for both samples are displayed in figures # and # below.

Figure 33: Peak Height Distribution for Quantum Dots Grown for 95 Seconds without Bismuth

Page 60: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

53

Figure 34: Peak Height Distribution for Bismuth-assisted Quantum Dots Grown for 100 Seconds

From these results it is clear that bismuth-assisted growth produces more uniform dots. If

the two assumptions mentioned previously hold, then bismuth also acts to aid the continued

growth of the dots after formation. As a result, once they form the dots grow quicker with bismuth

as a surfactant.

Page 61: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

54

5.3 Third Set of Growths

The aim of the third set of growths was to compare the photoluminescence (PL) emission

spectrum for dots grown with and without bismuth. PL would be useful in collecting data on the

electronic properties of the dots as well as the size distribution. Both samples were grown for 85

seconds, which corresponded to a continued deposition of approximately 15 seconds past the

onset of dot formation. Thus the amount of InAs deposited on each sample surface was roughly

equivalent. Immediately following that, the samples were capped with a 200 nm GaAs cladding

layer at 580°C.

The PL spectrum of the samples grown without bismuth at room temperature and at 30 K

are displayed in figures # and # below. The wide Gaussian-like PL spectrum is indicative of the

size distribution of quantum dots. At room temperature, the peak wavelength corresponds to

emission at approximately 1.05 microns. In all the cases mentioned here the peak wavelength is

attributed to emission involving the ground state. The spectrum width is measured as twice the

distance from the peak to 20% of the peak value on the upper wavelength emission half. In this

case, the spectrum width is approximately 0.30 microns. The reason for this will be explained

later for the bismuth-assisted sample.

Figure 35: PL Spectrum of Room Temperature Sample Grown without Bismuth

Page 62: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

55

When the sample is cooled down to 30 K, the spectrum blueshifts to higher energies and

the spectrum width becomes slimmer due to the reduction in available states. The peak

wavelength moved to an emission wavelength of approximately 0.95 microns while the spectrum

width decreased to approximately 0.22 microns.

Figure 36: PL Spectrum of Sample Grown without Bismuth at 30K

The PL spectrums for the bismuth-assisted sample are displayed in figures # and #

below. After cooling down, the peak wavelength corresponding to 1.17 microns blueshifts to 1.11

microns while the spectrum width decreases from 0.30 microns to 0.20 microns. At a first

glimpse, it appears that the bismuth-assisted PL spectrum is wider than the PL spectrum without

bismuth, which would suggest that the size distribution with bismuth is larger. This is not the case

because the wavelength spectrum below the peak wavelength is most likely due to emission

involving excited states as a result of high power laser pumping. In fact, based on the spectrum

widths, it appears that the bismuth-assisted sample is slightly better in terms of uniformity.

The most useful analysis provided by PL is the difference in peak wavelengths for the

samples grown with and without bismuth. It appears that bismuth redshifts the peak wavelength

from 0.96 microns to 1.11 microns, which is a step closer to the commercially significant 1.35

Page 63: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

56

microns. The increase in peak wavelength is indicative of an increase in the average dot size,

which lends weight to the results of the second set of growths.

Figure 37: PL Spectrum of Room Temperature Sample Grown with Bismuth

Figure 38: PL Spectrum of Sample Grown with Bismuth at 30K

Page 64: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

57

5.4 Simulation Results

To simulate the InAs/GaAs system, which has a 7% lattice mismatch, the s of the LJ

potential for Ga-Ga, In-In, and Ga-In were chosen to be

0.92208012

9532616.0

8908987.0

=+

=

==

GaInInter

In

Ga

σσσ

σσ

.

This corresponds to equilibrium distances of

035.12

07.1

1

,0

,0

,0

=+

=

=

=

GaInInter

In

Ga

r

r

r

σσ

.

Choosing the U0’s for the interaction was basically a guessing game. The final

morphology of the film is extremely sensitive to the change in U0. Eventual simulation results

showed that a change of 0.05eV in U0 could cause noticeable difference in the final morphology.

This can be understood from equation 10, which shows that the hopping rate of atoms is an

exponential function of the U0. Anders Ballestad and Dr. Tom Tiedje suggested that the diffusion

barrier of a Ga atom on a flat Ga substrate should be approximately 1.4eV. Calculations had

been done to found that UGa ~ 2eV would yield the suggested energy barrier. Starting from an

initial guess of UGa = UIn = UInter = 2eV, simulations were run for an energy range between 1eV

and 3eV. Eventually, spontaneous quantum dot formation was observed for the parameter

eVUUU

eVUeVU

InGaInter

In

Ga

94.1

5.15.2

==

==

.

Simulation was performed at a temperature of 723K. The system size was 400 atoms

wide. One layer of gallium was deposited on the substrate to emulate surface roughness. The

system was annealed for 20 min, but the surface was still rough because UGa=2.5eV corresponds

to a very low diffusion rate. Indium was deposited at a rate of 0.05 mono-layer-per-second. Figure

Page 65: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

58

39 shows the system after 0.28 monolayer of indium deposition. The deposited indium tended to

bind to the bumpy part of the gallium substrate. Figure 40 shows the system after 1.13 monolayer

of indium had been deposited. Quantum dots grew spontaneously as indium was deposited onto

the substrate. Comparison between Figure 39 and 40 shows that the roughness on the gallium

substrate served as the “seeds” of the growing quantum dots. Figure 41 shows the system after

1.7 monolayers had been deposited. The smaller islands combined into larger islands.

The figures 42 zooms in on the right portion (x = 290 to 380) of figure 41 and shows the

strain of the atoms in two quantum dots. Gray circles represent gallium atoms. Yellow circles

represent indium atoms. The color of an atom darkens as the average distance between the atom

and its neighbors increases. Atoms under compression have darker color. The strain is higher for

atoms located in the middle of the quantum dot and near the edge-substrate interface. The strain

is relaxed at the two sides on top of a quantum dot. Also, neither dislocation nor empty atom

spots were observed in the body of a quantum dot.

Figure 39: Simulated island growth after 0.28 monolayer of indium had been deposited.

Figure 40: Simulated island growth after 1.13 monolayer of indium had been deposited.

Figure 41: Simulated island growth after 1.7 monolayer of indium had been deposited.

Figure 42: Simulated strain distribution of island.

Page 66: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

59

To investigate the role of surface diffusion in the formation of quantum dots, the diffusion

barrier was increased by increasing UIn to 1.55eV resulting in a slight decrease in the mobility of

surface atoms. The simulation was run for the same set of parameters except for a slight change

in U0.

eVUUU

eVUeVU

InGaInter

In

Ga

96.1

55.15.2

==

==

Figure 43, 44, and 45 show the surface configuration after 0.28, 1.13, and 1.7

monolayers of indium atoms had been deposited. The islanding effect was not as dominate when

surface diffusion is decreased. The island width was noticeably wider than that of the previous

simulation setting. This suggests that increasing atom mobility would suppress the tendency of

islanding and lead to smaller quantum dot size.

Figure 43: Simulated island growth after 0.28 monolayer of indium had been deposited.

Figure 44: Simulated island growth after 1.3 monolayer of indium had been deposited.

Figure 45: Simulated island growth after 1.7 monolayer of indium had been deposited.

Page 67: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

60

To further investigate the surface diffusion issue, simulations were performed for the

same set of parameters except for a significant change in UIn.

eVUUU

eVUeVU

InGaInter

In

Ga

94.1

5.25.1

==

==

The indium-gallium interaction stayed strong, but the indium-indium interaction had been

increased by 1eV. This significantly increased the diffusion barrier of indium. Figure 46 and 47

shows the film morphology after deposition of 4 monolayers and 6 monolayers, respectively. The

surfaces were rough, but there were no indications of islanding. The formation of quantum dot

was suppressed by the increased diffusion barrier.

Figure 46: Simulated rough layer-by-layer after 4 monolayer of indium had been deposited.

Figure 47: Simulated rough layer-by-layer growth after 6 monolayer of indium had been deposited.

Page 68: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

61

6.0 CONCLUSIONS

From the main three sets of growths conducted, a generalized idea can be reached

regarding the effect of bismuth surfactants on the growth of self-assembled indium arsenide

(InAs) quantum dots. First, bismuth fails to affect the critical thickness, which is the point when

the compressively strained 2D InAs layers collapse into 3D islands in an effort to reduce the

strain effect and minimize the surface energy. The critical thickness, based on a growth rate of 1

monolayer in 50 seconds is approximately 1.5 monolayers. Follow up growths were conducted

whereby the arsenic flux was decreased by about 10 times and the bismuth flux increased by an

order of magnitude (corresponding to a bismuth source temperature of 700°C) during the

deposition of InAs layers. Even such a high bismuth to arsenic flux ratio failed to warrant a

significant change in critical thickness. The most likely explanation is that the effect of the strained

layers far outweighs bismuth’s effect of reducing the surface energy and as a result bismuth fails

to affect the imminence of strain relaxation.

Once strain relaxation does occur, the data suggests that bismuth influences the initial

onset of dot formation. Quantum dots forming under the influence of bismuth display a smaller

average size as well as a more uniform size distribution. However, as the InAs deposition is

extended, bismuth aids in the rapid size increase of the dots but at the same time helps to

maintain dot size uniformity. As such, dots grown past the onset of formation tend to be larger in

size but more uniform than dots grown without bismuth. The reasoning is unclear as to why

bismuth assisted dots are smaller just after onset yet much bigger after more material is

deposited. The possibility that an experimental discrepancy exists cannot be discounted,

especially with regards to the data collected just after onset. This is a possibility since the

average heights, even though two to one in ratio, are still relatively small in difference

(approximately 3.5 nm).

Alternatively, the much larger bismuth-assisted dots appear to have issues as well. First

off, how is it possible for such a large size discrepancy to exist if the dot density in both samples

is approximately the same? The only explanation would be that much more material was

Page 69: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

62

deposited in the bismuth-assisted sample. Granted that the monitoring ion gauge was non-

functional during the project and with that a means of measuring the flux. However, it is doubtful

that sources set to the same temperature in both growths would yield very different flux rates but

not impossible. The results obtained from PL appear to support the data since a redshift of

approximately 150 nm occurs for the peak of the bismuth-assisted sample. Such a large redshift

would mean that the dot sizes are rather different. Since this occurs for bismuth in a completely

different set of growths where the deposition time was exactly identical, this eliminates the

possibility that the few seconds of overgrowth due to the shutter mishap was the reason for the

much larger dots. In addition, since the larger dots both occur during bismuth assisted growth,

this reduces the probability that an inconsistent flux is affecting the growth rate.

One possible explanation for the much larger dots is that bismuth might actually be

incorporating into the InAs quantum dots to form InAs1-xBix where x is some percentage. The

incorporation of bismuth might be responsible for the added material that allows the dots to grow

larger faster since bismuth is a much larger atom with a larger lattice constant. Alternatively,

bismuth might not incorporate but instead deplete the wetting layer and channel it towards

boosting dot size. Another theory involves the alteration of the dot shape. Bismuth might influence

the shape of the dot by reducing the base diameter and thus providing sufficient material for

higher, thinner dots.

An off-lattice adatom kinetic Monte Carlo simulation was developed to study

heteroepitaxial growth. The simulation uses the Lennard-Jones potential to calculate the

equilibrium position and the hopping probability of atoms. The simulation program was

implemented using the C language. Most of the computation time was spent on minimizing a 72-

dimensional energy function. It had been shown that the simulation is capable of predicting

atomic configurations such as dislocation, vacancy, and film bending.

For a system with 7% lattice mismatched, spontaneous islanding was predicted by a set of

parameters found by trial-and-error. Although the critical thickness measured experimentally

could not be reproduced, the islands were nevertheless quantum dots. The simulation predicted

Page 70: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

63

that, in a quantum dot, atoms are highly strained at the island edge-substrate interface. Atoms

located at the center of the island were slightly strained. Strain is relaxed on both sides on the

top. No dislocation was observed in a quantum dot.

Simulation showed that the islanding tendency increases for higher surface diffusion rate.

Spontaneous islanding was observed for a simulation with high diffusion rate. A slightly lower

diffusion rate yielded islands that are wider and shorter in height. An extremely rough surface,

instead of islands, was predicted for an extremely low diffusion rate. This result suggests that

surface diffusion might be the limiting factor in island growth. Even when islanding is favored in

terms of thermodynamics, islanding might not occur for slow surface diffusion rate. The atoms are

not moving around quickly enough to organize themselves into a configuration with the least

energy.

Page 71: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

64

7.0 RECOMMENDATIONS

7.1 RHEED

There are several courses of action which would enhance the information that could be

gained from observing a RHEED intensity plot. First, it may be beneficial to locate the spectral

spot on the video and track that spot throughout the growth. The spectral spot is the spot at

which the electron beam of the RHEED gun is not refracting, but rather, reflecting off of the

surface (i.e. obeying Snell's Law). As material is being deposited on the substrate, it may be

interesting to see how the relative intensity changes with respect to another point on the

substrate.

Second, one can see from the plot when the indium shutter closes, the intensity

decreases sharply; however, the spot on the video still shows approximately the same brightness.

Therefore, to completely characterize the growth, it will be necessary to be able to track the spot

after the shutter closes. Since the shift occurs only once (i.e. the spot will only move once) and

over only a few frames of the video, a relatively simple algorithm can be implemented to perform

the tracking of the spot. The suspected result once tracking of the spot is possible is that the

intensity will be continuous (minus the frames with the shutter closing) and will saturate a level

slightly higher than that of the onset of the dots.

Third, it would be very helpful to have the deposition rate available such that the x-axis on

the plot can be converted to monolayers. This is helpful in determining when the onset of the

dots occur. In Thomas Pinnington's thesis, it states that the critical thickness of the wetting layer

is 1.6ML. With this information, it will be possible to correlate the data collected from the videos

and plots with those found in other similar experiments.

Fourth, by keeping track of more spots and generating more plots, it will be possible to

further confirm the results obtained in the previous sections. As with any research based project,

the more evidence one has of their findings is always beneficial.

Page 72: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

65

7.2 Light Scattering

Light scattering is an in-situ monitoring technique which can be used to obtain

quantitative surface morphology information which is consistent with atomic force microscope.

The major advantage that light scattering has over the AFM is that it can be used in real-time

monitoring. It also has an advantage over RHEED because it allows for quantitative information

rather than just whether the diffraction pattern is streaky or spotty. The difference of the RHEED

output between the onset of dot growth and the presence of larger than desired dots is not always

discernible. This is due to the subjective settings of the brightness and contrast of the CCD

camera which are altered to obtain the optimal image for each growth. Needless to say, different

brightness settings may lead one to decide on a different time corresponding to the onset of

quantum dot formation. Being able to use this monitoring technique would have proved most

useful in achieving smaller quantum dots because

Page 73: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

66

7.3 Growths

In hindsight, an MBE related project might not be suitable for a 4 month project. True, the

knowledge and experience gained is invaluable, but with such a complicated system comprised

of a variety of parts, the risk of breaking down is always high. With that usually come long

protracted delays, which is less than ideally accommodated by the 4 month time frame. In fact, it

was not until the middle of November that the first growth was conducted, 2 and a half months

into the project.

As such, in order to confirm the results collected thus far, it is recommended that

additional growths be conducted, some of which should be repeats of the growths already

performed. Specifically, the influence of bismuth on the onset of dot formation should be

reexamined to determine if bismuth actually dampens the initial formation of dots such that the

dot sizes are smaller. If this is the case, then it would be interesting to try to locate the transition

point at which the effect of bismuth switches to that of a catalyst with respect to the dot height

increase.

More importantly, the reason for the startling difference in dot sizes with and without

bismuth grown past the onset should be sought out: specifically, the mechanism which bismuth

employs in aiding the increase in dot size. More advanced analysis techniques might prove useful

such as a Transmission Electron Microscope (TEM) and X-ray diffraction for better resolution.

Among the features to be studied includes if bismuth does incorporate and the effect on the

wetting layer once the dots start growing. It is possible that if bismuth aids dot growth while

depleting the wetting layer, then the growth would no longer be of Stranski-Krastanov mode but

Volmer-Weber. The absence of a wetting layer would be advantageous, especially for light

emission purposes because less energy would be lost to wetting layer emissions. This should be

studied by conducting more PL measurements.

More on optical emission, the bismuth effect of shifting the peak wavelength should be

correlated to the dot size. At some point, once a dot becomes too large, it dislocates and loses its

optical emission efficiency. As a result, there exists a maximum wavelength at which dots can

Page 74: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

67

emit reliably. However, bismuth could prove useful in its development of large uniform dots, which

might have a higher tolerance for such dislocations. As a result, the optical emission spectrum

might be pushed closer towards the 1.35 micron and 1.5 micron wavelengths, which are attractive

from a commercial standpoint.

Page 75: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

68

7.4 Simulation

The purpose of the growth simulation was to found simulation parameters that reproduce

the experimental results and to gain insights about the growth from those parameters. The term

U0 in the Lennard-Jones potential is determined by trial-and-error.

Although islanding was predicted by the simulation, the critical thickness of 1.6 mono-

layers couldn't be reproduced. A more accurate method could be used to calculate Max(Ui) in

Equation ~ in Section ~. Max(Ui) was approximated as a fraction of Min(Ui) so the simulation does

not know the exact activation energy of an atom. Ui is the sum of potential energy contributed by

atoms within a 3-atom radius, so Max(Ui) is also affected by the same set of atoms. The critical

thickness observed in the experiment was 1.6 mono-layers, and this thickness is shorter than the

3-atom radius. Therefore, the approximation of Max(Ui) might have ignored some important

absorbate-substrate interactions. Implementing a routine to calculate Max(Ui) might enable the

simulation to predict critical thickness.

Page 76: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

69

8.0 REFERENCES

1) TH Pinnington, “Surface morphology dynamics in strained-layer Epitaxy”, PhD Thesis,

1999.

2) BN Zvonkov, IA Karpovich, NV Baidus, DO Filatov, SV Morozov, Yu Yu Gushina,

“Surfactant effect of bismuth in the MOVPE growth of the InAs quantum dots on GaAs”,

Nanotechnology 11(2000) 221-226

3) S Fafard, ZR Wasilewski, Cni Allen, D Picard, M Spanner, JP McCaffrey, PG Riva,

”Manipulating the energy levels of semiconductor quantum dots”, Physical Review B, Vol

59, No 23, 1999.

4) F. Much, B. Biehl, “Simulation of wetting-layer and island formation in heteroepitaxial

growth”, Europhysics Letters, Vol 63, No 1, 2003.

5) Numerical Method in C, Cambridge University Press (Cambridge), 1997

Page 77: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

70

9.0 APPENDICES

9.1 Matlab Photoluminescence Plotting Script

%**** this file plots the PL spectrum ****% %**** load contents from file ****% data = load('R1422__3lp_1'); dataPoints = max(size(data)); y = data(:,1)'; x = data(:,2)'; %**** prepare plot ****% fontsize = 12; figure(1); h(1) = axes('Position', [0.1 0.1 0.845 0.845], 'FontSize', fontsize, 'FontName','arial'); set(gcf, 'color', 'w'); set(gca, 'box', 'on'); hold on %**** change x-axis units ****% h = 6.626e-34; % planck's constant J.s c = 3.0e8; % speed of light m/s x = 1e-9*x; % convert to nm eV = 1.602e-19; % convert from joules to eV d_lambda = 1.06e-9; for j=1:dataPoints, if j==1, d_Energy(j) = 0; Energy(j) = h*c/x(j); Energy(j) = Energy(j)/eV; else d_Energy(j) = h*c*d_lambda/x(j)^2; d_Energy(j) = d_Energy(j)/eV; Energy(j) = Energy(j-1) - d_Energy(j); end end %**** plot data points ****% for i=1:dataPoints, plot(Energy(i),y(i)); end xlabel('energy (eV)', 'FontSize', fontsize, 'FontName', 'arial', 'FontWeight', 'Bold'); ylabel('intensity (arbitrary units)', 'FontSize', fontsize, 'FontName', 'arial', 'FontWeight', 'Bold');

Page 78: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

71

9.2 Matlab RHEED Video Analysis Script

% this file takes a single 10x10 spot throughout the movie and keeps track % of the intensity. intensitySum = 0; maxIntensity = 0; squareSize = 10; chooseFile = input('choose the file to analyze: 1=nov20noBi, 2=nov20Bi, 3=dec22noBi, 4=dec22Bi, 5=jan10noBi, 6=jan10Bi :'); if chooseFile == 1, info = aviread('nov20-noBi-redo-temp'); % filename of the avi numberOfFrames = 453; % number of frames in the avi xCoord = 356; % x-coordinate of the upper left hand corner of box yCoord = 275; % y-coordinate of the upper left hand corner of box framesPerSecond = 4; elseif chooseFile == 2, info = aviread('nov20-Bi-temp'); numberOfFrames = 552; xCoord = 332; yCoord = 244; framesPerSecond = 4; elseif chooseFile == 3, info = aviread('dec22-noBi-temp'); numberOfFrames = 608; xCoord = 302; yCoord = 370; framesPerSecond = 5; elseif chooseFile == 4, info = aviread('dec22-Bi-temp'); numberOfFrames = 844; xCoord = 330; yCoord = 350; framesPerSecond = 5; elseif chooseFile == 5, info = aviread('jan10-noBicap-temp'); numberOfFrames = 652; xCoord = 340; yCoord = 263; framesPerSecond = 5; elseif chooseFile == 6, info = aviread('jan10-Bicap-temp'); numberOfFrames = 556; xCoord = 349; yCoord = 311; framesPerSecond = 5; end

Page 79: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

72

intensityArray = zeros(1,numberOfFrames); % array to hold the intensity sum of each frame xPlot = 1:1:numberOfFrames; % the x-axis of the plot, y-axis is the intensity sum % the following loop iterates through specified area in each of frames. a % running total of the intensity is kept and stored in an array to be % plotted later. for frameIndex = 1 : numberOfFrames for x = xCoord : xCoord + squareSize for y = yCoord : yCoord + squareSize intensitySum = intensitySum + double(info(frameIndex).cdata(x,y)); end end if intensitySum > maxIntensity, maxIntensity = intensitySum; end intensityArray(frameIndex) = intensitySum; intensitySum = 0; end xPlot = xPlot/framesPerSecond; intensityArray = intensityArray/maxIntensity; plot1 = plot(xPlot, intensityArray); xlabel('Time (s)', 'FontSize', 10, 'FontName', 'arial', 'FontWeight', 'bold'); ylabel('Relative Intensity (arbitrary units)', 'FontSize', 10, 'FontName', 'arial', 'FontWeight', 'bold'); axis([0.0 140.0 0.1 1.0]); set(gca, 'XTick', 0:10.0:140);

Page 80: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

73

9.3 MATLAB Script for Analysis of Quantum Dot Height Distribution

% find the all the local maxima in the AFM picture % units are in picometers, i believe clear all; cellz = {['R1417B00.ASC'] ['R1417C05.ASC'] ['R1417C09.ASC'] ['R1417C11.ASC'] ['R1418B01.ASC'] ['R1418B02.ASC'] ['R1411.ASC'] ['R1410.ASC']}; for zz = 1:max(size(cellz)) filename = cellz{1,zz}; M = load(filename); length = 50; %temp % M = zeros(length,length); % for i = 1:length % for j = 1:length % M(i,j)=D(i,j); % end % end %histogram % R = reshape(M,1,[]); % figure(1);hist(R); %filtering F = fspecial('disk',2); M = imfilter(M,F); %Find peaks and surrounding DC levels [N1,N2] = size(M); [Fx,Fy] = gradient(M); img = cell(N1,N2); count = 1; store = 0; for i = 1:N1-2 for j = 1:N2-2 if M(i+1,j+1) >= M(i,j) & M(i+1,j+1) >= M(i+1,j) & M(i+1,j+1) >= M(i+2,j) & M(i+1,j+1) >= M(i,j+1) & M(i+1,j+1) >= M(i+2,j+1) & M(i+1,j+1) >= M(i,j+2) & M(i+1,j+1) >= M(i+1,j+2) & M(i+1,j+1) >= M(i+2,j+2) if M(i+1,j+1) > 1000 %store(count) = M(i+1,j+1); u = i+1; u1 = i+1; u2 = i+1; v = j+1; v1 = j+1; v2 = j+1; while Fy(u1-1,v) >= 0 & u1-1 ~= 1 ; u1 = u1-1; end; while Fy(u2,v) <= 0 & u2 ~= N1 ; u2 = u2+1; end; while Fx(u,v1-1) >= 0 & v1-1 ~= 1 ; v1 = v1-1; end; while Fx(u,v2) <= 0 & v2 ~= N2 ; v2 = v2+1; end; img(i+1,j+1) = {[0 M(u1-1,v) 0; M(u,v1-1) M(i+1,j+1) M(u,v2); 0 M(u2,v) 0]}; %count = count + 1;

Page 81: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

74

end end end end %Measure peak height count = 1; store = 0; img2 = zeros(N1,N2); for i =1:N1 for j =1:N2 if sum(img{i,j}); img2(i,j) = img{i,j}(2,2) - min(min(img{i,j})); store(count) = img2(i,j); count = count + 1; end end end cellz{2,zz} = img; cellz{3,zz} = img2; cellz{4,zz} = store; cellz{5,zz} = count; cellz{6,zz} = mean(store); cellz{7,zz} = std(store); end save('results','cellz'); % figure(1);contour(M) % figure(2);contour(img) % figure(3);surfl(M);shading interp;colormap copper; % mean(store) % std(store)

Page 82: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

75

9.4 Monte Carlo Simulation Code

#include "heteroepitaxy.h" #include "visualArray.h" int main() { InitializeArrays(); InitializeSimulation(); FILE* stagelog = fopen("StageLog1", "w"); bDepositionType = 1; while(lDeposition < MAX_X * N_SUBSTRATE_LAYER) { OneStep(); } fprintf(stagelog, "%i of type %i atom deposited. %i\n", lDeposition, bDepositionType,lStepCompleted); fclose(stagelog); stagelog = fopen("StageLog2","w"); double dTime1 = dRealTime; dTotalRate -= dFluxRate; dFluxRate = 0; while(dRealTime < dTime1+ANNEAL_TIME1) { OneStep(); } fprintf(stagelog, "Finished annealing. %i\n", lStepCompleted); fclose(stagelog); stagelog = fopen("StageLog3","w"); bDepositionType = 2; dFluxRate = FLUX*MAX_X; dTotalRate += dFluxRate; while(lDeposition < MAX_X * (N_ABSORBATE_LAYER+N_SUBSTRATE_LAYER) ) { OneStep(); } fprintf(stagelog, "%i of type %i atom deposited. %i\n", lDeposition-MAX_X * N_SUBSTRATE_LAYER, bDepositionType, lStepCompleted); fclose(stagelog);

Page 83: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

76

stagelog = fopen("StageLog4","w"); dTotalRate -= dFluxRate; dFluxRate = 0; dTime1 = dRealTime; while(dRealTime < dTime1+ANNEAL_TIME2) { OneStep(); } fprintf(stagelog, "Done. %i\n", lStepCompleted); fclose(stagelog); arrayToFile(dppPosX, dppPosY, bppType, lStepCompleted, MAX_X, MAX_Y); fprintf(realtimefile, "%i %e\n", lStepCompleted, dRealTime); long a = lStepCompleted; stagelog = fopen("StageLog5","w"); while(lStepCompleted-a < 100000) { OneStep(); } fprintf(stagelog, "Annealed. %i\n", lStepCompleted); fclose(stagelog); arrayToFile(dppPosX, dppPosY, bppType, lStepCompleted, MAX_X, MAX_Y); fprintf(realtimefile, "%i %e\n", lStepCompleted, dRealTime); FreeMemory(); return 0; }

#ifndef HETEROEPITAXY #define HETEROEPITAXY #include <iostream.h> #include <stdio.h> #include <math.h> #include <time.h> #include <stdlib.h> //minimization procedures //#include "minimization.h" #define BYTE unsigned char // For the Ander's random number generator. #define IA 16807 #define IM 2147483647 #define AM (1.0/IM) #define IQ 127773 #define IR 2836 #define NTAB 32 #define NDIV (1+(IM-1)/NTAB) #define EPS 1.2e-7

Page 84: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

77

#define RNMX (1.0-EPS) #define jflone 0x3f800000 #define jflmsk 0x007fffff long lDum; //Simulation parameters #define MAX_X 400 #define MAX_Y 100 #define FLUX 0.02 #define N_SUBSTRATE_LAYER 1 #define N_ABSORBATE_LAYER 3 #define ANNEAL_TIME1 1200 #define ANNEAL_TIME2 1200 #define ATTEMPT_FREQUENCY 1e12 #define BOLTZMANN_CONST 8.617342e-5 #define TEMPERATURE 723.15 #define TRAN_BIND_RATIO 1.6/2.3 #define DATA_INTERVAL 10000 #define TOO_SHORT 1.25 long lStepCompleted; long lDeposition; BYTE bDepositionType; double dRealTime; //Material Properties #define U0_SUB 1.6 #define SIGMA_SUB 0.8908987 #define U0_ADA 2.0 #define SIGMA_ADA 0.95326161 double d4U0byKT_Sub, d4U0byKT_Ada, d4U0byKT_Int; double dTranEnergySub, dTranEnergyAda, dTranEnergyInt; double dSigma6_Sub, dSigma12_Sub, dSigma6_Ada, dSigma12_Ada, dSigma6_Int, dSigma12_Int; //height of a column long *lpHeight; //absolute position of the atoms double *dpPosX, **dppPosX; double *dpPosY, **dppPosY; //way out from the atom site BYTE *bpWayOut, **bppWayOut; BYTE *bpNWayOut, **bppNWayOut; BYTE *bpType, **bppType; //list of movable atoms long *lpIndexX, **lppIndexX; long *lpIndexY, **lppIndexY; double *dpRate, **dppRate; long *lpListLen; double *dpGroupRate; //cross references

Page 85: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

78

long *lpListIndex, **lppListIndex; long *lpGrpIndex, **lppGrpIndex; //Rate stuff double dFluxRate; double dTotalRate; double dRand; //Memory stuffs void InitializeArrays(); void FreeMemory(); //Major simulation steps void InitializeSimulation(); void OneStep(); //Monte Carlo steps void Deposition(); //deposit an adatom int Hop(long, long);//hop an adatom //Actions void AddAtom(long, long, BYTE); //insert an atom to simulation void RemoveAtom(long, long);//remove an atom from simulation void UpdateSite(long, long);//Update Neighbor information around a site //Neighbor Stuff BYTE GetNeighbors(long, long, BYTE&, BYTE&, BYTE&); //Get neighbor information of an atom void TranslateWayOut(long&, long&, BYTE); //Decode binary code generated by the above function //Energetic Stuff int MinConfigEnergy(long,long); //Energy minimization for atoms in 3-atom radius double MinEnergy(long, long); //Calculate the bonding energy int MaxEnergy(long, long, double&); //NOT IMPLEMENTED double SingleEnergyTerm(long lX1, long lY1, long lX2, long lY2);//Calculate energy of a pair of atom int UpdateRate(long, long); //Update Hopping rate in 3-atom radius //Utilities void Lattice2Array(long, long); //generate a 1D array of (x1, y1, x2, y2,... xn, yn) for minimzaiont int Array2Lattice(long, long); //put the 1D array back to the lattice long Mod(long, long); //works with negative number float Rand(long *); //Ander's random number generator void PrintGrid(); void PrintList(); void DisplayList(); const double dR3By2 = sqrt((double)(3)) * (double)(0.5); int CheckSite(long, long);

Page 86: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

79

FILE *logfile; FILE *realtimefile; #endif

#include "heteroepitaxy.h" #include "minimization.h" #include "visualArray.h" void OneStep() { double dRandRate = dTotalRate * Rand(&lDum); double dCummulatedBinRate = 0; double dCummulatedRate = 0; int iDep = 1; /**** declare timer variables ****/ time_t aTime, bTime, nowTime; //fprintf(logfile, "%1.5f/%1.5f\n %1.5f %1.5f %1.5f %1.5f %1.5f\n%1.5f\n", dRandRate, dTotalRate, dpGroupRate[0],dpGroupRate[1], dpGroupRate[2], dpGroupRate[3], dpGroupRate[4], dFluxRate); /**** start timer ****/ time (&aTime); if(lpListLen[0]==0) //Hop atoms with 1 neighbor immediately, or else { for(int ii=1 ; ii<5 ; ii++) { dCummulatedRate = dCummulatedBinRate; dCummulatedBinRate += dpGroupRate[ii]; if(dCummulatedBinRate > dRandRate) { for(int jj=0 ; jj<lpListLen[ii] ; jj++) { dCummulatedRate += dppRate[ii][jj]; if(dCummulatedRate > dRandRate) { if((Hop(lppIndexX[ii][jj] , lppIndexY[ii][jj])==0)) { break; } }//end if }//end for iDep = 0; break; }//end if }//end for if(iDep) { Deposition(); lDeposition++;

Page 87: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

80

} } else { Hop(lppIndexX[0][0], lppIndexY[0][0]); return; } dRealTime -= log(Rand(&lDum)) / dTotalRate; fprintf(logfile, "Finished step %i\n", lStepCompleted); PrintList(); DisplayList(); lStepCompleted++; /**** stop timer, write to file (simulationTimes) ****/ nowTime = time(&bTime) - aTime; FILE* timeFile = fopen("simulationTimes", "a"); fprintf(timeFile, "iteration %d took %d seconds to calculate.\n", lStepCompleted, nowTime); fclose(timeFile); if( ( (int)lStepCompleted % DATA_INTERVAL)==0) { /**** write to file (iteration:run#) ****/ arrayToFile(dppPosX, dppPosY, bppType, lStepCompleted, MAX_X, MAX_Y); fprintf(realtimefile, "%i %e\n", lStepCompleted, dRealTime); } } int Hop(long lX0, long lY0) { fprintf(logfile, ">> Hopping %i,%i\n", lX0, lY0); BYTE bNWayOut,bNWayOut0; BYTE bWayOut, bWayOut0;; BYTE bTriedWay = 0; BYTE bNeighbors; BYTE bPreviousPointer=0; BYTE bBitPointer1 = 1; BYTE bBitPointer2 = 1; BYTE bDirectionFound=0; BYTE bType = bppType[lX0][lY0]; long lX, lY; int iCount = 0; int iLoop = 1; int iTry = 0; double dRand, dProbPartition, dCumulatedProb; bNWayOut0 = bppNWayOut[lX0][lY0] - iTry; bWayOut0 = (bppWayOut[lX0][lY0] & ~bTriedWay);

Page 88: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

81

RemoveAtom(lX0,lY0); while(iLoop) { if(iTry==bNWayOut0) { AddAtom(lX0,lY0,bType); return 1; fprintf(logfile, ">> Failed to hop %i,%i", lX0, lY0); } bBitPointer1 = 1; bBitPointer2 = 1; bNWayOut = bNWayOut0 - iTry; bWayOut = (bWayOut0 & ~bTriedWay); dRand = Rand(&lDum); dProbPartition = 1./((double)(bNWayOut)); dCumulatedProb = 0; for(int ii=0 ; ii<bNWayOut ; ii++) { dCumulatedProb += dProbPartition; while( (bBitPointer1 & bWayOut)==0 ) { bBitPointer1 = bBitPointer1 << 1; } if(dRand < dCumulatedProb) { bBitPointer2 = bBitPointer1; bDirectionFound = 1; break; } bBitPointer1 = bBitPointer1 << 1; } if (bDirectionFound==0) fprintf(logfile, "XX Direction not found\n"); //fprintf(logfile, " >>dRand = %1.5f bNWayOut %i dProbPartition %1.5f\n", dRand, bNWayOut, dProbPartition); //fprintf(logfile, " >>bWayOut %i bBitPointer1 %i bBitPointer2 %i\n", bWayOut, bBitPointer1, bBitPointer2); iTry++; lX = lX0; lY = lY0; TranslateWayOut(lX, lY, bBitPointer2); bTriedWay = bTriedWay | bBitPointer2; if( (2 > GetNeighbors(lX, lY, bNeighbors, bWayOut, bNWayOut)) || (CheckSite(lX,lY)==1) ) { if(bBitPointer2>7) { bPreviousPointer = bBitPointer2/8; } else { bPreviousPointer = bBitPointer2*8;

Page 89: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

82

} bWayOut = (~bPreviousPointer)&bWayOut; bBitPointer1=1; bBitPointer2=1; dRand = Rand(&lDum); while((bBitPointer1 & bWayOut)==0) { bBitPointer1 = bBitPointer1<<1; } bBitPointer2 = bBitPointer1; TranslateWayOut(lX, lY, bBitPointer2); if( (1<GetNeighbors(lX, lY, bNeighbors, bWayOut, bNWayOut)) && (CheckSite(lX,lY)==0) ) { iLoop = 0; } } else { iLoop = 0; } } AddAtom(lX,lY,bType); MinConfigEnergy(lX,lY); UpdateRate(lX,lY); fprintf(logfile, ">> Hopped to %i,%i\n\n", lX, lY); return 0; } BYTE GetNeighbors(long lX, long lY, BYTE& bNeighborsList, BYTE& bWayOut, BYTE& bNWayOut) { BYTE bNNeighbors = 0; bNeighborsList = 0; bNWayOut = 0; bWayOut = 0; //Left Neighbor if(bppType[Mod(lX-1,MAX_X)][lY]) { bNNeighbors++; bNeighborsList += 1; bWayOut = bWayOut | 34; } //Lower Neighbors if(lY==0) { bNNeighbors++; bNNeighbors++; bNeighborsList += 6; bWayOut = bWayOut | 9; } else

Page 90: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

83

{ if(bppType[Mod(lX-1+lY%2,MAX_X)][lY-1]) { bNNeighbors++; bNeighborsList += 2; bWayOut = bWayOut | 5; } if(bppType[Mod(lX+lY%2,MAX_X)][lY-1]) { bNNeighbors++; bNeighborsList += 4; bWayOut = bWayOut | 10; } } //Right Neighbor if(bppType[(lX+1)%MAX_X][lY]) { bNNeighbors++; bNeighborsList += 8; bWayOut = bWayOut | 20; } //Upper Right Neighbor if(bppType[(lX+lY%2)%MAX_X][lY+1]) { bNNeighbors++; bNeighborsList += 16; bWayOut = bWayOut | 40; } //Upper Left Neighbor if(bppType[Mod(lX-1+lY%2,MAX_X)][lY+1]) { bNNeighbors++; bNeighborsList += 32; bWayOut = bWayOut | 17; } bWayOut = bWayOut & (~bNeighborsList); if ((bWayOut & 1) > 0) {bNWayOut++;} if ((bWayOut & 2) > 0) {bNWayOut++;} if ((bWayOut & 4) > 0) {bNWayOut++;} if ((bWayOut & 8) > 0) {bNWayOut++;} if ((bWayOut & 16) >0) {bNWayOut++;} if ((bWayOut & 32) >0) {bNWayOut++;} return bNNeighbors; } void TranslateWayOut(long &lX, long &lY, BYTE bSingleWayOut) { switch(bSingleWayOut) { case 1: fprintf(logfile, ">> Way-out = left\n"); lX = Mod(lX-1,MAX_X); lY = lY;

Page 91: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

84

break; case 2: fprintf(logfile, ">> Way-out = lower-left\n"); lX = Mod(lX-1+lY%2,MAX_X); lY = lY-1; break; case 4: fprintf(logfile, ">> Way-out = lower-right\n"); lX = Mod(lX+lY%2,MAX_X); lY = lY-1; break; case 8: fprintf(logfile, ">> Way-out = right\n"); lX = Mod(lX+1,MAX_X); lY = lY; break; case 16: fprintf(logfile, ">> Way-out = upper-right\n"); lX = Mod(lX+lY%2,MAX_X); lY = lY+1; break; case 32: fprintf(logfile, ">> Way-out = upper-left\n"); lX = Mod(lX-1+lY%2,MAX_X); lY = lY+1; break; } fprintf(logfile, ">> %i,%i Chosen\n", lX, lY); } void InitializeArrays() { //list of movable atoms lpListIndex = (long *)malloc(sizeof(long)*MAX_X*MAX_Y); lppListIndex = (long **)malloc(sizeof(long*)*MAX_X); for (int ii=0 ; ii<MAX_X; ii++) { lppListIndex[ii] = lpListIndex + ii*MAX_Y; } lpGrpIndex = (long *)malloc(sizeof(long)*MAX_X*MAX_Y); lppGrpIndex = (long **)malloc(sizeof(long*)*MAX_X); for (int ii=0 ; ii<MAX_X; ii++) { lppGrpIndex[ii] = lpGrpIndex + ii*MAX_Y; for(int jj=0 ; jj<MAX_Y ; jj++) { lppGrpIndex[ii][jj] = -1; } } lpIndexX = (long *)malloc(sizeof(long)*MAX_Y*MAX_X*5); lppIndexX = (long **)malloc(sizeof(long*)*MAX_Y*MAX_X); for (int ii=0 ; ii<5; ii++) { lppIndexX[ii] = lpIndexX + ii*MAX_Y*MAX_X; } lpIndexY = (long *)malloc(sizeof(long)*MAX_Y*MAX_X*5);

Page 92: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

85

lppIndexY = (long **)malloc(sizeof(long*)*MAX_Y*MAX_X); for (int ii=0 ; ii<5; ii++) { lppIndexY[ii] = lpIndexY + ii*MAX_Y*MAX_X; } dpRate = (double *)malloc(sizeof(double)*MAX_Y*MAX_X*5); dppRate = (double **)malloc(sizeof(double*)*MAX_Y*MAX_X); for (int ii=0 ; ii<5; ii++) { dppRate[ii] = dpRate + ii*MAX_Y*MAX_X; for (int jj=0 ; jj<MAX_Y*MAX_X; jj++) { dppRate[ii][jj] = 0; } } lpListLen = (long *)malloc(sizeof(long)*5); dpGroupRate = (double *)malloc(sizeof(double)*5); for(int ii=0 ; ii<5 ; ii++) { lpListLen[ii] = 0; dpGroupRate[ii] = 0; } //height of column lpHeight = (long *)malloc(sizeof(long)*MAX_X); for (int ii=0 ; ii<MAX_X; ii++) { lpHeight[ii] = 0; } //Absolute Position Arrays dpPosX = (double *)malloc(sizeof(double)*MAX_X*MAX_Y); dppPosX = (double **)malloc(sizeof(double*)*MAX_X); for (int ii=0 ; ii<MAX_X; ii++) { dppPosX[ii] = dpPosX + ii*MAX_Y; } dpPosY = (double *)malloc(sizeof(double)*MAX_X*MAX_Y); dppPosY = (double **)malloc(sizeof(double*)*MAX_X); for (int ii=0 ; ii<MAX_X; ii++) { dppPosY[ii] = dpPosY + ii*MAX_Y; } for (int ii=0 ; ii<MAX_X; ii++) { for (int jj=0 ; jj<MAX_Y ; jj++) { dppPosY[ii][jj] = jj*dR3By2; dppPosX[ii][jj] = ii + (ii%2)*0.5; } } bpType = (BYTE *)malloc(sizeof(BYTE)*MAX_X*MAX_Y);

Page 93: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

86

bppType = (BYTE **)malloc(sizeof(BYTE*)*MAX_X); for (int ii=0 ; ii<MAX_X; ii++) { bppType[ii] = bpType + ii*MAX_Y; for (int jj=0 ; jj<MAX_Y ; jj++) { bppType[ii][jj] = 0; } } bpWayOut = (BYTE *)malloc(sizeof(BYTE)*MAX_X*MAX_Y); bppWayOut = (BYTE **)malloc(sizeof(BYTE*)*MAX_X); for (int ii=0 ; ii<MAX_X; ii++) { bppWayOut[ii] = bpWayOut + ii*MAX_Y; for (int jj=0 ; jj<MAX_Y ; jj++) { bppWayOut[ii][jj] = 0; } } bpNWayOut = (BYTE *)malloc(sizeof(BYTE)*MAX_X*MAX_Y); bppNWayOut = (BYTE **)malloc(sizeof(BYTE*)*MAX_X); for (int ii=0 ; ii<MAX_X; ii++) { bppNWayOut[ii] = bpNWayOut + ii*MAX_Y; for (int jj=0 ; jj<MAX_Y ; jj++) { bppNWayOut[ii][jj] = 0; } } fpVar_Min = (float*)malloc(sizeof(float) * MAX_X * MAX_Y); bpType_Min = (BYTE*)malloc(sizeof(BYTE) * MAX_X * MAX_Y); } void FreeMemory() { fclose(logfile); fclose(realtimefile); free(fpVar_Min); free(bpType_Min); free(dpPosX); free(dppPosX); free(dpPosY); free(dppPosY); free(bpType); free(bppType); free(bpWayOut); free(bpWayOut); free(bpNWayOut); free(bpNWayOut); free(lpIndexX);free(lppIndexX); free(lpIndexY);free(lppIndexY); free(dpRate); free(dppRate); free(dpGroupRate); free(lpListLen); free(lpHeight); free(lpListIndex); free(lppListIndex); free(lpGrpIndex); free(lpGrpIndex); }

Page 94: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

87

void InitializeSimulation() { dRealTime = 0; dTranEnergySub = 0; dTranEnergyAda = 0; dTranEnergyInt = 0; lDeposition = 0; double dSigmaInt = ((double)SIGMA_SUB + (double)SIGMA_ADA) / 2.; double dU0Int = sqrt((double)U0_SUB * (double)U0_ADA); dSigma6_Sub = pow((double)SIGMA_SUB, 6); dSigma12_Sub = pow((double)SIGMA_SUB, 12); dSigma6_Ada = pow((double)SIGMA_ADA, 6); dSigma12_Ada = pow((double)SIGMA_ADA, 12); dSigma6_Int = pow(dSigmaInt, 6); dSigma12_Int = pow(dSigmaInt, 12); d4U0byKT_Sub = 4 * (double)U0_SUB / BOLTZMANN_CONST / TEMPERATURE; d4U0byKT_Ada = 4 * (double)U0_ADA / BOLTZMANN_CONST / TEMPERATURE; d4U0byKT_Int = 4 * dU0Int / BOLTZMANN_CONST / TEMPERATURE; logfile = fopen("log","w"); realtimefile = fopen("RealTime","w"); lDum = -3; lStepCompleted = 0; for(int ii=0 ; ii<5 ; ii++) { lpListLen[ii] = 0; dpGroupRate[ii] = 0; } dFluxRate = (double)FLUX * MAX_X; dTotalRate = dFluxRate; for (int ii=0 ; ii<MAX_X; ii++) { lpHeight[ii] = 0; } } void Deposition() { BYTE bNNeighbors, bNeighbors, bNWayOut, bWayOut; BYTE bDum; BYTE bBitPointer1=1, bBitPointer2=1, bPreviousPointer=0; double dRand; long lX = (int)(floor(MAX_X * Rand(&lDum))) % MAX_X; long lY = 0; while(bppType[lX][lY]>0) { lY++; } fprintf(logfile, ">> Depositing at %i,%i\n", lX, lY);

Page 95: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

88

while(2 > GetNeighbors(lX, lY, bNeighbors, bWayOut, bNWayOut)) { bWayOut = (~bPreviousPointer)&bWayOut; bBitPointer1=1; bBitPointer2=1; dRand = Rand(&lDum); //fprintf(logfile, ">> Deposition Adjustment from %i,%i\n",lX, lY); //fprintf(logfile, " >>bNeighbors %i bWayOut %i bBitPointer1 %i\n", bNeighbors, bWayOut, bNWayOut); while((bBitPointer1 & bWayOut)==0) { bBitPointer1 = bBitPointer1<<1; } bBitPointer2 = bBitPointer1; if(bPreviousPointer==0) { if(Rand(&lDum)>0.5) { bBitPointer1 = bBitPointer1<<1; while((bBitPointer1 & bWayOut)==0) { bBitPointer1 = bBitPointer1<<1; } bBitPointer2 = bBitPointer1; bBitPointer1 = bBitPointer1<<1; } } if(bBitPointer2>7) { bPreviousPointer = bBitPointer2/8; } else { bPreviousPointer = bBitPointer2*8; } TranslateWayOut(lX, lY, bBitPointer2); } AddAtom(lX, lY, bDepositionType); MinConfigEnergy(lX,lY); UpdateRate(lX,lY); fprintf(logfile, ">> Deposited at %i,%i\n\n", lX, lY); } void AddAtom(long lX, long lY, BYTE bType) { fprintf(logfile, " >> Adding atom at %i,%i\n", lX, lY); dppPosY[lX][lY] = 0; if(lY>0) { dppPosY[lX][lY] = dppPosY[lX][lY-1]+dR3By2; } dppPosX[lX][lY] = lX + (lY%2)*0.5;

Page 96: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

89

bppType[lX][lY] = bType; if(bppType[lX][lY+1] == 0) { lpHeight[lX]++; } UpdateSite(lX , lY); UpdateSite(Mod((lX-1),MAX_X) , lY); UpdateSite(Mod((lX+1),MAX_X) , lY); UpdateSite(Mod((lX+lY%2),MAX_X) , lY+1); UpdateSite(Mod((lX+lY%2-1),MAX_X) , lY+1); if(lY>0) { UpdateSite(Mod((lX+lY%2),MAX_X) , lY-1); UpdateSite(Mod((lX+lY%2-1),MAX_X) , lY-1); } fprintf(logfile, " >> Added atom at %i,%i\n", lX, lY); //DisplayList(); } void RemoveAtom(long lX, long lY) { fprintf(logfile, " >> Removing atom %i,%i\n", lX, lY); //must have an atom to begin with and the atom has to go somewhere if( (bppType[lX][lY] != 0) && (bppNWayOut[lX][lY]>0)) { bppType[lX][lY] = 0; } UpdateSite(lX , lY); UpdateSite(Mod((lX-1),MAX_X) , lY); UpdateSite(Mod((lX+1),MAX_X) , lY); UpdateSite(Mod((lX+lY%2),MAX_X) , lY+1); UpdateSite(Mod((lX+lY%2-1),MAX_X) , lY+1); if(lY>0) { UpdateSite(Mod((lX+lY%2),MAX_X) , lY-1); UpdateSite(Mod((lX+lY%2-1),MAX_X) , lY-1); } fprintf(logfile, " >> Removed atom %i,%i\n", lX, lY); //DisplayList(); } void UpdateSite(long lX, long lY) { // fprintf(logfile, " >> Updating site %i,%i of type %i\n", lX, lY, bppType[lX][lY]); //DisplayList(); BYTE bNNeighbors, bNeighbors; long lList; double dRate=0; //remove from movable atom list long lGrp = lppGrpIndex[lX][lY];

Page 97: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

90

long lLen = lpListLen[lGrp]; if(lGrp>=0) { lList = lppListIndex[lX][lY]; if(lGrp!=0) { dRate = dppRate[lGrp][lList]; dpGroupRate[lGrp] -= dRate; dTotalRate -= dRate; } lppIndexX[lGrp][lList] = -3; lppIndexY[lGrp][lList] = -3; lppListIndex[lX][lY] = -3; lppGrpIndex[lX][lY] = -3; for(int ii=lList ; ii<lLen-1 ; ii++) { lppListIndex[lppIndexX[lGrp][ii+1]][lppIndexY[lGrp][ii+1]]--; dppRate[lGrp][ii] = dppRate[lGrp][ii+1]; lppIndexX[lGrp][ii] = lppIndexX[lGrp][ii+1]; lppIndexY[lGrp][ii] = lppIndexY[lGrp][ii+1]; } lpListLen[lGrp]--; } if(bppType[lX][lY] != 0) { bNNeighbors = GetNeighbors(lX, lY, bNeighbors, bppWayOut[lX][lY], bppNWayOut[lX][lY]); if(bNNeighbors==0) fprintf(logfile, "XX %i,%i has no neighbors\n", lX, lY); if(bNNeighbors==1) fprintf(logfile, "XX %i,%i has 1 neighbors\n", lX, lY); if( bNNeighbors == 1) { lList = lpListLen[0]; lppIndexX[0][lList] = lX; lppIndexY[0][lList] = lY; lppListIndex[lX][lY] = lList; lppGrpIndex[lX][lY] = 0; (lpListLen[0])++; } else if((bNNeighbors > 1)&&(bNNeighbors<6)) { lGrp = bNNeighbors - 1; lList = lpListLen[lGrp]; if(lList<0) fprintf(logfile, "XX %i,%i negative lList\n", lX, lY); dppRate[lGrp][lList] = dRate; dpGroupRate[lGrp] += dRate; dTotalRate += dRate; lppIndexX[lGrp][lList] = lX;

Page 98: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

91

lppIndexY[lGrp][lList] = lY; lppListIndex[lX][lY] = lList; lppGrpIndex[lX][lY] = lGrp; (lpListLen[lGrp])++; } else //6 neighbors or no neighbors { lppListIndex[lX][lY] = -2; lppGrpIndex[lX][lY] = -2; bppWayOut[lX][lY] = 0; bppNWayOut[lX][lY] = 0; } } else //at an empty spot { lppListIndex[lX][lY] = -2; lppGrpIndex[lX][lY] = -2; bppWayOut[lX][lY] = 0; bppNWayOut[lX][lY] = 0; } //fprintf(logfile, " >> After Update %i,%i %i %i\n", lX, lY, lppGrpIndex[lX][lY], lppListIndex[lX][lY]); //DisplayList(); } double MinEnergy(long lX, long lY) { //fprintf(logfile, " >> Calculating Energy for %i, %i\n", lX, lY); long lXIndex, lYIndex; int ii; double dOut=0; double dR2; BYTE bType = bppType[lX][lY]; double dPosX = dppPosX[lX][lY]; double dPosY = dppPosY[lX][lY]; double dPosX2; int iShiftOdd =lY%2; int iShiftEven=(lY+1)%2; char ch; if( bType == 0) { return dOut; } lYIndex = lY+3; for(ii=-2 ; ii<2 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); dPosX2 = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lXIndex > lX+ii+iShiftOdd) dPosX2 -= MAX_X; else dPosX2 += MAX_X; }

Page 99: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

92

dR2 = pow(dPosX - dPosX2 , 2) + pow(dPosY - dppPosY[lXIndex][lYIndex] , 2); if(bppType[lXIndex][lYIndex]) { if( bType == bppType[lXIndex][lYIndex] ) { if(bType == 2) { dOut += (d4U0byKT_Ada * ( dSigma12_Ada/pow(dR2,6) - dSigma6_Ada/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } } else { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } } }//for lYIndex = lY+2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); dPosX2 = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lXIndex > lX+ii) dPosX2 -= MAX_X; else dPosX2 += MAX_X; } dR2 = pow(dPosX - dPosX2 , 2) + pow(dPosY - dppPosY[lXIndex][lYIndex] , 2); if(bppType[lXIndex][lYIndex]) { if( bType == bppType[lXIndex][lYIndex] ) { if(bType == 2) { dOut += (d4U0byKT_Ada * ( dSigma12_Ada/pow(dR2,6) - dSigma6_Ada/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } } else { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) ));

Page 100: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

93

} } }//for lYIndex = lY+1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); dPosX2 = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lXIndex > lX+ii+iShiftOdd) dPosX2 -= MAX_X; else dPosX2 += MAX_X; } dR2 = pow(dPosX - dPosX2 , 2) + pow(dPosY - dppPosY[lXIndex][lYIndex] , 2); if(bppType[lXIndex][lYIndex]) { if( bType == bppType[lXIndex][lYIndex] ) { if(bType == 2) { dOut += (d4U0byKT_Ada * ( dSigma12_Ada/pow(dR2,6) - dSigma6_Ada/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } } else { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } } } //NOT for (lXIndex, lYIndex) = (0,0) lYIndex = lY; for(ii=-3 ; ii<0 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); dPosX2 = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lXIndex > lX+ii) dPosX2 -= MAX_X; else dPosX2 += MAX_X; } dR2 = pow(dPosX - dPosX2 , 2) + pow(dPosY - dppPosY[lXIndex][lYIndex] , 2); if(bppType[lXIndex][lYIndex]) { if( bType == bppType[lXIndex][lYIndex] ) { if(bType == 2) {

Page 101: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

94

dOut += (d4U0byKT_Ada * ( dSigma12_Ada/pow(dR2,6) - dSigma6_Ada/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } } else { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } } } for(ii=1 ; ii<4 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); dPosX2 = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lXIndex > lX+ii) dPosX2 -= MAX_X; else dPosX2 += MAX_X; } dR2 = pow(dPosX - dPosX2 , 2) + pow(dPosY - dppPosY[lXIndex][lYIndex] , 2); if(bppType[lXIndex][lYIndex]) { if( bType == bppType[lXIndex][lYIndex] ) { if(bType == 2) { dOut += (d4U0byKT_Ada * ( dSigma12_Ada/pow(dR2,6) - dSigma6_Ada/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } } else { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } } } if(lY>0) { lYIndex = lY-1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); dPosX2 = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd)

Page 102: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

95

{ if(lXIndex > lX+ii+iShiftOdd) dPosX2 -= MAX_X; else dPosX2 += MAX_X; } dR2 = pow(dPosX - dPosX2 , 2) + pow(dPosY - dppPosY[lXIndex][lYIndex] , 2); if(bppType[lXIndex][lYIndex]) { if( bType == bppType[lXIndex][lYIndex] ) { if(bType == 2) { dOut += (d4U0byKT_Ada * ( dSigma12_Ada/pow(dR2,6) - dSigma6_Ada/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } } else { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } } }//for } else { lYIndex = lY-1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = lX+ii+iShiftOdd; dR2 = pow(dPosX - (lXIndex + 0.5 * (double)(iShiftEven)) , 2) + pow(dPosY - (lYIndex*dR3By2) , 2); if(bType == 2) { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } }//for } if(lY>1) { lYIndex = lY-2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); dPosX2 = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii)

Page 103: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

96

{ if(lXIndex > lX+ii) dPosX2 -= MAX_X; else dPosX2 += MAX_X; } dR2 = pow(dPosX - dPosX2 , 2) + pow(dPosY - dppPosY[lXIndex][lYIndex] , 2); if(bppType[lXIndex][lYIndex]) { if( bType == bppType[lXIndex][lYIndex] ) { if(bType == 2) { dOut += (d4U0byKT_Ada * ( dSigma12_Ada/pow(dR2,6) - dSigma6_Ada/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } } else { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } } }//for } else { lYIndex = lY-2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = lX+ii; dR2 = pow(dPosX - (lXIndex + 0.5 * (float)(iShiftOdd)) , 2) + pow(dPosY - (lYIndex*dR3By2) , 2); if(bType == 2) { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } }//for } if(lY>2) { lYIndex = lY-3; for(ii=-2 ; ii<2 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); dPosX2 = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd)

Page 104: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

97

{ if(lXIndex > lX+ii+iShiftOdd) dPosX2 -= MAX_X; else dPosX2 += MAX_X; } dR2 = pow(dPosX - dPosX2, 2) + pow(dPosY - dppPosY[lXIndex][lYIndex] , 2); if(bppType[lXIndex][lYIndex]) { if( bType == bppType[lXIndex][lYIndex] ) { if(bType == 2) { dOut += (d4U0byKT_Ada * ( dSigma12_Ada/pow(dR2,6) - dSigma6_Ada/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } } else { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } } }//for } else { lYIndex = lY-3; for(ii=-2 ; ii<2 ; ii++) { lXIndex = lX+ii+iShiftOdd; dR2 = pow(dPosX - (lXIndex + 0.5 * (float)(iShiftEven)) , 2) + pow(dPosY - (lYIndex*dR3By2) , 2); if(bType == 2) { dOut += (d4U0byKT_Int * ( dSigma12_Int/pow(dR2,6) - dSigma6_Int/pow(dR2,3) )); } else { dOut += (d4U0byKT_Sub * ( dSigma12_Sub/pow(dR2,6) - dSigma6_Sub/pow(dR2,3) )); } }//for } fprintf(logfile," >> %i,%i Minimum energy calculated to be %e\n", lX, lY, dOut); if(dOut>0) { fprintf(logfile,"XX Positive Min Energy\n"); } return dOut;

Page 105: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

98

} int MinConfigEnergy(long lX, long lY) { fprintf(logfile, " >> Minimizing Config Energy around %i,%i\n", lX, lY); int iter, iErr = 0; float fMin; float fTol=1e-3; Lattice2Array(lX, lY); fprintf(logfile," >> Initial values: %5.5f\n ", E_Total_LJ(fpVar_Min)); for(int ii=0 ; ii<iN1_Min ; ii++) { fprintf(logfile, "%5.5f,%5.5f ", fpVar_Min[ii*2+1], fpVar_Min[ii*2+2]); } fprintf(logfile,"\n"); frprmn(fpVar_Min, 2*iN1_Min, fTol, &iter, &fMin, E_Total_LJ, Gra_E_Total_LJ); fprintf(logfile, " >> Final values: %5.5f\n ",fMin); for(int ii=0 ; ii<iN1_Min ; ii++) { fprintf(logfile,"%5.5f,%5.5f ", fpVar_Min[ii*2+1], fpVar_Min[ii*2+2]); } fprintf(logfile, "\n"); iErr = Array2Lattice(lX,lY); fprintf(logfile, " >> Finished minimization with iErr=%i\n",iErr); if(fMin>0) { char ch; fprintf(logfile, "XX Positive Minimized Energy\n"); } return iErr; } int MaxEnergy(long, long, double&) { return 0; } void Lattice2Array(long lX, long lY) { int ii; int iShiftEven = (lY+1)%2; int iShiftOdd = lY%2; long lXIndex, lYIndex; iN1_Min = 0; //inner ring lYIndex = lY+3;

Page 106: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

99

for(ii=-2 ; ii<2 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN1_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN1_Min*2+1] -= MAX_X; else fpVar_Min[iN1_Min*2+1] += MAX_X; } fpVar_Min[iN1_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN1_Min] = bppType[lXIndex][lYIndex]; iN1_Min++; } } lYIndex = lY+2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN1_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN1_Min*2+1] -= MAX_X; else fpVar_Min[iN1_Min*2+1] += MAX_X; } fpVar_Min[iN1_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN1_Min] = bppType[lXIndex][lYIndex]; iN1_Min++; } } lYIndex = lY+1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN1_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN1_Min*2+1] -= MAX_X; else fpVar_Min[iN1_Min*2+1] += MAX_X; } fpVar_Min[iN1_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN1_Min] = bppType[lXIndex][lYIndex]; iN1_Min++; } } lYIndex = lY; for(ii=-3 ; ii<4 ; ii++) { lXIndex = Mod(lX+ii,MAX_X);

Page 107: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

100

if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN1_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN1_Min*2+1] -= MAX_X; else fpVar_Min[iN1_Min*2+1] += MAX_X; } fpVar_Min[iN1_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN1_Min] = bppType[lXIndex][lYIndex]; iN1_Min++; } } iN2_Min = iN1_Min; if(lY>0) { lYIndex = lY-1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN1_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN1_Min*2+1] -= MAX_X; else fpVar_Min[iN1_Min*2+1] += MAX_X; } fpVar_Min[iN1_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN1_Min] = bppType[lXIndex][lYIndex]; iN1_Min++; } } iN2_Min = iN1_Min; } else { lYIndex = lY-1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = lX+ii+iShiftOdd; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftEven); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } } if(lY>1) { lYIndex = lY-2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex])

Page 108: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

101

{ fpVar_Min[iN1_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN1_Min*2+1] -= MAX_X; else fpVar_Min[iN1_Min*2+1] += MAX_X; } fpVar_Min[iN1_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN1_Min] = bppType[lXIndex][lYIndex]; iN1_Min++; } } iN2_Min = iN1_Min; } else { lYIndex = lY-2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = lX+ii; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftOdd); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } } if(lY>2) { lYIndex = lY-3; for(ii=-2 ; ii<2 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN1_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN1_Min*2+1] -= MAX_X; else fpVar_Min[iN1_Min*2+1] += MAX_X; } fpVar_Min[iN1_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN1_Min] = bppType[lXIndex][lYIndex]; iN1_Min++; } } iN2_Min = iN1_Min; } else { lYIndex = lY-3; for(ii=-2 ; ii<2 ; ii++) { lXIndex = lX+ii+iShiftOdd; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftEven); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1;

Page 109: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

102

iN2_Min++; } } //Outer Ring lYIndex = lY+6; for(ii=-3 ; ii<4 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } lYIndex = lY+5; for(ii=-4 ; ii<4 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } lYIndex = lY+4; for(ii=-4 ; ii<5 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++;

Page 110: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

103

} } lYIndex = lY+3; for(ii=-5 ; ii<-2 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } for(ii=2 ; ii<5 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } lYIndex = lY+2; for(ii=-5 ; ii<-2 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } for(ii=3 ; ii<6 ; ii++) { lXIndex = Mod(lX+ii,MAX_X);

Page 111: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

104

if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } lYIndex = lY+1; for(ii=-6 ; ii<-3 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } for(ii=3 ; ii<6 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } lYIndex = lY; for(ii=-6 ; ii<-3 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) {

Page 112: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

105

if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } for(ii=4 ; ii<7 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } if(lY>0) { lYIndex = lY-1; for(ii=-6 ; ii<-3 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } for(ii=3 ; ii<6 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex];

Page 113: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

106

iN2_Min++; } } } else { lYIndex = lY-1; for(ii=-6 ; ii<-3 ; ii++) { lXIndex = lX+ii+iShiftOdd; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftEven); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } for(ii=3 ; ii<6 ; ii++) { lXIndex = lX+ii+iShiftOdd; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftEven); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } } if(lY>1) { lYIndex = lY-2; for(ii=-5 ; ii<-2 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } for(ii=3 ; ii<6 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex];

Page 114: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

107

bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } } else { lYIndex = lY-2; for(ii=-5 ; ii<-2 ; ii++) { lXIndex = lX+ii,MAX_X; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftOdd); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } for(ii=3 ; ii<6 ; ii++) { lXIndex = lX+ii; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftOdd); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } } if(lY>2) { lYIndex = lY-3; for(ii=-5 ; ii<-2 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } for(ii=2 ; ii<5 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex];

Page 115: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

108

bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } } else { lYIndex = lY-3; for(ii=-5 ; ii<-2 ; ii++) { lXIndex = lX+ii+iShiftOdd; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftEven); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } for(ii=2 ; ii<5 ; ii++) { lXIndex = lX+ii+iShiftOdd; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftEven); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } } if(lY>3) { lYIndex = lY-4; for(ii=-4 ; ii<5 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } } else { lYIndex = lY-4; for(ii=-4 ; ii<5 ; ii++) { lXIndex = lX+ii; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftOdd); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++;

Page 116: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

109

} } if(lY>4) { lYIndex = lY-5; for(ii=-4 ; ii<4 ; ii++) { lXIndex = Mod(lX+ii+iShiftOdd,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii+iShiftOdd) { if(lX+ii+iShiftOdd < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } } else { lYIndex = lY-5; for(ii=-4 ; ii<4 ; ii++) { lXIndex = lX+ii+iShiftOdd; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftEven); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } } if(lY>5) { lYIndex = lY-6; for(ii=-3 ; ii<4 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { fpVar_Min[iN2_Min*2+1] = dppPosX[lXIndex][lYIndex]; if(lXIndex != lX+ii) { if(lX+ii < 0) fpVar_Min[iN2_Min*2+1] -= MAX_X; else fpVar_Min[iN2_Min*2+1] += MAX_X; } fpVar_Min[iN2_Min*2+2] = dppPosY[lXIndex][lYIndex]; bpType_Min[iN2_Min] = bppType[lXIndex][lYIndex]; iN2_Min++; } } } else

Page 117: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

110

{ lYIndex = lY-6; for(ii=-3 ; ii<4 ; ii++) { lXIndex = lX+ii; fpVar_Min[iN2_Min*2+1] = lXIndex + 0.5 * (float)(iShiftOdd); fpVar_Min[iN2_Min*2+2] = lYIndex*dR3By2; bpType_Min[iN2_Min] = 1; iN2_Min++; } } } int Array2Lattice(long lX, long lY) { int ii; int iShift = lY%2; long lXIndex, lYIndex; int iN1_Loc = 0; lYIndex = lY+3; for(ii=-2 ; ii<2 ; ii++) { lXIndex = Mod(lX+ii+iShift,MAX_X); if(bppType[lXIndex][lYIndex]) { dppPosX[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+1]; if(lXIndex != lX+ii+iShift) { if(lX+ii+iShift < 0) dppPosX[lXIndex][lYIndex] += MAX_X; else dppPosX[lXIndex][lYIndex] -= MAX_X; } dppPosY[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+2]; iN1_Loc++; } } lYIndex = lY+2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { dppPosX[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+1]; if(lXIndex != lX+ii) { if(lX+ii < 0) dppPosX[lXIndex][lYIndex] += MAX_X; else dppPosX[lXIndex][lYIndex] -= MAX_X; } dppPosY[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+2]; iN1_Loc++; } } lYIndex = lY+1; for(ii=-3 ; ii<3 ; ii++)

Page 118: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

111

{ lXIndex = Mod(lX+ii+iShift,MAX_X); if(bppType[lXIndex][lYIndex]) { dppPosX[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+1]; if(lXIndex != lX+ii+iShift) { if(lX+ii+iShift < 0) dppPosX[lXIndex][lYIndex] += MAX_X; else dppPosX[lXIndex][lYIndex] -= MAX_X; } dppPosY[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+2]; iN1_Loc++; } } lYIndex = lY; for(ii=-3 ; ii<4 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { dppPosX[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+1]; if(lXIndex != lX+ii) { if(lX+ii < 0) dppPosX[lXIndex][lYIndex] += MAX_X; else dppPosX[lXIndex][lYIndex] -= MAX_X; } dppPosY[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+2]; iN1_Loc++; } } if(lY>0) { lYIndex = lY-1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii+iShift,MAX_X); if(bppType[lXIndex][lYIndex]) { dppPosX[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+1]; if(lXIndex != lX+ii+iShift) { if(lX+ii+iShift < 0) dppPosX[lXIndex][lYIndex] += MAX_X; else dppPosX[lXIndex][lYIndex] -= MAX_X; } dppPosY[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+2]; iN1_Loc++; } } } if(lY>1) { lYIndex = lY-2; for(ii=-2 ; ii<3 ; ii++) {

Page 119: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

112

lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { dppPosX[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+1]; if(lXIndex != lX+ii) { if(lX+ii < 0) dppPosX[lXIndex][lYIndex] += MAX_X; else dppPosX[lXIndex][lYIndex] -= MAX_X; } dppPosY[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+2]; iN1_Loc++; } } } if(lY>2) { lYIndex = lY-3; for(ii=-2 ; ii<2 ; ii++) { lXIndex = Mod(lX+ii+iShift,MAX_X); if(bppType[lXIndex][lYIndex]) { dppPosX[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+1]; if(lXIndex != lX+ii+iShift) { if(lX+ii+iShift < 0) dppPosX[lXIndex][lYIndex] += MAX_X; else dppPosX[lXIndex][lYIndex] -= MAX_X; } dppPosY[lXIndex][lYIndex] = fpVar_Min[iN1_Loc*2+2]; iN1_Loc++; } } } if(iN1_Loc!=iN1_Min) { return 1; } return 0; } int UpdateRate(long lX, long lY) { fprintf(logfile, " >> Updating Rates around %i,%i\n",lX,lY); int ii; int iShift = lY%2; long lXIndex, lYIndex; int iN1_Loc = 0; double dRate; long lGrp, lList; double dBarrier; double dTranEnergy; lYIndex = lY+3; for(ii=-2 ; ii<2 ; ii++)

Page 120: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

113

{ lXIndex = Mod(lX+ii+iShift,MAX_X); if(bppType[lXIndex][lYIndex]) { lGrp = lppGrpIndex[lXIndex][lYIndex]; lList = lppListIndex[lXIndex][lYIndex]; if(lGrp > 0) { dRate = dppRate [lGrp][lList]; dpGroupRate[lGrp] -= dRate; dTotalRate -= dRate; //dBarrier = MinEnergy(lXIndex,lYIndex) - dTranEnergy; if(bppType[lXIndex][lYIndex]==1) { dTranEnergy=dTranEnergySub; } else if (bppType[lXIndex][lYIndex]==2) { if(lYIndex > (N_SUBSTRATE_LAYER)) dTranEnergy=dTranEnergyAda; else dTranEnergy=dTranEnergySub; } dRate = ATTEMPT_FREQUENCY * exp(MinEnergy(lXIndex,lYIndex) - dTranEnergy); dppRate[lGrp][lList] = dRate; dpGroupRate[lGrp] += dRate; dTotalRate += dRate; } iN1_Loc++; } } lYIndex = lY+2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { lGrp = lppGrpIndex[lXIndex][lYIndex]; lList = lppListIndex[lXIndex][lYIndex]; if(lGrp > 0) { dRate = dppRate [lGrp][lList]; dpGroupRate[lGrp] -= dRate; dTotalRate -= dRate; //dBarrier = MinEnergy(lXIndex,lYIndex) - dTranEnergy; if(bppType[lXIndex][lYIndex]==1) { dTranEnergy=dTranEnergySub; } else if (bppType[lXIndex][lYIndex]==2) { if(lYIndex > (N_SUBSTRATE_LAYER)) dTranEnergy=dTranEnergyAda; else dTranEnergy=dTranEnergySub; } dRate = ATTEMPT_FREQUENCY * exp(MinEnergy(lXIndex,lYIndex) - dTranEnergy);

Page 121: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

114

dppRate[lGrp][lList] = dRate; dpGroupRate[lGrp] += dRate; dTotalRate += dRate; } iN1_Loc++; } } lYIndex = lY+1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii+iShift,MAX_X); if(bppType[lXIndex][lYIndex]) { lGrp = lppGrpIndex[lXIndex][lYIndex]; lList = lppListIndex[lXIndex][lYIndex]; if(lGrp > 0) { dRate = dppRate [lGrp][lList]; dpGroupRate[lGrp] -= dRate; dTotalRate -= dRate; //dBarrier = MinEnergy(lXIndex,lYIndex) - dTranEnergy; if(bppType[lXIndex][lYIndex]==1) { dTranEnergy=dTranEnergySub; } else if (bppType[lXIndex][lYIndex]==2) { if(lYIndex > (N_SUBSTRATE_LAYER)) dTranEnergy=dTranEnergyAda; else dTranEnergy=dTranEnergySub; } dRate = ATTEMPT_FREQUENCY * exp(MinEnergy(lXIndex,lYIndex) - dTranEnergy); dppRate[lGrp][lList] = dRate; dpGroupRate[lGrp] += dRate; dTotalRate += dRate; } iN1_Loc++; } } lYIndex = lY; for(ii=-3 ; ii<4 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { lGrp = lppGrpIndex[lXIndex][lYIndex]; lList = lppListIndex[lXIndex][lYIndex]; if((lDeposition==0)&&(dTranEnergySub==0)) { dTranEnergySub = TRAN_BIND_RATIO * MinEnergy(lXIndex,lYIndex); dTranEnergyAda = dTranEnergySub * (double)U0_ADA / (double)U0_SUB;

Page 122: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

115

dTranEnergyInt = dTranEnergySub * sqrt((double)U0_ADA*(double)U0_SUB) / (double)U0_SUB; dTranEnergy = dTranEnergySub; fprintf(logfile, "\n>> Transition Energy set to %e\n\n", dTranEnergy ); } if(lGrp > 0) { dRate = dppRate [lGrp][lList]; dpGroupRate[lGrp] -= dRate; dTotalRate -= dRate; //dBarrier = MinEnergy(lXIndex,lYIndex) - dTranEnergy; if(bppType[lXIndex][lYIndex]==1) { dTranEnergy=dTranEnergySub; } else if (bppType[lXIndex][lYIndex]==2) { if(lYIndex > (N_SUBSTRATE_LAYER)) dTranEnergy=dTranEnergyAda; else dTranEnergy=dTranEnergySub; } dRate = ATTEMPT_FREQUENCY * exp(MinEnergy(lXIndex,lYIndex) - dTranEnergy); dppRate[lGrp][lList] = dRate; dpGroupRate[lGrp] += dRate; dTotalRate += dRate; } iN1_Loc++; } } if(lY>0) { lYIndex = lY-1; for(ii=-3 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii+iShift,MAX_X); if(bppType[lXIndex][lYIndex]) { lGrp = lppGrpIndex[lXIndex][lYIndex]; lList = lppListIndex[lXIndex][lYIndex]; if(lGrp > 0) { dRate = dppRate [lGrp][lList]; dpGroupRate[lGrp] -= dRate; dTotalRate -= dRate; //dBarrier = MinEnergy(lXIndex,lYIndex) - dTranEnergy; if(bppType[lXIndex][lYIndex]==1) { dTranEnergy=dTranEnergySub; } else if (bppType[lXIndex][lYIndex]==2) { if(lYIndex > (N_SUBSTRATE_LAYER)) dTranEnergy=dTranEnergyAda; else dTranEnergy=dTranEnergySub; }

Page 123: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

116

dRate = ATTEMPT_FREQUENCY * exp(MinEnergy(lXIndex,lYIndex) - dTranEnergy); dppRate[lGrp][lList] = dRate; dpGroupRate[lGrp] += dRate; dTotalRate += dRate; } iN1_Loc++; } } } if(lY>1) { lYIndex = lY-2; for(ii=-2 ; ii<3 ; ii++) { lXIndex = Mod(lX+ii,MAX_X); if(bppType[lXIndex][lYIndex]) { lGrp = lppGrpIndex[lXIndex][lYIndex]; lList = lppListIndex[lXIndex][lYIndex]; if(lGrp > 0) { dRate = dppRate [lGrp][lList]; dpGroupRate[lGrp] -= dRate; dTotalRate -= dRate; //dBarrier = MinEnergy(lXIndex,lYIndex) - dTranEnergy; if(bppType[lXIndex][lYIndex]==1) { dTranEnergy=dTranEnergySub; } else if (bppType[lXIndex][lYIndex]==2) { if(lYIndex > (N_SUBSTRATE_LAYER)) dTranEnergy=dTranEnergyAda; else dTranEnergy=dTranEnergySub; } dRate = ATTEMPT_FREQUENCY * exp(MinEnergy(lXIndex,lYIndex) - dTranEnergy); dppRate[lGrp][lList] = dRate; dpGroupRate[lGrp] += dRate; dTotalRate += dRate; } iN1_Loc++; } } } if(lY>2) { lYIndex = lY-3; for(ii=-2 ; ii<2 ; ii++) { lXIndex = Mod(lX+ii+iShift,MAX_X); if(bppType[lXIndex][lYIndex]) { lGrp = lppGrpIndex[lXIndex][lYIndex];

Page 124: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

117

lList = lppListIndex[lXIndex][lYIndex]; if(lGrp > 0) { dRate = dppRate [lGrp][lList]; dpGroupRate[lGrp] -= dRate; dTotalRate -= dRate; //dBarrier = MinEnergy(lXIndex,lYIndex) - dTranEnergy; if(bppType[lXIndex][lYIndex]==1) { dTranEnergy=dTranEnergySub; } else if (bppType[lXIndex][lYIndex]==2) { if(lYIndex > (N_SUBSTRATE_LAYER)) dTranEnergy=dTranEnergyAda; else dTranEnergy=dTranEnergySub; } dRate = ATTEMPT_FREQUENCY * exp(MinEnergy(lXIndex,lYIndex) - dTranEnergy); dppRate[lGrp][lList] = dRate; dpGroupRate[lGrp] += dRate; dTotalRate += dRate; } iN1_Loc++; } } } if(iN1_Loc!=iN1_Min) { return 1; } fprintf(logfile, " >> Updated Rates\n"); return 0; } long Mod(long a, long b) { long out = a%b; if (out<0) { out = out+b; } return out; } //Ander's Random number generator float Rand(long *idum) // Very good r.n.'s: long period, but slow. { int j; long k; static long iy=0; static long iv[NTAB]; float temp; if (*idum <= 0 || !iy)

Page 125: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

118

{ if (-(*idum) < 1) *idum = 1; else *idum = -(*idum); for (j=NTAB+7;j>=0;j--) { k=(*idum)/IQ; *idum = IA*(*idum-k*IQ)-IR*k; if (*idum < 0) *idum += IM; if (j < NTAB) iv[j] = *idum; } iy=iv[0]; } k=(*idum)/IQ; *idum=IA*(*idum-k*IQ)-IR*k; if (*idum < 0) *idum += IM; j=iy/NDIV; iy=iv[j]; iv[j] = *idum; if ((temp=AM*iy) > RNMX) return RNMX; else return temp; } void PrintGrid() { fprintf(logfile, "\n"); for(int jj=MAX_Y-1 ; jj>=0 ; jj--) { if (jj%2==1) fprintf(logfile, " "); for(int ii=0 ; ii<MAX_X ; ii++) { switch(bppType[ii][jj]) { case 2: fprintf(logfile, "O ");break; case 1: fprintf(logfile, "X ");break; case 0: fprintf(logfile, " ");break; } } fprintf(logfile, "\n"); } for(int jj = 1 ; jj<7 ; jj++) { if (Mod(jj,2)==1) fprintf(logfile, " "); for(int ii=0 ; ii<MAX_X ; ii++) { fprintf(logfile, "%i ", ii%10); } fprintf(logfile, "\n"); } fprintf(logfile, "\n"); } void PrintList() {

Page 126: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

119

for(int ii=0 ; ii<5 ; ii++) { fprintf(logfile, "%i Neighbors %i Atoms - ", ii+1, lpListLen[ii]); for(int jj=0 ; jj<lpListLen[ii] ; jj++) { fprintf(logfile, "%i,%i ", lppIndexX[ii][jj], lppIndexY[ii][jj]); } fprintf(logfile, "\n"); } fprintf(logfile, "\n"); fprintf(logfile, "Deposited Atom = %i\n", lDeposition); fprintf(logfile, "Total Rate%e\nGroup %e %e %e %e %e\nFlux Rate%e\n\n", dTotalRate, dpGroupRate[0],dpGroupRate[1], dpGroupRate[2], dpGroupRate[3], dpGroupRate[4], dFluxRate); } void DisplayList() { for(int ii=0 ; ii<5 ; ii++) { /* for(int jj=0 ; jj<lpListLen[ii] ; jj++) { }*/ for(int jj=0 ; jj<lpListLen[ii] ; jj++) { } } char ch; double sum1, sum2=0; for(int ii = 1 ; ii<5 ; ii++) { sum1 = 0; for(int jj = 0; jj<lpListLen[ii] ; jj++) { sum1 += dppRate[ii][jj]; } if (fabs(sum1-dpGroupRate[ii])>1e-5) { fprintf(logfile, "XX Group Rate Problem %e %e %e\n", sum1,dpGroupRate[ii],sum1-dpGroupRate[ii]); } sum2 += dpGroupRate[ii]; } if (fabs(sum2- dTotalRate+dFluxRate)>1e-5) { fprintf(logfile, "XX Total Rate Problem %e %e %e\n",sum2,dTotalRate-dFluxRate,sum2-dTotalRate+dFluxRate); } if((dpGroupRate[1]<-1)||(dpGroupRate[2]<-1)||(dpGroupRate[3]<-1)||(dpGroupRate[4]<-1)) { fprintf(logfile, "XX Negative Rate Problem\n"); }

Page 127: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

120

} int CheckSite(long lX, long lY) { BYTE bNN, bN, bDumb; double dR2; double x1, x2; bNN = GetNeighbors(lX, lY, bN,bDumb,bDumb); if( ((bN&1)>0) && ((bN&8)>0) ) { x1 = dppPosX[(lX+1)%MAX_X][lY]; if(lX+1 >= MAX_X) { x1 += MAX_X; } x2 = dppPosX[Mod(lX-1,MAX_X)][lY]; if(lX-1 <0) { x2 -= MAX_X; } if( ((x1-x2)*(x1-x2)) < TOO_SHORT*TOO_SHORT) { return 1; } } if( ((bN&4)>0) && ((bN&32)>0) ) { x1 = dppPosX[Mod(lX+lY%2,MAX_X)][lY-1]; if(lX+lY%2 >= MAX_X) { x1 += MAX_X; } x2 = dppPosX[Mod(lX-1+lY%2,MAX_X)][lY+1]; if(lX-1+lY%2 <0) { x2 -= MAX_X; } dR2 = pow( x1-x2 , 2) +pow( dppPosY[Mod(lX+lY%2,MAX_X)][lY-1]-dppPosY[Mod(lX-1+lY%2,MAX_X)][lY+1] , 2); if (dR2 < TOO_SHORT*TOO_SHORT) { return 1; } } if( ((bN&2)>0) && ((bN&16)>0) ) { x1 = dppPosX[Mod(lX+lY%2,MAX_X)][lY+1]; if(lX+lY%2 >= MAX_X) {

Page 128: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

121

x1 += MAX_X; } x2 = dppPosX[Mod(lX-1+lY%2,MAX_X)][lY-1]; if(lX-1+lY%2 <0) { x2 -= MAX_X; } dR2 = pow( x1-x2 , 2) +pow( dppPosY[Mod(lX+lY%2,MAX_X)][lY+1]-dppPosY[Mod(lX-1+lY%2,MAX_X)][lY-1] , 2); if (dR2 < TOO_SHORT*TOO_SHORT) { return 1; } } return 0; } #ifndef MINIMIZATION #define MINIMIZATION #include "heteroepitaxy.h" float *fpVar_Min; BYTE *bpType_Min; int iN1_Min; //number of VARIABLES in minimization problem int iN2_Min; //number of ATOMS in minimzation problem //Energy term to be minimized float E_Total_LJ(float fpVar[]); void Gra_E_Total_LJ(float fpVar[], float fpGra[]); void frprmn(float p[], int n, float ftol, int *iter, float *fret, float (*func)(float []), void (*dfunc)(float [], float [])); #endif

#include "minimization.h" float E_Total_LJ(float fpVar[]) { //printf(" >> Energy function called\n"); int ii, jj; float fR2, fOut=0.; float fTmp = 0; for(ii=0 ; ii<iN1_Min ; ii++) { for(jj=ii+1 ; jj<iN1_Min ; jj++) { fR2 = pow(fpVar[2*ii+1]-fpVar[2*jj+1] , 2) + pow(fpVar[2*ii+2]-fpVar[2*jj+2] , 2); if( bpType_Min[ii] == bpType_Min[jj] )

Page 129: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

122

{ if(bpType_Min[ii]==2) { fOut += d4U0byKT_Ada * ( dSigma12_Ada/pow(fR2,6) - dSigma6_Ada/pow(fR2,3) ); } else { fOut += d4U0byKT_Sub * ( dSigma12_Sub/pow(fR2,6) - dSigma6_Sub/pow(fR2,3) ); } } else { fOut += d4U0byKT_Int * ( dSigma12_Int/pow(fR2,6) - dSigma6_Int/pow(fR2,3) ); } } for(jj=iN1_Min ; jj<iN2_Min ; jj++) { fR2 = pow(fpVar[2*ii+1]-fpVar_Min[2*jj+1] , 2) + pow(fpVar[2*ii+2]-fpVar_Min[2*jj+2] , 2); if( bpType_Min[ii] == bpType_Min[jj] ) { if(bpType_Min[ii]==2) { fOut += d4U0byKT_Ada * ( dSigma12_Ada/pow(fR2,6) - dSigma6_Ada/pow(fR2,3) ); } else { fOut += d4U0byKT_Sub * ( dSigma12_Sub/pow(fR2,6) - dSigma6_Sub/pow(fR2,3) ); } } else { fOut += d4U0byKT_Int * ( dSigma12_Int/pow(fR2,6) - dSigma6_Int/pow(fR2,3) ); } } } return fOut; } void Gra_E_Total_LJ(float fpVar[], float fpGra[]) { int ii, jj, iLast; float fX, fY, fR, fR2, fSigma6, fOut=0.; float fdUdR, fdUdXi, fdUdXj, fdUdYi, fdUdYj, fModulus=0; iLast = 2*(iN1_Min-1)+2; for(ii=0 ; ii<=iLast ; ii++) { fpGra[ii] = 0;

Page 130: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

123

} for(ii=0 ; ii<iN1_Min ; ii++) //this includes fixed atoms { for(jj=ii+1 ; jj<iN1_Min ; jj++) { fX = fpVar[2*ii+1]-fpVar[2*jj+1]; fY = fpVar[2*ii+2]-fpVar[2*jj+2]; fR2 = fX*fX + fY*fY; fR = sqrt(fR2); // dU/dR if( bpType_Min[ii] == bpType_Min[jj] ) { if(bpType_Min[ii]==2) { fdUdR = d4U0byKT_Ada * ( -12 * dSigma12_Ada / pow(fR2,6) / fR +6 * dSigma6_Ada / pow(fR2,3) / fR ); } else { fdUdR = d4U0byKT_Sub * ( -12 * dSigma12_Sub / pow(fR2,6) / fR +6 * dSigma6_Sub / pow(fR2,3) / fR ); } } else { fdUdR = d4U0byKT_Int * ( -12 * dSigma12_Int / pow(fR2,6) / fR +6 * dSigma6_Int / pow(fR2,3) / fR ); } fpGra[2*ii+1] += - fdUdR * fX / fR; //watchout for signs fpGra[2*ii+2] += - fdUdR * fY / fR; fpGra[2*jj+1] += fdUdR * fX / fR; fpGra[2*jj+2] += fdUdR * fY / fR; }//for jj for(jj=iN1_Min ; jj<iN2_Min ; jj++) { fX = fpVar[2*ii+1]-fpVar_Min[2*jj+1]; fY = fpVar[2*ii+2]-fpVar_Min[2*jj+2]; fR2 = fX*fX + fY*fY; fR = sqrt(fR2); // dU/dR if( bpType_Min[ii] == bpType_Min[jj] ) { if(bpType_Min[ii]==2) { fdUdR = d4U0byKT_Ada * ( -12 * dSigma12_Ada / pow(fR2,6) / fR +6 * dSigma6_Ada / pow(fR2,3) / fR ); } else

Page 131: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

124

{ fdUdR = d4U0byKT_Sub * ( -12 * dSigma12_Sub / pow(fR2,6) / fR +6 * dSigma6_Sub / pow(fR2,3) / fR ); } } else { fdUdR = d4U0byKT_Int * ( -12 * dSigma12_Int / pow(fR2,6) / fR +6 * dSigma6_Int / pow(fR2,3) / fR ); } fpGra[2*ii+1] += - fdUdR * fX / fR; //watchout for signs fpGra[2*ii+2] += - fdUdR * fY / fR; /* fpGra[2*jj+1] += fdUdR * fX / fR; fpGra[2*jj+2] += fdUdR * fY / fR;*/ }//for jj }//for ii for(ii=1 ; ii<=iLast ; ii++) { fModulus += fpGra[ii] * fpGra[ii]; } fModulus = sqrt(fModulus); for(ii=1 ; ii<=iLast ; ii++) { fpGra[ii] /= fModulus; } /*printf(" >> Calculated Gradiant is "); for(ii = 1; ii<=iLast ; ii++) { printf("%1.5f ", fpGra[ii]); } printf("\n");*/ }

Page 132: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

125

9.5 Visualization code for simulation written by Anders

function visual(datafile,misfit,xmin,xmax); % % "visual.m" plots the atoms defined in the file "datafile". The % input file has (x,y,t) for each atom, where (x,y) is the coordinate % of the venter of each atom, and "t" is the type: "0" is no % atom, "1" is a substrate atom (spaced at a_o=1) and "2" is an % adsorbate atom, spaced with a mismatch to the substrate (defined % in file as "misfit"). % % Example run: % >> visual('datafile.dat') % Input: n*3 ascii file with (x,y,type). % Return: plot. % % Anders Ballestad, January the 5th, 2004. tic; % Initiate atom spacings. %misfit = 0.15; % *** CHANGE AS APPROPRIATE *** sigma_sub = 0.8908987; % This way, the substrate atoms are spaced with a_o=1. sigma_ada = (1+misfit)*sigma_sub; % Prepare plot. fs = 10; figure clf h(1)=axes('Position',[0.15,0.15,0.845,0.845], 'FontSize', fs, 'FontName', 'times'); set(gcf,'Color','w') set(gca,'Box','on') hold on % Load data from file: data = load(datafile); surf_atoms = max(size(data)); xatoms1 = data(:,1)'; yatoms1 = data(:,2)'; t1 = data(:,3)'; [xatoms,yatoms,t] = extract(xatoms1,yatoms1,t1,xmin,xmax); % Do you want to put in a "substrate"? substratelayers = 4; % The top layer will be checked for strain. % But a minimum of 2! dy = sin(60*pi/180); % If there's an odd number of sub-layers... if mod(substratelayers,2), adder = 1; else adder = 0; end L = round(max(xatoms))-round(min(xatoms))+1; % size of substrate. for i=1:substratelayers,

Page 133: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

126

if mod(i,2), subx_full((i-1)*L+1:i*L) = linspace(0,L-1,L)+adder*0.5+max(0,xmin); else subx_full((i-1)*L+1:i*L) = linspace(0,L-1,L)+(1-adder)*0.5+max(0,xmin); end suby_full((i-1)*L+1:i*L) = ones(1,L)*(i-1)*dy-substratelayers*dy; end %subx = subx_full(1:L*(substratelayers-2)); %suby = suby_full(1:L*(substratelayers-2)); subx = subx_full; suby = suby_full; % We will now add the first two layers from the surface to the % "xatoms" and "yatoms", so that we can calculate strain on them: slayers = substratelayers; xatoms(surf_atoms+1:surf_atoms+slayers*L) = subx; yatoms(surf_atoms+1:surf_atoms+slayers*L) = suby; t(surf_atoms+1:surf_atoms+slayers*L) = ones(1,slayers*L); tempx = xatoms; tempy = yatoms; tempt = t; surf_atoms = length(xatoms); % 2. Define rings for substrate atoms (sring) and adsorbate atoms % (aring): theta = linspace(0,2*pi,25); sringx = 0.5*cos(theta); sringy = 0.5*sin(theta); aringx = (1+misfit)*sringx; aringy = (1+misfit)*sringy; for i=1:surf_atoms, spacing(i) = strain(xatoms(i),yatoms(i),t(i),xatoms,yatoms,t); end % Normalize this to type 1 and 2 max and min, respectively: t1 = (t==1); % type 1... t2 = (t==2); % type 2... x1 = xatoms(t1); y1 = yatoms(t1); t1_atoms = length(x1); s1 = spacing(t1); x2 = xatoms(t2); y2 = yatoms(t2); t2_atoms = length(x2); s2 = spacing(t2); % Normalize the spacings... s1 = s1-min(s1); %s1 = s1/max(s1)/2+0.5; % div. by 2; or too dark... s1 = s1/max(s1); % div. by 2; or too dark... s2 = s2-min(s2); s2 = s2/max(s2);

Page 134: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

127

% Check for NaN in s2 (there are none in s1): NaN_index = isnan(s2); nans = length(spacing(NaN_index)); value = 0.25; s2(NaN_index)=value*ones(1,nans); % 3. Plot a ring around each substrate atom: for i=1:t1_atoms, fill(sringx+x1(i),sringy+y1(i),[0.4+0.6*s1(i) 0.4+0.6*s1(i) 0.4+0.6*s1(i)]); % grayscale end % 4. And one around each adsorbate atom: for i=1:t2_atoms, fill(aringx+x2(i),aringy+y2(i),[0.2+0.8*s2(i) 0.2+0.8*s2(i) 0]); % yellow end axis([ min(xatoms)-1 max(xatoms)+1 min(yatoms)-1 max(yatoms)+1]); %ylabel('Surface height (substrate atomic units)','FontSize', fs, 'FontName', 'arial','FontWeight','Bold'); %xlabel('Surface coordinate (substrate atomic units)','FontSize', fs,'FontName', 'arial','FontWeight','Bold'); axis equal toc; %axis([xmin-5 xmax+5 -10 10]) function average = strain(x,y,xytyp,xatoms,yatoms,typ); % % This script calculates the average distance from (x,y) % to all the nearest neighbours in (xatoms,yatoms) that % are of the same "type". maxr2 = 2; % max radius squared to compare within. minr2 = 0.01; % so that we don't include the same atom. % Which atoms are of type 1? typ1_index = (typ==1); typ2_index = (typ==2); x1 = xatoms(typ==1); x2 = xatoms(typ==2); y1 = yatoms(typ==1); y2 = yatoms(typ==2); a1 = length(x1); % number of type 1 atoms a2 = length(x2); % ... 2 ... if xytyp==1, nn = and((x-x1).^2+(y-y1).^2<maxr2,(x-x1).^2+(y-y1).^2>minr2); averages = (sqrt( (x-x1(nn)).^2 + (y-y1(nn)).^2 )); else nn = and((x-x2).^2+(y-y2).^2<maxr2,(x-x2).^2+(y-y2).^2>minr2);

Page 135: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

128

averages = (sqrt( (x-x2(nn)).^2 + (y-y2(nn)).^2 )); end average = mean(averages);

function [xatoms,yatoms,spacing] = visual(datafile,misfit); % % "visual.m" plots the atoms defined in the file "datafile". The % input file has (x,y,t) for each atom, where (x,y) is the coordinate % of the venter of each atom, and "t" is the type: "0" is no % atom, "1" is a substrate atom (spaced at a_o=1) and "2" is an % adsorbate atom, spaced with a mismatch to the substrate (defined % in file as "misfit"). % % Example run: % >> visual('datafile.dat') % Input: n*3 ascii file with (x,y,type). % Return: plot. % % Anders Ballestad, January the 5th, 2004. % Initiate atom spacings. %misfit = 0.15; % *** CHANGE AS APPROPRIATE *** sigma_sub = 0.8908987; % This way, the substrate atoms are spaced with a_o=1. sigma_ada = (1+misfit)*sigma_sub; % Prepare plot. fs = 10; figure(3) clf h(1)=axes('Position',[0.15,0.15,0.845,0.845], 'FontSize', fs, 'FontName', 'times'); set(gcf,'Color','w') set(gca,'Box','on') hold on % Load data from file: data = load(datafile); surf_atoms = max(size(data)); xatoms = data(:,1)'; yatoms = data(:,2)'; t = data(:,3)'; % Do you want to put in a "substrate"? substratelayers = 10; dy = sin(60*pi/180); % If there's an odd number of sub-layers... if mod(substratelayers,2), adder = 1; else adder = 0; end L = round(max(xatoms))-round(min(xatoms))+1; % size of substrate. for i=1:substratelayers,

Page 136: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

129

if mod(i,2), subx((i-1)*L+1:i*L) = linspace(0,L-1,L)+adder*0.5; else subx((i-1)*L+1:i*L) = linspace(0,L-1,L)+(1-adder)*0.5; end suby((i-1)*L+1:i*L) = ones(1,L)*(i-1)*dy-substratelayers*dy; end % 2. Define rings for substrate atoms (sring) and adsorbate atoms % (aring): theta = linspace(0,2*pi,25); sringx = 0.5*cos(theta); sringy = 0.5*sin(theta); aringx = (1+misfit)*sringx; aringy = (1+misfit)*sringy; for i=1:surf_atoms, spacing(i) = strain3(xatoms(i),yatoms(i),t(i),xatoms,yatoms,t); end % Normalize this: spacing = spacing-min(spacing); spacing = spacing/max(spacing); % Get rid of NaN: NaN_index = isnan(spacing); nans = length(spacing(NaN_index)); value = (max(spacing)+min(spacing))/2; spacing(NaN_index)=value*ones(1,nans); % 3. Plot a ring around each substrate atom: for i=1:surf_atoms, if t(i)==1, % plot(sringx+xatoms(i),sringy+yatoms(i),'b-'); % fill(sringx+xatoms(i),sringy+yatoms(i),'r-'); fill(sringx+xatoms(i),sringy+yatoms(i),[1-spacing(i) 1-spacing(i) 0]); elseif t(i)==2, % plot(aringx+xatoms(i),aringy+yatoms(i),'r-'); % fill(aringx+xatoms(i),aringy+yatoms(i),'r-'); fill(aringx+xatoms(i),aringy+yatoms(i),[1-spacing(i) 1-spacing(i) 1-spacing(i)]); end end % 3.1 Draw the substrate for i=1:L*substratelayers, % plot(sringx+subx(i),sringy+suby(i),'b-'); fill(sringx+subx(i),sringy+suby(i),[1 1 0]); end axis([ min(xatoms)-1 max(xatoms)+1 min(yatoms)-1 max(yatoms)+1]); ylabel('Surface height (substrate atomic units)','FontSize', fs, 'FontName', 'arial','FontWeight','Bold');

Page 137: ANALYSIS AND SIMULATION OF THE EFFECTS OF …phys.columbia.edu/~bayo/ENPH_Report_2004.pdf · ANALYSIS AND SIMULATION OF THE EFFECTS OF BISMUTH ON GROWTH OF InAs QUANTUM DOTS Raveen

130

xlabel('Surface coordinate (substrate atomic units)','FontSize', fs,'FontName', 'arial','FontWeight','Bold'); axis equal