Skip to content

Python script to simulate and visualize atomic deposition.

Notifications You must be signed in to change notification settings

vganjali/Atomic-Deposition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

image

A 3D atomic deposition simulation model written entirely in Python. PytOpenGL library is used for 3D visualization of individual atoms being deposited on a flat surface. This was done as a course project (EE216: Nanomaterials and Nanometer-scale Device) at UCSC and was done with a group of three PhD students:

Basic Physics: L-J potential

The Lennard-Jones potential (L-J potential) is a mathematical model to approximate the interaction between a pair of neutral atoms or molecules. $V_{LJ}=4\epsilon[(\frac{\sigma}{r})^{12}-(\frac{\sigma}{r})^{6}]=\epsilon[(\frac{r_{m}}{r})^{12}-2(\frac{r_{m}}{r})^{6}]$ where

  • $\epsilon$: Depth of the potential well
  • $\sigma$: Distance at wich $V_{LJ}=0$
  • $r_m$: Distance at wich $V_{LJ}$ is minimum ($=-\epsilon$)
  • ($r_m=2^{1/6}\sigma\approx1.122\sigma$)
  • $r^{-12}$: The repulsive term, describes Pauli repulsion at short ranges due to overlapping electrin orbitals
  • $r^{-6}$ The attractive term, describes attraction at long ranges (for example, Van de Waals force)
  • The same equation is used in many-particle environment

Algorithm Flowchart

image

Key Considerations

Bottom Layer

  • A well-arranged bottom layer is assumed to be pre-formed when the simulation starts
  • Exerts attractive/repulsive force on incoming particles according to L-J potential
  • Provides a general model for the simulation

Adaptive Time-step

  • Particle slows down when L-J potential changes sharply
  • Increases the stablity around the equilibrium point
  • $r_{k+1}=r_{k}+\Delta t \nu_{k}+{\Delta t}^2\frac{F_{r_k}}{m}$
  • $r_{k+1}=\nu_{k}+\frac{\Delta t}{2m}(F_{r_k}+F_{r_{k+1}})$
  • $\Delta t_{k+1}={1}/{[\nu_k \times exp(r_c-r_n)]}$ image
  • $r_c$ is critical distance to look for neighbors
  • $r_n$ is the distance from the closest neighbor

Timeout

  • A counter is the triggered whenever the first change in the sign of the force $F=-\frac{\partial V_{LJ}}{\partial r}$ is detected
  • After a reasonable number of time-steps, timeout happens and the particle reaches the equilibrium
  • Simplifies complexity due to large force from the bottom surface image

Velocity Damping

  • Velocity of the particle is dampled if there is a change in sign of velocity or force
  • Velocity sign change indicates collision, and damping emulates inelastic collision
  • Force sign change indicates crissing the equilibrium and damping velocity around it simplifies the motion image

Grids

  • 1/0 indicate presence/absence of old atoms
  • Submatrix dimension $(2 critical distance+1) \times (2 critical distance+1)$ image

Force Submatrix

  • At the beginning, components of F are calculated for each point within the submatrix
  • A new particle uses a look-up table (LUT) of pre-calculated force values
  • This increases the computation speed even when number of particles is large image

Real Physical Parameters

  • For Cu atoms: image

Snapshots taken while running simulation

image image image

About

Python script to simulate and visualize atomic deposition.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages