Byeong-Joo Lee Atomistic Simulations Byeong-Joo Lee Dept. of MSE Pohang University of Science and...

Preview:

Citation preview

Byeong-Joo Lee http://cmse.postech.ac.kr

Atomistic SimulationsAtomistic Simulations

Byeong-Joo LeeByeong-Joo Lee

Dept. of MSEDept. of MSE

Pohang University Pohang University

of Science and Technologyof Science and Technology

(POSTECH)(POSTECH)

calphad@postech.ac.krcalphad@postech.ac.kr

Byeong-Joo Lee http://cmse.postech.ac.kr

Atomistic SimulationAtomistic Simulation

I. General Aspects of Atomistic Modeling

II. Fundamentals of Molecular Dynamics III. Fundamentals of Monte Carlo Simulation

IV. Semi-Empirical Atomic Potentials (EAM, MEAM)

V. Analysis, Computation of Physical Quantities

VI. Exercise using Simulation Code

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation

1. Objectives · Equilibrium configuration of a system of interacting particles, Analysis of the structure and its relation to physical properties. · Dynamic development

2. Applications · Crystal Structure, Point Defects, Surfaces, Interfaces, Grain Boundaries, Dislocations, Liquid and glasses, …

3. Challenges · Time and Size Limitations

· Interatomic Potential

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation

612

