WP3: Kinetic Monte-Carlo simulation of ZrO 2, HfO 2, Al 2 O 3 Atomic Layer Deposition onto Silicon ‘Hikad’ software user manual Hike, Final Project Review Wednesday 19 January 2005, European Commission Offices, Brussels
Introduction ‘Hikad’ = simulation application ‘kmc’ + analysis application ‘anl’ Written in Fortran90 Running on Linux (kernel 2.6) Using ‘AtomEye’, free atomistic configuration viewer: Ref: J. Li, Modelling Simul. Mater. Sci. Eng. 11 (2003) 173
Hikad algorithm Lattice-based kinetic Monte-Carlo = predefined sites and states + probability driven events Event = Mechanism + Site LKMC cycle, Occurrence of the event that has the smallest time Specific occurrence times calculation Configuration change Events Filtering
Hikad algorithm kmc application bloc diagram
Hikad algorithm anl application bloc diagram
Overview and Features Workspace
Overview and Features Main features ZrO 2, HfO 2 and Al 2 O 3 ALD ALD thermodynamic parameters (link with experimental data) Start from an existing atomistic configuration file (Recovery option) Initial substrate atomistic configuration customization Feedback options (log file + automatic configuration/graphic files export) Back up option Evolutivity Steric restriction switch (for big precursors) Mechanisms activation energies
Overview and Features Performance Huge substrates compared to ab initio or DFT Up to events/files Improved events filtering (SmartFilter option) Shortcuts method preventing fast flip back events (SmartEvents option) Execution effectiveness analysis Analysis Simulation data analysis, even during simulation job Easy and fast browsing through events using bookmarks (find event, ALD phase, ALD cycle...) Atomistic configuration visualisation using AtomEye Snapshots (jpeg, ps or png formats) Configuration analysis (substrate, coverage, coordination...) Batch processing
SmartFilter SmartEvents Special Features A B All Selective Full Bloc Smart
Input parameters Hike Data File Structural Parameters Metal = Al or Zr or Hf totL = total number of rows totC = total number of columns cellparam = high-k oxide crystal lattice cell parameter (in angstroms) MonteCarlo Parameters nu = typical lattice vibration frequency (in THz) SteRes = steric restriction switch (F/T) SmartFilter = events filtering method switch (0:full, 1:bloc, 2:smart 3:smart_devel) SmartEvents = algorithm effectiveness improvement (F/T) Stats = algorithm effectiveness measurement (F/T) Limiting Parameters Tfin = experiment duration (in secons) nevtfin = maximum total number of events ncyclefin = desired number of ALD cycles ALD Parameters Mprc = metallic precursor molar mass (in g/mol) curph = beginning phase T1 = (in seconds) Th1 = (in Kelvin) P1 = (in mbar) T2 = Th2 = T3 = Th3 = P3 = T4 = Th4 =
Input parameters Initial Configuration Parameters Recovery = start using an existing atomistic configuration InitDi = Si(100)/SiO2 dimeres initialization type (RANDom, RAIL, CROSs, NO DImeres) InitOH = Si(100)/SiO2 hydroxyls initialization type (RANDom, RAIL, CROSs, Random On DImeres) pOH = percentage of hydroxyl functions on Si(100)/SiO2 surface Feedback / Output Userfbk = user feedback (F = unattended run, T = full user control) Logfbk = log.txt feedback (F = no log.txt, T = all screen is saved in log.txt) Eventsfbk = human readable events.txt feedback (F = no events.txt, T = all events written in events.txt) Historyfbk = compact events file for off-line processing (F = no history.txt, T = all events written in history.txt) Graphfbk = cfg graphical files feedback (F = no graph, T = graph export) GraphExpTyp = lin = linear -> nex=E(Ga*kg) qud = quadratic -> nex=E(Ga*kg^2) xpn = exponential -> nex=E(Ga^kg) pha = each phase cyc = each cycle Ga = graph export parameter gsize = graph export max size Conffbk = hik configuration files feedback (F = no, T = yes) ConfExpTyp = lin = linear -> nex=E(Ga*kg) qud = quadratic -> nex=E(Ga*kg^2) xpn = exponential -> nex=E(Ga^kg) pha = each phase cyc = each cycle Gc = conf export parameter BackUp = back up option (T = create a back up directory and stores files, F = No back up) End of Data File
Input parameters Hikad : HfO2 Mechanisms List Description DeltaE 03 MeCl4 Desorption HCl Production H2O Desorption Hydrolysis HCl Recombination HCl Desorption Dens. Inter_CI_1N_cOH-iOH (all k) Dens. Inter_CI_1N_cOH-iCl (all k) Dens. Inter_CI_1N_cCl-iOH (all k) Dens. Inter_CI_2N_cOH-iOH (all k not2) Dens. Inter_CI_2N_cOH-iCl (all k not2) Dens. Inter_CI_2N_cCl-iOH (all k not2) Dens. Intra_CI_1N_cOH-iOH (k=2) Dens. Intra_CI_1N_cOH-iCl (k=2) Dens. Intra_CI_1N_cCl-iOH (k=2) Dens. Intra_CC_1N_cOH-cOH (k=2) Dens. Intra_CC_1N_cOH-cCl (k=2) Dens. Intra_CC_2N_cOH-cOH (k=2) Dens. Intra_CC_2N_cOH-cCl (k=2) Dens. Bridge_TI_2N_tOH-iOH (k=2) Dens. Bridge_TI_2N_tOH-iCl (k=2) Dens. Bridge_TI_2N_tCl-iOH (k=2) Dens. Bridge_TI_3N_tOH-iOH (k=2) Dens. Bridge_TI_3N_tOH-iCl (k=2) Dens. Bridge_TI_3N_tCl-iOH (k=2) Dens. Bridge_TC_3N_tOH-cOH (k=2) Dens. Bridge_TC_3N_tOH-cCl (k=2) Dens. Bridge_TC_3N_tCl-cOH (k=2) Dens. Bridge_TC_4N_tOH-cOH Dens. Bridge_TC_4N_tOH-cCl Dens. Bridge_TC_4N_tCl-cOH Dens. Bridge_TT_3N_tOH-tOH (k=2) Dens. Bridge_TT_3N_tOH-tCl (k=2) Dens. Bridge_TT_4N_tOH-tOH Dens. Bridge_TT_4N_tOH-tCl Dens. Bridge_TT_5N_tOH-tOH Dens. Bridge_TT_5N_tOH-tCl Siloxane Bridge Opening Hike : End of Mechanisms List -----
Output files log.txt : program execution report *.hik files : raw atomistic configuration files InitConf.hik: first FinalConf.hik: last *.cfg files : AtomEye atomistic configuration files history.txt : events list events.txt : ‘human readable’ events list
Analysing simulation data
Reload parameters and rescan history file Display a 10 events list Current event Total number of events Delete graphics and bookmarks Browse events: find event, phase cycle, go to event Generate files Analysis tools Prompt
List
Find Looking forward for mechanism #8 occurring on any site of layer #2 Result: event found, gone to this event.
Batch processing For instance: batch export of graphic files Default batch parameters: export at most a 100x100 picture every one event Modified batch parameters: export at most a 100x100 picture every ALD phase
Batch processing 5 graphic files created:
Invoking AtomEye
Browse events and press ‘c’ to generate an AtomEye cfg file Ins/Del keys make you jump from one cfg to the previous/next one.
Batch coverage analysis Default batch parameters: every ALD cycle Modified batch parameters: every 500 events
Batch coverage analysis
Using Hikad: examples Substrate initialization
Si(100) substrate No dimeres No OH
Si(100) substrate Rail dimeres No OH
Si(100) substrate Cross dimeres No OH
Si(100) substrate Random dimeres No OH
Si(100) substrate No dimeres Rail OH
Si(100) substrate No dimeres Cross OH
Si(100) substrate No dimeres Random OH (30%)
Si(100) substrate No dimeres Random OH (60%)
Si(100) substrate Random dimeres Random OH (45%)
Si(100) substrate Random dimeres Random OH on dimeres (45%=>43%)
Using Hikad: examples Simulation running... but what is it doing now ?
Using Hikad: examples I should have set a longer hydrolysis phase...
Go to the beginning of hydrolysis phase (using +) Save this state as a hik file (using h)
Start a new simulation using the saved configuration (Recovery option toggled) Start with phase 3 (hydrolysis) with a longer time.
Conclusion Lattice based kinetic Monte-Carlo algorithm => huge configurations ALD thermodynamic parameters => link with experimental data Improved algorithm options Powerful, flexible, user-friendly analysis tool Embedded help for future development