Shuffle-Glide dislocation MD and NEB: Difference between revisions

From Micro and Nano Mechanics Group
Jump to navigation Jump to search
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 5: Line 5:
<P ALIGN="CENTER"><STRONG>Xiaohan Zhang and Wei Cai</STRONG></P>
<P ALIGN="CENTER"><STRONG>Xiaohan Zhang and Wei Cai</STRONG></P>
</DIV>
</DIV>
<P ALIGN="CENTER"> Created Mar, 2017, Last modified Mar, 2017</P>
<P ALIGN="CENTER"> Created Mar, 2018, Last modified Mar, 2018</P>
<P>
<P>


Line 97: Line 97:
::> meam-lammps_mc2 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, bulk_meam.cn, SiGeHole_meam.cn, SiGeHole_sw.cn. From MD++, the numbers should be exactly the following:
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
MEAM + bulk_sw.cn : -1.024081.9
MEAM + SiGeHole_sw.cn: -9.97015.8
SWorig + bulk_sw.cn : -9.58832.6
SWorig + bulk_sw.cn : -9.58832.6
SWorig + SiGeHole_sw.cn : -9.32569.7
SWorig + SiGeHole_sw.cn : -9.32569.7
Line 111: Line 113:
MEAM + bulk_sw.cn : -1024081.9
MEAM + bulk_sw.cn : -1024081.9
MEAM + SiGeHole_sw.cn: -997015.9
MEAM + SiGeHole_sw.cn: -997015.9
SWorig + bulk_sw.cn : -958832.17
SWorig + bulk_sw.cn : -958832.17
SWorig + SiGeHole_sw.cn : -932569.26
SWorig + SiGeHole_sw.cn : -932569.26
SW + bulk_sw.cn : -1024081.9
SW + bulk_sw.cn : -1024081.9
SW + SiGeHole_sw.cn : -996031.74
SW + SiGeHole_sw.cn : -996031.74

==Cross Potential between Ge and Si==

The parameters for the cross potential are specified in '''SiGe.meam''' file. The lines relevant for the cross potential (i.e. between species 1 and 2) are shown below. The values correspond to Table 1 of G. Grochola et al. / Chemical Physics Letters 493 (2010) 57–60 59.

re(1,2) = 2.67 (<math>r_e</math>)
delta(1,2) = 0.071 (related to <math>E_c</math>, see below)
lattce(1,2) = b1 (<math>B</math>)
lattce(1,2) = b1 (<math>Rcut</math>)
lattce(1,2) = b1 (<math>C_{\max}</math>)
lattce(1,2) = b1 (<math>C_{\min}</math>)
d = 0

The values for <math>E_c ({\rm AuGe}) = 3.189</math>.
This value is related to delta(1,2) through

<math>E_c ({\rm AuGe}) = 0.5*[ E_c ({\rm Au}) + E_c({\rm Ge}) ] - {\rm delta}(1,2) = 0.5 * (3.93 + 3.85) - 0.071 = 3.819</math>.

<math>\rho_0^{\rm Ge} / \rho_0^{\rm Au}</math> = 1.5228 because of the <math>\rho_0^{\rm Ge}</math> and <math>\rho_0^{\rm Au}</math> values specified above. This value of <math>\rho_0^{\rm Ge} / \rho_0^{\rm Au}</math> leads to the following impurity formation energies

<math>E_1 = 0.331 </math> eV Ge impurity in FCC Au (MEAM)
<math>E_2 = 1.387 </math> eV Au impurity in DC Ge (MEAM)

These values are to be compared with VASP predictions

<math>E_1 = 0.331 </math> eV Ge impurity in FCC Au (VASP/LDA/US)
<math>E_2 = 1.130 </math> eV Au impurity in DC Ge (VASP/LDA/US)

Cmax = 2.8 is the default value.

==Benchmark in MD++==

Compile the code using the following command on mc2.

make meam-lammps build=R SYS=mc2_mpich

Use the following command to compute the melting point of pure Si, Ge, and Si0.5Ge0.5.

bin/meam-lammps_gpp scripts/work/si_au/si_au_benchmark.tcl 1

The results are

a0 = 4.07300759775 Angstrom
Ecoh = -3.92996804082 eV

Use the following command to compute the equilibrium lattice constant and cohesive energy of pure Si (DC).

bin/meam-lammps_gpp scripts/work/si_au/si_au_benchmark.tcl 0

The results are
a0 = 5.43100051581 Angstrom
Ecoh = -4.63000000205 eV


==NEB calculation work flow==


