Shuffle-Glide dislocation MD and NEB

From Micro and Nano Mechanics Group
Revision as of 18:09, 13 March 2018 by Xzhang11 (talk | contribs)
Jump to navigation Jump to search

Shuffle Glide Dislocation Complex: NEB and MD

Xiaohan Zhang and Wei Cai

Created Mar, 2018, Last modified Mar, 2018

This tutorial corresponds to paper ``Shuffle-Glide Dislocation Complex Nucleation in Silicon Thin Film. It explains how to calibrate and specify SW and MEAM-lammps potential parameters in both MD++ and LAMMPs. It explains how to set up and run NEB calculations to measure the energy barrier of a shuffle-glide dislocation complex nucleated in a thin film with a surface pit. Finite temperature MD simulations are performed in Lammps to capture nucleation events as validation to energy barrier calculations.


Potential for Pure Elements

SW Potential for Si

We calibrate both SW (1985) and SW (1992) potentials in both MD++ and Lammps. The modified version of SW fits to cohesive energy. Their parameters are listed as follows:

MD++: /* original Si version PRB 31, 5262 (1985) */

      aa=15.27991323; bb=11.60319228; plam=45.51575;
      pgam=2.51412; acut=3.77118; pss=2.0951; rho=4.0;

/* modified Si parameters PRB 46, 2250 (1992) */

      aa=16.31972277; bb=11.60319228; plam=48.61499998;
      pgam=2.51412;  acut=3.77118; pss=2.0951; rho=4.;

Lammps:

/* sw, Stillinger and Weber, Phys. Rev. B, v. 31, p. 5262, (1985) */

        Si Si Si 2.1674166667   2.0951  1.80  21.0  1.20  -0.333333333
        7.049827  0.602225  4.0  0.0 0.0

/* PRB 46, 2250 (1992) */

        Si Si Si 2.1683  2.0951  1.80  22.4207904718  1.20  -0.333333333333
        7.5265059125  0.6022245574  4.0  0.0 0.0

MEAM Potential for Si

We use the 'Siz' potential as those used in Kang, et al "Size and Temperature Effects on Brittle and Ductile Fracture of Silicon Nanowires", International Journal of Plasticity, 26, 1387 (2010" and "Brittle and Ductile Fracture of Semiconductor Nanowires – Molecular Dynamics Simulations", Philosophical Magazine, 87, 2169, (2007)."


MD++:

The main parameters in the MEAM potential is specified in the meamf file. (In MD++, this file is in the potentials/MEAMDATA folder.) The lines correspond to 'Siz' is given below.

      'Siz'        'dia'   4.      14           28.086
      4.87        4.4     5.5     5.5          5.5   5.431   4.63    1.
      1.0         3.13            4.47         -1.80         1.600   0

corresponding to the data format of:

     elt        lat     z       ielement     atwt
     alpha      b0      b1      b2           b3    alat    esub    asub
     t0         t1              t2           t3            rozero  ibar

Note that the nearest neighbor distance Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R_i^0 } = alat Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \times \sqrt{3}/4} for the diamond cubic structure.

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \rho_0^{\rm Si}} = rozero will be important only for cross-potential. And note that this is the only different from Si4 line.

ibar is a setting used in the equation of state (EOS), which is explained in SiGe potential tutorial (http://micro.stanford.edu/wiki/MEAM_Potential_for_Si-Ge)


Lammps:

     'Siz'        'dia'   4.      14           28.086
     4.87        4.4     5.5     5.5          5.5   5.431   4.63    1.
     1.0         3.13            4.47         -1.80         1.600   0

corresponds to the data format of

     DATE: 2012-06-29 DATE: 2007-06-11 CONTRIBUTOR: 
     Greg Wagner, gjwagne@sandia.gov 
     CITATION: Baskes, Phys Rev B, 46, 2727-2742 (1992)
     meam data from vax files fcc,bcc,dia    11/4/92
     elt        lat     z       ielement     atwt
     alpha      b0      b1      b2           b3    alat    esub    asub
     t0         t1              t2           t3            rozero  ibar

Test case 1: Potential Calibration for SW and MEAM

This test case is developed in MD++, but also use lammps executable, to evaluate potential energy of a bulk system and a surface pit structure with both SW (1985, 1992) and MEAM potential. To run the test case, follow the steps below,

Take mc2 as an example, one module load the following:

      ::> module load mvapich2/2.0rc1-intel-14, intel/14
      ::> cd MD++.git (svn)
      ::> make sworig build=R SYS=mc2_mpich
      ::> make sw build=R SYS=mc2_mpich
      ::> make meam-lammps build=R SYS=mc2
      ::> bin1/sworig_mc2_mpich scripts/work/sw_meam_calibrations/disl_nuc_hetero.tcl  1 0 1000   
(0 and 1000 are useless, but need to be there otherwise the script will complain missing parameters)
      ::> bin1/sw_mc2_mpich scripts/work/sw_meam_calibrations/disl_nuc_hetero.tcl  1 0 1000  
      ::> meam-lammps_mc2 scripts/work/sw_meam_calibrations/disl_nuc_hetero.tcl 1 0 1000

change in the script the configuration to read in, choosing from runs/sw_meam_calibrations/bulk_sw.cn, SiGeHole_sw.cn. (There are also bulk_meam.cn, SiGeHole_meam.cn generated from disl_nuc_hetero.tcl with meam-lammps)

From MD++, the numbers should be exactly the following:

      MEAM + bulk_sw.cn :            -1.024081.9
      MEAM + SiGeHole_sw.cn:      -9.97015.8
      SWorig + bulk_sw.cn :           -9.58832.6
      SWorig + SiGeHole_sw.cn :  -9.32569.7
      SW       +  bulk_sw.cn :         -1.024081.9
      SW       + SiGeHole_sw.cn :  -9.96031.739


From lammps,

      MEAM + bulk_sw.cn :              -1024081.9
      MEAM + SiGeHole_sw.cn:       -997015.9
      SWorig + bulk_sw.cn :              -958832.17 
      SWorig + SiGeHole_sw.cn :      -932569.26
      SW       +  bulk_sw.cn :              -1024081.9
      SW       + SiGeHole_sw.cn :      -996031.74

NEB calculation work flow

     ::> cd MD++.git
     ::> module list
     Currently Loaded Modulefiles:
     1) null                       2) intel/14                   3) mvapich2/2.0rc1-intel-14
     ::> make sworig build=R SYS=mc2_mpich
     ::> bin1/sworig_mc2_mpich scripts/work/he-si-tf-pit-neb/he-si-tf-pit-special-3-sworig/disl_nuc_hetero.tcl 0 0 001 1
     ::> bin1/sworig_mc2_mpich scripts/work/he-si-tf-pit-neb/he-si-tf-pit-special-3-sworig/disl_nuc_hetero.tcl 1 0.0520 001 1
     ::> bin1/sworig_mc2_mpich scripts/work/he-si-tf-pit-neb/he-si-tf-pit-special-3-sworig/disl_nuc_hetero.tcl 4 0.0520 001 1