4)(rr

rLJ

• Potential Energy (e.g. pairwise interaction)

|)(|),,,( 21 jiLJiji

N rrrrrVV

• Equation of MotionVF

dt

rdm

irii

i 2

2

• Potential Truncation · Radial Cutoff · Long-range Correction · Neighbor List

• Periodic Boundary Condition · Minimum image criterion · Free surfaces

1 1 4 2 ( )x

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation –– force & potential energy force & potential energy

ji rr j

ijij

ri VFi

ijijF

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic Simulation General Aspects of Atomistic Simulation –– equation of motionequation of motion

VFdt

rdm

irii

i 2

2

ii

i Fdt

rdm

2

2

@ time = to, assume that the force will not change during the next ∆t period

am

F

dt

rd

2

2

2)(2/1)()()( ttattvtrttr oooo

@ time = to+ ∆t, based on the newly obtained atom positions, forces on all individual atoms are newly calculated. and, assume again that the forces will not change during the next ∆t period

2)(2/1)()()2( tttatttvttrttr oooo

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation –– size of size of ΔΔtt

How large should be the ∆t ?

More than several tens of time steps should be spent during a vibration

∆t ≈10-15 sec. for most solid elements

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation

612

4)(rr

rLJ

• Potential Energy (e.g. pairwise interaction)

|)(|),,,( 21 jiLJiji

N rrrrrVV

• Equation of MotionVF

dt

rdm

irii

i 2

2

• Potential Truncation · Radial Cutoff · Long-range Correction · Neighbor List

• Periodic Boundary Condition · Minimum image criterion · Free surfaces

1 1 4 2 ( )x

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation –– radial cutoff radial cutoff

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation –– potential truncation potential truncation

1 1 4 2 ( )x

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation –– Neighbor list Neighbor list

Cutoff radius

skin

Neighbor List is updated whenever maximum atomic displacement > ½ skin

Byeong-Joo Lee http://cmse.postech.ac.kr

Example Example –– Potential & Force Table Potential & Force Table

do i=1,Ncomp eps(i,i) = epsilon(i) sig(i,i) = sigma(i) sig12(i,i) = sig(i,i)**12 sig6(i,i) = sig(i,i)**6 enddo

c cutoff potential Phicutoff = 4.d0*eps*(sig12/(Rcutoff**12) - sig6/(Rcutoff**6))cc Make a table for pair potential and its derivative between each pair RsqMin = Rmin**2 DeltaRsq = ( Rcutoff**2 - RsqMin ) / ( LineTable - 1 ) OverDeltaRsq = 1.d0 / DeltaRsqc do k=1,LineTable Rsq = RsqMin + (k-1) * DeltaRsq rm2 = 1.d0/Rsq rm6 = rm2*rm2*rm2 rm12 = rm6*rm6cc 4*eps* [s^12/r^12 - s^6/r^6] - phi(Rc) PhiTab(k,:,:) = 4.d0*eps * (sig12*rm12 - sig6*rm6) - phicutoffcc The following is dphi = -(1/r)(dV/dr) = 24*eps*[2s^12/r^12-s^6/r^6]/r^2 DPhiTab(k,:,:) = 24.d0*eps*rm2 * ( 2.d0*sig12*rm12 - sig6*rm6 ) enddo

612

4)(rr

rLJ

Byeong-Joo Lee http://cmse.postech.ac.kr

Example Example –– Neighbor List Neighbor List RangeSq = Range*Range L = 1c

do i = 1,Natom Mark1(i) = L istart = i+1

do j = istart,Natom Sij = pos(:,i) - pos(:,j) where ( abs(Sij) > 0.5d0 .and. Ipbc.eq.1 ) Sij = Sij - sign(1.d0,Sij) end where

c go to real space units Rij = BoxSize*Sij Rsqij = dot_product(Rij,Rij) if ( Rsqij < RangeSq ) then List(L) = j L = L + 1 endif enddo

Mark2(i) = L - 1 enddo

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation

612

4)(rr

rLJ

• Potential Energy (e.g. pairwise interaction)

|)(|),,,( 21 jiLJiji

N rrrrrVV

• Equation of MotionVF

dt

rdm

irii

i 2

2

• Potential Truncation · Radial Cutoff · Long-range Correction · Neighbor List

• Periodic Boundary Condition · Minimum image criterion · Free surfaces

1 1 4 2 ( )x

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation –– Periodic Boundary Condition Periodic Boundary Condition

do i=1,Natom read(2,*) PosAtomReal(i) pos(:,i) = PosAtomReal/BoxSizeenddo

-------------------------------------

Sij = pos(:,i) - pos(:,j)

where ( abs(Sij) > 0.5d0 .and. Ipbc.eq.1 )

Sij = Sij - sign(1.d0,Sij) end where

When PBC is applied, Rcutoff should be < than the half of sample dimension

Byeong-Joo Lee http://cmse.postech.ac.kr

• Kinetic Energy

General Aspects of Atomistic SimulationGeneral Aspects of Atomistic Simulation

i

iiB FrD

TkNPV1

2

2

1i

iivmK

TkND

K B2

• Pressure Virial equation

• Temperature

• Stress Tensor

i ijijijiii rFvvm

V

1

)(3

1332211 P

i ijijijii rFvm

VP 2

3

1

Byeong-Joo Lee http://cmse.postech.ac.kr

General Aspects of Atomistic Simulation General Aspects of Atomistic Simulation –– Stress Tensor Stress Tensor

,

VE p

r

r

ErErrE p

pp )()(

i ijijijiii rFvvm

V 1

Equilibrium system @ 0K

ijij rr

ij

ij

p

jiij

ij

p

jip r

r

Er

r

EE

,,,

ijij

jiij

ij

p

ji

rFV

rr

E

V

,,

11

Equilibrium system @ a finite temperature

ii vv

v

v

EvEvvE kin

kinkin )()(

iii

iiii

ikin vvmvvmE

,,

Thermally induced stress kinTT EVE

,

iii

i

T vvmV 1

Byeong-Joo Lee http://cmse.postech.ac.kr

)(!3!2

)()()()( 432 tOt

rt

tattvtrttr

)(!3!2

)()()()( 432 tOt

rt

tattvtrttr

t

trttrttv

)()(

)2/(

The Verlet algorithm2)()()(2)( ttattrtrttr

tttrttrtv 2/)]()([)(

Integration Algorithm

Computing time and memoryNumerical error

StabilityEnergy/momentum conservation

Reversibility

Molecular Dynamics Molecular Dynamics – Time Integration of equations of motion– Time Integration of equations of motion

Leapfrog algorithm

tttvtrttr )2/()()(

ttattvttv )()2/()2/(

t

ttrtrttv

)()(

)2/(

Byeong-Joo Lee http://cmse.postech.ac.kr

2)(2/1)()()2( tttatttvttrttr

2)(2/1)()()( ttattvttrtr

Velocity Verlet algorithm

2)(2/1)()()( ttattvtrttr

ttatvttv )(2/1)()2/(

))(()/1()( ttrVmtta

tttattvttv )(2/1)2/()(

Gear’s Predictor-corrector algorithm

Integration Algorithm

Computing time and memoryNumerical error

StabilityEnergy/momentum conservation

Reversibility

Molecular Dynamics Molecular Dynamics – Time Integration of equations of motion– Time Integration of equations of motion

2)()(2)()2( tttattrtrttr

Byeong-Joo Lee http://cmse.postech.ac.kr

Example Example –– Time integration of equations of motion Time integration of equations of motionc dr = r(t+dt) - r(t) and updating of Displacement deltaR = deltat*vel + 0.5d0*deltatsq*acc pos = pos + deltaR

c BoxSize rescale for constant P if(ConstantP) then BoxSize = BoxSize + deltat*VelBoxSize +.5d0*deltatsq*AccBoxSize Volume = product(BoxSize) Density = dble(Natom) / Volume deltaV = Volume - Vol_Old Recipro(1) = BoxSize(2) * BoxSize(3) Recipro(2) = BoxSize(3) * BoxSize(1) Recipro(3) = BoxSize(1) * BoxSize(2) VelBoxSize = VelBoxSize + 0.5d0*deltat*AccBoxSize endif

c velocity rescale for constant T -> v(t+dt/2) if(ConstantT .and. (temperature > 0) ) then chi = sqrt( Trequested / temperature ) vel = chi*vel + 0.5d0*deltat*acc else vel = vel + 0.5d0*deltat*acc endif c a(t+dt),ene_pot,Virial call Compute_EAM_Forces(Ipbc,f_stress)

c add Volume change term to Acc when ConstantP if(ConstantP) then do i=1,Natom acc(:,i) = acc(:,i) - 2.0d0 * vel(:,i) * VelBoxSize/BoxSize enddo endif

c v(t+dt) vel = vel + 0.5d0*deltat*acc

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics –– Running, measuring and analyzing Running, measuring and analyzing

1. Build-up : initial configuration and velocities

2. Speed-up : Radial cut-off and Neighbor list

3. Controlling the system · MD at constant Temperature · MD at constant Pressure · MD at constant Stress

4. Measuring and analyzing · Average values of physical quantities · Physical Interpretation from statistical mechanics

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics –– MD at constant temperature MD at constant temperature

2

2

1i

iivmK TkNK B2

3

v(t+Δt/2) = sqrt (To/T) v(t) + ½ a(t)Δt

Scaling of velocities : To : Target value of temperature T : instantaneous temperature

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – Lagrangian equation of motion– Lagrangian equation of motion

0)/()/( kk qLqLdt

d

VKqqL ),(

Vfrmiriii

q: generalized coordinates : time derivative of qK: Kinetic energyV: Potential energy

q

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – MD at constant pressure– MD at constant pressure

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – MD at constant stress– MD at constant stress

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – MD at constant stress: – MD at constant stress: Parrinello and RahmanParrinello and Rahman

Byeong-Joo Lee http://cmse.postech.ac.kr

Analysis Analysis –– to confirm equilibrium to confirm equilibrium

Byeong-Joo Lee http://cmse.postech.ac.kr

Analysis Analysis –– to confirm maintenance of structure to confirm maintenance of structure

Byeong-Joo Lee http://cmse.postech.ac.kr

Example Example –– Computation of order parameter, Lambda Computation of order parameter, Lambda if(Lh_fun.and.mod(mdstep,Nsampl).eq.0 .and. mdstep.le.Nequi) then

Alambda = dcos(FourPi*pos(1,1)*xcell) & + dcos(FourPi*pos(2,1)*ycell) & + dcos(FourPi*pos(3,1)*zcell) Alam1 = 0.d0

do i=2,Natom Alambda = Alambda + dcos(FourPi*pos(1,i)*xcell) & + dcos(FourPi*pos(2,i)*ycell) & + dcos(FourPi*pos(3,i)*zcell)

Alam1 = Alam1 + dcos(FourPi*(pos(1,i)-pos(1,1))*xcell) & + dcos(FourPi*(pos(2,i)-pos(2,1))*ycell) & + dcos(FourPi*(pos(3,i)-pos(3,1))*zcell) enddo

Alambda = Alambda / dble(3*Natom) Alam1 = Alam1 / dble(3*Natom-3)endif

Byeong-Joo Lee http://cmse.postech.ac.kr

Analysis Analysis –– Identification of structure Identification of structure

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – Analyzing: radial distribution function– Analyzing: radial distribution function

Partial RDFs of Cu50Zr50 during a rapid cooling

(a) Cu–Cu pair (b) Cu–Zr pair(c) Zr–Zr pair

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – Analyzing: radial distribution function– Analyzing: radial distribution function

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – Analyzing: angle distribution function– Analyzing: angle distribution function

Byeong-Joo Lee http://cmse.postech.ac.kr

Example Example –– Sampling data for g( r) and bond-angle distribution Sampling data for g( r) and bond-angle distribution do i = 1,Natom do j = istart,Natom Sij = pos(:,i) - pos(:,j) call Rij_Real(Rij,Sij) Rsqij = dot_product(Rij,Rij)

NShell = idint(sqrt(Rsqij)/delR + 0.5d0) Ngr(Nshell) = Ngr(Nshell) + 1c

if ( Rsqij < RmSq ) then do k = j+1,Natom Sik = pos(:,i) - pos(:,k) call Rij_Real(Rik,Sik) Rsqik = dot_product(Rik,Rik)

if ( Rsqik < RmSq ) then Num_Ang = Num_Ang + 1 costheta = dot_product(Rik,Rij) /dsqrt(Rsqij) /dsqrt(Rsqik) degr = 180.d0 * dacos(costheta) / pi NShell = idint(degr + 0.5d0) Nag(Nshell) = Nag(Nshell) + 1 endif enddo endif enddoenddo

Byeong-Joo Lee http://cmse.postech.ac.kr

Example Example –– Printing data for g( r) and bond-angle distribution Printing data for g( r) and bond-angle distribution

c print g(r) function values every Ng_fun's time step with normalizationc Ntotal = Num_Update * Natom totalN = dble(Num_Update * Natom) / 2.d0c do i=1,160 gr = 0.d0 if(Ngr(i) .gt. 0) then radius = delR * dble(i) vshell = FourPiDelR * radius * radius gr = dble(Ngr(i)) / (totalN * Density * vshell) write(9,'(1x,f8.3,i10,f13.6)') radius,Ngr(i),gr endif enddocc print bond-angle distribution c do i=1,180 if(Nag(i) .gt. 0) then gr = dble(Nag(i)) / dble(Num_Ang) write(9,'(1x,i8,f16.4)') i,gr endif enddo

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – Analyzing: local– Analyzing: local atomistic structureatomistic structure

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – Analyzing: local– Analyzing: local atomistic structureatomistic structure

Byeong-Joo Lee http://cmse.postech.ac.kr

Analysis Analysis –– Identification of structure Identification of structure

Byeong-Joo Lee http://cmse.postech.ac.kr

Molecular Dynamics Molecular Dynamics – Computing Physical Properties– Computing Physical Properties

1. Bulk Modulus & Elastic Constants

2. Surface Energy, Grain Boundary Energy & Interfacial Energy

3. Point Defects Properties · Vacancy Formation Energy · Vacancy Migration Energy · Interstitial Formation Energy · Binding Energy between Defects

4. Structural Properties

5. Thermal Properties · Thermal Expansion Coefficients · Specific Heat · Melting Point · Enthalpy of melting, …

Byeong-Joo Lee http://cmse.postech.ac.kr

Computing Physical PropertiesComputing Physical Properties – Elasticity Tensor – Elasticity TensorMost general linear relationship between stress tensor and strain tensor components

klijklij C 81 constants

jilkijlkjiklijkl CCCC 36 constants

klijijkl CC 21 constants for the most general case of anisotropy

Further reduction of the number of independent constants can be made by rotating the axis system,but the final number depends on the crystal symmetry .

Short-hand matrix notation: tensor 11 22 33 23 31 12 matrix 1 2 3 4 5 6 examples C1111 = C11, C1122 = C12, C2332 = C44

for Isotropic Crystals

for Cubic Crystals

for Hexagonal Crystals C11(= C22), C12, C13(= C23), C33, C44(= C55), C66, (= (C11- C12)/2)

)( jkiljlikklijijklC 12C 44C

ijkljkiljlikklijijkl CCCCCC )2()( 4412114412

Byeong-Joo Lee http://cmse.postech.ac.kr

Computing Physical PropertiesComputing Physical Properties – Elastic Moduli – Elastic Moduli

Change of the potential energy and total volume upon application of the strain

Byeong-Joo Lee http://cmse.postech.ac.kr

Computing Physical PropertiesComputing Physical Properties – Elastic Moduli – Elastic Moduli

In practical calculations the evaluation of the elastic moduli is done by applying suitable small strains to the block of atoms, relaxing, and evaluating the total energy as a function of the applied strain. In this calculation the internal relaxations are automatically included.

The elastic moduli are then obtained by approximating the numerically calculated energy vs. strain dependence by a second or higher order polynomial and taking the appropriate second derivatives with respect to the strain.

Byeong-Joo Lee http://cmse.postech.ac.kr

Computing Physical PropertiesComputing Physical Properties – Bulk Moduli – Bulk Moduli

epsilon = 1.0d-03 fac = 1.6023d+00 / epsilon / epsilon Volume = product(BoxSize) AV = Volume / dble(NAtom)cc B : increase BoxSize() by a factor of +- epsilon c BoxSize = Old_BoxSize * (1.d0 + epsilon) call Compute_EAM_Energy(Ipbc,ene_sum,0) ene_ave_p1 = ene_sum / dble(Natom)c BoxSize = Old_BoxSize * (1.d0 - epsilon) call Compute_EAM_Energy(Ipbc,ene_sum,0) ene_ave_m1 = ene_sum / dble(Natom)c B0 = fac * (ene_ave_p1 + ene_ave_m1 - 2.d0*ene_ave_0) / AV / 9.d0 write(*,*) ' B = ', B0, ' (10^12 dyne/cm^2 or 100Gpa)'

Byeong-Joo Lee http://cmse.postech.ac.kr

Computing Physical PropertiesComputing Physical Properties – Elastic Moduli – Elastic Moduli

Elastic Constant

x → y → z → K

B x(1+ε) y(1+ε) z(1+ε) 9

C11 x(1+ε) y z 1

Ca x+εy y+εx z 4

Cb x+εz y z+εx 4

Cc x(1+ε) y(1+ε) z(1-ε) 3

Elastic Constant

x → y → z → K

C11 x(1+ε) y z 1

γ’ x(1+ε) y(1-ε) z 4

γ x+εy y+εx z 4

2' 1211 CC

for Cubic for HCPfor Cubic for HCP

Byeong-Joo Lee http://cmse.postech.ac.kr

σ =

{E( ) – [E( )+E( )]}

/ 2A

Computing Physical PropertiesComputing Physical Properties – Ni – Ni33Al/Ni Interfacial EnergyAl/Ni Interfacial Energy

Byeong-Joo Lee http://cmse.postech.ac.kr

Computing Physical PropertiesComputing Physical Properties – Grain Boundary Energy – Grain Boundary Energy

Byeong-Joo Lee http://cmse.postech.ac.kr

Computing Physical PropertiesComputing Physical Properties – Melting Point (Interface method) – Melting Point (Interface method)

1. Prepare two samples, one is crystalline and the other is liquid2. Estimate the melting point3. Perform an NPT MD run for solid at the estimated MP, and determine

sample dimensions (apply 3D PBC)4. Perform an NPT MD run for liquid, keeping the same sample

dimensions in y and z directions with the solid5. Put together the two samples in the x direction6. Perform NVT MD runs at various sample size in the x direction, then

perform NVE MD runs

※ Partial melting or solidification and change of temperature will occur depending on the estimated mp. in comparison with real mp.

The equilibrium temperature between solid and liquid phases at zero external pressure is the melting point of the material

※ If full melting or solidification occurs the step 2-6 should be repeated with newly estimated melting point

Recommended