Atomistic Simulations ByeongJoo Lee Dept of MSE Pohang
Atomistic Simulations Byeong-Joo Lee Dept. of MSE Pohang University of Science and Technology (POSTECH) calphad@postech. ac. kr Byeong-Joo Lee www. postech. ac. kr/~calphad
What is Monte Carlo ? y implicit integer (i-n) implicit double precision (a-h, o-z) call random_seed i_circle = 0 do i = 1, 10000 call random_number(x) call random_number(y) r 2 = x*x + y*y if(r 2. lt. 1. d 0) i_circle = i_circle + 1 if(mod(i, 1000000). eq. 0) then pi = 4. 0 d 0 * dble(i_circle) / dble(i) write(*, *) i, pi endif enddo 1 x c stop end Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Fundamentals (from Lecture Note of Prof. V. Vitek, 2002) Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Distribution of states in real systems f(x) a b x Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – General Monte Carlo Algorithm Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Canonical Ensemble (N, V, T) Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Metropolis Method Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Examples of Metropolis Method Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Magnetization vs. Temperature by Ising model of spins Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo Simulation - General Scheme (Potts Model: Srolovitz) Byeong-Joo Lee www. postech. ac. kr/~calphad
Abnormal Grain Growth – Computer Simulation Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Isothermal-Isobaric Canonical Ensemble (N, P, T) Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Canonical ensemble without exchanging atoms do j = 1, Natom call random_number(random) ; oldpos(: , 1) = pos(: , k); k = (Natom-Nsleep)*random + 1 + Nsleep Old. Box. Size = Box. Size call random_number(random) if(Natom*random. ge. 3) then call MC_List(1, k, 0, NList. MC) ** Select neighbor atoms of the k atom call Compute_EAM_Energy(Ipbc, ene_old, NList. MC) call random_number(random); delta. R(1, k) = delpos*(random-0. 5 d 0) delta. R(2, k) = delpos*(random-0. 5 d 0) delta. R(3, k) = delpos*(random-0. 5 d 0) pos(: , k) = pos(: , k)+delta. R(: , k)/Box. Size Displace. List(: , k) = Displace. List(: , k) + delta. R(: , k) call Compute_EAM_Energy(Ipbc, ene_new, NList. MC) else call Compute_EAM_Energy(Ipbc, ene_old, 0) c Box size variation: First select one axis then select amount call random_number(random); ix = idint(3. d 0*random) + 1 call random_number(random) Box. Size(ix) = Box. Size(ix) * (1. 0 d 0 + dellen*(random-0. 5 d 0)) call Compute_EAM_Energy(Ipbc, ene_new, 0) endif Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Canonical ensemble without exchanging atoms iaccept = 1 if(ene_new. gt. ene_old) then P 01 = dexp((ene_old-ene_new)/boltz/TRequested) call random_number(random) if(random. gt. P 01) then ** Return to the original configuration pos(: , k) = oldpos(: , 1); Box. Size = Old. Box. Size iaccept = 0 Displace. List(: , k) = Displace. List(: , k) + delta. R(: , k) endif if(iaccept. eq. 1) then Dk = dsqrt(dot_product(Displace. List(: , k), Displace. List(: , k))) if( Dk > Skin ) List. Update. Requested=1 if(List. Update. Requested. eq. 1) then call Update_List(Range, del. R, Lg_fun, 0, Nequi, Nsave, Ipbc) List. Update. Requested = 0 endif delta_ene = ene_new - ene_old ene_sum = ene_sum + delta_ene endif enddo Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Canonical ensemble exchanging atoms do j = 1, Natom call random_number(random); k = (Natom-Nsleep)*random + 1 + Nsleep l = (Natom-Nsleep)*random + 1 + Nsleep itemp 1 = IAtom. Type(k); oldpos(: , 1) = pos(: , k); Old. Box. Size = Box. Size itemp 2 = IAtom. Type(l) oldpos(: , 2) = pos(: , l) call random_number(random) if(Natom*random. ge. 3) then call MC_List(2, k, l, NList. MC) ** Select neighbor atoms of the k and l atoms call Compute_EAM_Energy(Ipbc, ene_old, NList. MC) IAtom. Type(k) = itemp 2; IAtom. Type(l) = itemp 1 call random_number(random); pos(: , k) = pos(: , k)+delta. R(: , k)/Box. Size; delta. R(1, k) = delpos*(random-0. 5 d 0) delta. R(2, k) = delpos*(random-0. 5 d 0) delta. R(3, k) = delpos*(random-0. 5 d 0) Displace. List(: , k) = Displace. List(: , k) + delta. R(: , k) call random_number(random); …… pos(: , l) = pos(: , l)+delta. R(: , l)/Box. Size; delta. R(1, l) = delpos*(random-0. 5 d 0) …… Displace. List(: , l) = Displace. List(: , l) + delta. R(: , l) call Compute_EAM_Energy(Ipbc, ene_new, NList. MC) else Byeong-Joo Lee www. postech. ac. kr/~calphad
Phase Separation and Surface Segregation in Cu-Ni Thin Films 298 K 373 K 473 K 800 K Byeong-Joo Lee www. postech. ac. kr/~calphad
Order/Disorder in Co-Pt System - S. I. Park et al. , Scripta Mater. , 2001. Property Cohesive Energy (e. V/atom) Pt 3 Co 5. 500 5. 555± 0. 017 Pt. Co 5. 215 5. 228± 0. 005 Pt. Co 3 4. 873 Lattice Constant (Å) a=3. 833 a=3. 831 3. 754, c/a=. 98 3. 745, c/a=. 98 3. 625 3. 668 Transition Temperature (K) 1070 -1080 1000 970 -980 1100 760 -770 840 Byeong-Joo Lee www. postech. ac. kr/~calphad
Effect of Interface Energy Anisotropy on Morphological Evolution Pure W W + 0. 4 wt% Ni Pure W Vacuum Annealing W-14 at%Ni Byeong-Joo Lee www. postech. ac. kr/~calphad
System in contact with a heat reservoir – Canonical ensemble Number of NVT systems with Ei: Average Energy of a system: Byeong-Joo Lee www. postech. ac. kr/~calphad
Open System with a heat reservoir – Grand Canonical ensemble Number of μVT systems with Ei & Nr: Average Energy of a system: Average # of ptl. of a system: Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Grand Canonical Ensemble (μ, V, T) The number of particles is variable - fluctuations of the concentration are allowed Generally, select randomly one of the procedures 1) Change of the configuration 2) Creation of a particle 3) Destruction of particles exp(-ΔEp/k. T) exp[-(ΔEp-μ)/k. T] exp[-(ΔEp+μ)/k. T] Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Modified Grand Canonical Ensemble (μ, V, T) Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Grand Canonical ensemble do j = 1, Natom call random_number(random); itemp 0 = Iatom. Type(k); k = Natom*random+1 oldpos(: , 1) = pos(: , k); Old. Box. Size = Box. Size call random_number(random) if(Natom*random. ge. 3) then call MC_List(1, k, 0, NList. MC); call Compute_EAM_Energy(Ipbc, ene_old, NList. MC) if(random. gt. 0. 5) then; else; Iatom. Type(k) = itemp 1 = 2 itemp 1 = 1; call random_number(random); endif delta. R(1, k) = delpos*(random-0. 5 d 0) delta. R(2, k) = delpos*(random-0. 5 d 0) delta. R(3, k) = delpos*(random-0. 5 d 0) pos(: , k) = pos(: , k)+delta. R(: , k)/Box. Size call Compute_EAM_Energy(Ipbc, ene_new, NList. MC) else call Compute_EAM_Energy(Ipbc, ene_old, 0) call random_number(random); ix = idint(3. d 0*random) + 1 call random_number(random) Box. Size(ix) = Box. Size(ix) * (1. 0 d 0 + dellen*(random-0. 5 d 0)) call Compute_EAM_Energy(Ipbc, ene_new, 0) endif Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Grand Canonical ensemble prefac = (Amass(itemp 0)/Amass(itemp 1))**(-1. 5) if(itemp 1. ne. itemp 0) then if(itemp 1. gt. itemp 0) then; else delmu 1 = 0 endif delmu 1 = (-1) * delmu; endif P 01 = prefac*dexp((delmu 1 -ene_new+ene_old)/boltz/TRequested) call random_number(random) if(random. gt. P 01) then Iatom. Type(k) = itemp 0 pos(: , k) = oldpos(: , 1) Box. Size = Old. Box. Size else Dk = dsqrt(dot_product(Displace. List(: , k), Displace. List(: , k))) if( Dk > Skin ) call Update_List(Range, del. R, Lg_fun, 0, Nequi, Nsave, Ipbc) delta_ene = ene_new - ene_old ene_sum = ene_sum + delta_ene endif enddo Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Applications Segregation to an interface Order-disorder transition in binary alloy Morphology Evolution of an Alloy Particle MD+MC+MS Hybrid Simulation Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Deposition or Etching Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Determination of Phase Diagram A Modified Embedded Atom Method Interatomic Potential for the Cu-Ni System Byeong-Joo Lee and Jae-Hyeok Shim, CALPHAD 28, 125 -132 (2004). Byeong-Joo Lee www. postech. ac. kr/~calphad
Monte Carlo – Surface or Grain Boundary Segregation Grand Canonical Monte Carlo Byeong-Joo Lee www. postech. ac. kr/~calphad
MD: Tensile Impact on Fe, Fe-H, C, N Byeong-Joo Lee www. postech. ac. kr/~calphad
Limitation of MD Simulation MD simulation time is too short (a few ns) to allow diffusion of atoms • D~10 -12 m 2/sec • t~10 -8 sec • (Dt)1/2~10 -10 m Byeong-Joo Lee www. postech. ac. kr/~calphad
MC+MD Hybrid Simulation • Effects of Interstitial Solute Atoms cannot be investigated using MD Simulations because of not being able to allow probable diffusion of interstitial solute atoms • As a means to overcome the above limitation MC+MD Hybrid Simulation can be considered Byeong-Joo Lee www. postech. ac. kr/~calphad
MC+MS Hybrid Simulation MC M S Possibility of atomic exchange becomes much natural Byeong-Joo Lee www. postech. ac. kr/~calphad
MC+MS: Diffusion of N in Fe-N Byeong-Joo Lee www. postech. ac. kr/~calphad
MC+MS+MD: Tensile Loading Fe-C Fe-N Byeong-Joo Lee www. postech. ac. kr/~calphad
- Slides: 34