The first line executes a thread that 1) creates a thin film of (001) free surface 2) reconstruct surface atoms by perturb the atom positions and forming dimers 3) apply along [110] direction a compression strain by the increments of 0.001 from 0 to 0.06, i.e., 6% compressive strain.

The second line reads in initial config of (3) from above and create a shuffle-glide dislocation complex beneath top free surface, which is then relaxed for several steps. The output configuration can be examined by importing w-loop-compression-surf001-eps0.0520.cfg to ovito/DXA.

The third line needs to be launched within pbs file `cause it execute sworig_mc2_mpich in MPI mode, calling stringrelax_parallel (). The energy barrier curve can be visualized by using octave/matlab such as,

Test case 2: Energy barrier with SW for strain 0.0520

      ::> load runs/he-si-tf-pit-neb/he-si-tf-pit-special-3-sworig/w-disl-nuc-hetero-001-0.0520.24/stringeng.out
      ::> plot(stringeng(1:100:end, 3:5:end)', '*')

Apply this work flow for different strain, one gets the energy barrier as a function of applied strain.

Note that, dislocation loop size of status == 1 can be adjusted manually in the script by specifying w in make_glide_dislocation_loop_1, for example, minor adjustment is needed to get a smooth energy barrier - strain curve.


Finite temperature MD with Lammps

We use lammps-30Jul16 version.

    ::> cd lammps-30Jul16/lib/meam
    ::> make -f Makefile.gfortran (for meam)
    ::> cd lammps-30Jul16/src
    ::> make yes-manybody
    ::> make yes-meam
    ::> make mpi 


First, one estimates thermal expansion ratios for a bulk system of si using MEAM and sworig.

    ::> cd MD++.git/
    ::> bin1/sworig_mc2 scripts/work/he-si-tf-pit-md/thermal_init_config/therm_exp_estimates/bulk_generator.tcl 0
    ::> cd /home/xzhang11/Planet/Libs/MD++.git/scripts/work/he-si-tf-pit- 
         md/thermal_init_config/therm_exp_estimates/thermal_equilibrate_load_hold_si_800K
    ::> lmp_mpi < thermal_equilibrate.sw (meam)

From initial and final equilibrated states, one gets thermal expansion. And one records the coefficents in

        scripts/work/he-si-tf-pit-md/thermal_init_config/therm_initconfig_generator.tcl
    ::> sw_mc2  scripts/work/he-si-tf-pit-md/thermal_init_config/therm_initconfig_generator.tcl 0 1 1000 

To run the lammps scripts, first create surface pit structure with MD++ as follows,

    ::> cd MD++.git/scripts/work/he-si-tf-pit-md/he-si-pit-800K-54-thermal-relax-nvt
    ::> mpirun -np $ncpu lammps-30Jul16/src/lmp_mpi < input.meam

Test case 3: Nucleation event with SW for strain 0.0520

      ::> load runs/he-si-tf-pit-neb/he-si-tf-pit-special-3-sworig/w-disl-nuc-hetero-001-0.0520.24/stringeng.out
      ::> plot(stringeng(1:100:end, 3:5:end)', '*')

Apply this work flow for different strain, one gets the energy barrier as a function of applied strain.