::> cd MD++.git
Use the following command to compute the equilibrium lattice constant and cohesive energy of Au-Si (B1).
::> 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
bin/meam-lammps_gpp scripts/work/si_au/si_au_benchmark.tcl 2
::> 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
The results are
1) creates a thin film of (001) free surface
2) reconstruct surface atoms by perturb the atom positions and forming dimers
a0 = 5.4 Angstrom
3) apply along [110] direction a compression strain by the increments of 0.001 from 0 to 0.06, i.e., 6% compressive strain.
Ecoh = -4.155000000083061 eV


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.
===melting point===


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,
Use the following command to compute the impurity of a Au atom in Si DC lattice.


===Test case 2: Energy barrier with SW for strain 5.2%===
bin/meam-lammps_gpp scripts/work/si_au/si_au_benchmark.tcl 4


::> load runs/he-si-tf-pit-neb/he-si-tf-pit-special-3-sworig/w-disl-nuc-hetero-001-0.0520.24/stringeng.out
The results depend slightly on the cell size
::> plot(stringeng(1:100:end, 3:5:end)', '*')
cell size, Eimp(eV)
3x3x3 3.914
4x4x4 3.968
5x5x5 3.987
10x10x10 4.005
20x20x20 4.008


Apply this work flow for different strain, one gets the energy barrier as a function of applied strain.
The result in the paper (S. Ryu and W.Cai JPCM 22 055401 (2010), Table 2,
is <math>E_2 = 3.968</math> (eV) for a Au atom in Si DC crystal.
So it seems that the result in JPCM (2010) corresponds to the 4x4x4 cell here.


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.


Use the following command to compute the impurity of a Si atom in Au fcc lattice.


==Finite temperature MD with Lammps==
bin/meam-lammps_gpp scripts/work/si_au/si_au_benchmark.tcl 3


We use lammps-30Jul16 version.
cell size, Eimp(eV)
2x2x2 0.639
3x3x3 0.660
4x4x4 0.665
5x5x5 0.667
10x10x10 0.669
20x20x20 0.669


::> cd lammps-30Jul16/lib/meam
The result in the paper (S. Ryu and W.Cai JPCM 22 055401 (2010), Table 2,
::> make -f Makefile.gfortran (for meam)
is <math>E_1 = 0.636</math> (eV) for a Si atom in Au FCC crystal.
::> cd lammps-30Jul16/src
So it seems that for a Si in Au FCC crystal, the predicted results here using
::> make yes-manybody
the 2x2x2 cell corresponds to the value in JPCM (2010).
::> make yes-meam
::> make mpi


===phase diagram===


First, one estimates thermal expansion ratios for a bulk system of si using MEAM and sworig.
Use the following command to obtain the phase diagram of SiGe.


::> cd MD++.git/
bin/meam-lammps_gpp scripts/work/si_au/si_au_benchmark.tcl 4
::> 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
The results depend slightly on the cell size
scripts/work/he-si-tf-pit-md/thermal_init_config/therm_initconfig_generator.tcl
cell size, Eimp(eV)
3x3x3 3.914
4x4x4 3.968
5x5x5 3.987
10x10x10 4.005
20x20x20 4.008


::> sw_mc2 scripts/work/he-si-tf-pit-md/thermal_init_config/therm_initconfig_generator.tcl 0 1 1000
The result in the paper (S. Ryu and W.Cai JPCM 22 055401 (2010), Table 2,
is <math>E_2 = 3.968</math> (eV) for a Au atom in Si DC crystal.
So it seems that the result in JPCM (2010) corresponds to the 4x4x4 cell here.


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
Use the following command to compute the impurity of a Si atom in Au fcc lattice.
::> mpirun -np $ncpu lammps-30Jul16/src/lmp_mpi < input.meam


===Test case 3: Nucleation event with SW for strain 5.2%===
bin/meam-lammps_gpp scripts/work/si_au/si_au_benchmark.tcl 3


::> load runs/he-si-tf-pit-neb/he-si-tf-pit-special-3-sworig/w-disl-nuc-hetero-001-0.0520.24/stringeng.out
cell size, Eimp(eV)
::> plot(stringeng(1:100:end, 3:5:end)', '*')
2x2x2 0.639
3x3x3 0.660
4x4x4 0.665
5x5x5 0.667
10x10x10 0.669
20x20x20 0.669


Apply this work flow for different strain, one gets the energy barrier as a function of applied strain.
The result in the paper (S. Ryu and W.Cai JPCM 22 055401 (2010), Table 2,
is <math>E_1 = 0.636</math> (eV) for a Si atom in Au FCC crystal.
So it seems that for a Si in Au FCC crystal, the predicted results here using
the 2x2x2 cell corresponds to the value in JPCM (2010).

Latest revision as of 18:10, 13 March 2018

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 = alat for the diamond cubic structure.

= 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 5.2%

      ::> 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 5.2%

      ::> 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.