LAMMPS Extrinsic Stacking-Fault Energy

From EVOCD
(Difference between revisions)
Jump to: navigation, search
(LAMMPS logfile)
(Output for method 2 using stackint2)
Line 467: Line 467:
 
|}
 
|}
  
== Output for method 2 using ''stackint2''==
+
== Output for ''iCu_ext.txt'' ==
  
 
=== LAMMPS logfile ===
 
=== LAMMPS logfile ===
  
The log file for second script, stackint2.txt should now look like this:
+
The log file for second script should look like this:
  
 
{|border  ="0"
 
{|border  ="0"
 
|<pre>
 
|<pre>
LAMMPS (1 Jul 2012)
+
LAMMPS (July 2014)
# Input file for Stack Fault Energy surface of Nickel
+
# Input file for Stack Fault Energy surface of Copper
# Richard Glaze, 2014
+
# Dennis Williams and Richard Glaze IV, 2014
# --------------------- INITIALIZAITION ---------------------
+
# --------------- INITIALIZATION ------------------
units metal
+
units metal
 
dimension 3
 
dimension 3
 
boundary p p s
 
boundary p p s
 
atom_style atomic
 
atom_style atomic
variable latparam1 equal 3.52
+
variable latparam1 equal 3.615
variable x_displace equal -1*(${latparam1}/sqrt(6))
+
variable z_displace equal 2.08712
variable x_displace equal -1*(3.52/sqrt(6))
+
variable x_displace equal ${latparam1}/sqrt(6)
variable z_displace equal -1*(${latparam1}/sqrt(3))
+
variable x_displace equal 3.6150000000000002/sqrt(6)
variable z_displace equal -1*(3.52/sqrt(3))
+
 
variable xdim equal ${latparam1}*sqrt(6)/2*10
 
variable xdim equal ${latparam1}*sqrt(6)/2*10
variable xdim equal 3.52*sqrt(6)/2*10
+
variable xdim equal 3.6150000000000002*sqrt(6)/2*10
 
variable ydim equal ${latparam1}*sqrt(2)/2*10
 
variable ydim equal ${latparam1}*sqrt(2)/2*10
variable ydim equal 3.52*sqrt(2)/2*10
+
variable ydim equal 3.6150000000000002*sqrt(2)/2*10
variable Ecoh equal -4.45026
+
#Ecoh is the cohesive energy of Nickel
+
# --------------------- ATOM DEFINITION ---------------------
+
lattice fcc ${latparam1}
+
lattice fcc 3.52
+
Lattice spacing in x,y,z = 3.52 3.52 3.52
+
region 1 block -.001 ${xdim} -.001 ${ydim} -.001 15.4839 units box
+
region 1 block -.001 43.111019472983934 -.001 ${ydim} -.001 15.4839 units box
+
region 1 block -.001 43.111019472983934 -.001 24.890158697766473 -.001 15.4839 units box
+
region 2 block -.001 ${xdim} -.001 ${ydim} 15.4839 17.5161 units box
+
region 2 block -.001 43.111019472983934 -.001 ${ydim} 15.4839 17.5161 units box
+
region 2 block -.001 43.111019472983934 -.001 24.890158697766473 15.4839 17.5161 units box
+
region 3 block -.001 ${xdim} -.001 ${ydim} 17.5161 36.5808 units box
+
region 3 block -.001 43.111019472983934 -.001 ${ydim} 17.5161 36.5808 units box
+
region 3 block -.001 43.111019472983934 -.001 24.890158697766473 17.5161 36.5808 units box
+
region whole block 0 ${xdim} 0 ${ydim} 0 36.5808 units box
+
region whole block 0 43.111019472983934 0 ${ydim} 0 36.5808 units box
+
region whole block 0 43.111019472983934 0 24.890158697766473 0 36.5808 units box
+
  
#the -.001 in the -x, -y, and lower limit of region 1 are only to overcome a simple numerical issue but can be considered 0
+
# ------------------ ATOM DEFINITION -------------------
 +
lattice          fcc ${latparam1}
 +
lattice          fcc 3.6150000000000002
 +
Lattice spacing in x,y,z = 3.615 3.615 3.615
 +
region   1 block -.001 ${xdim} -.001 ${ydim} -.001 28.875194 units box
 +
region   1 block -.001 44.27452710080594 -.001 ${ydim} -.001 28.875194 units box
 +
region   1 block -.001 44.27452710080594 -.001 25.561910139893698 -.001 28.875194 units box
 +
region          2 block -.001 ${xdim} -.001 ${ydim} 28.875194 30.68269 units box
 +
region          2 block -.001 44.27452710080594 -.001 ${ydim} 28.875194 30.68269 units box
 +
region          2 block -.001 44.27452710080594 -.001 25.561910139893698 28.875194 30.68269 units box
 +
region          3 block -.001 ${xdim} -.001 ${ydim} 28.875194 63.17288 units box
 +
region          3 block -.001 44.27452710080594 -.001 ${ydim} 28.875194 63.17288 units box
 +
region          3 block -.001 44.27452710080594 -.001 25.561910139893698 28.875194 63.17288 units box
 +
region          whole block 0 ${xdim} 0 ${ydim} 0 63.17288 units box
 +
region          whole block 0 44.27452710080594 0 ${ydim} 0 63.17288 units box
 +
region          whole block 0 44.27452710080594 0 25.561910139893698 0 63.17288 units box
  
 
+
create_box 3 whole
create_box 3 whole
+
Created orthogonal box = (0 0 0) to (44.2745 25.5619 63.1729)
Created orthogonal box = (0 0 0) to (43.111 24.8902 36.5808)
+
 
   1 by 1 by 1 MPI processor grid
 
   1 by 1 by 1 MPI processor grid
 
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
 
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.52 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
+
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.74814 4.97803 6.09682
+
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
create_atoms 1 region 1
+
create_atoms   1 region 1
Created 1600 atoms
+
Created 2800 atoms
 
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
 
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.52 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
+
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.74814 4.97803 6.09682
+
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
create_atoms 2 region 2  
+
#create_atoms 2 region 2
Created 200 atoms
+
 
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
 
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.52 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
+
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.74814 4.97803 6.09682
+
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
create_atoms 3 region 3  
+
create_atoms   3 region 3
Created 1800 atoms
+
Created 3400 atoms
# --------------------- FORCE FIELDS ---------------------
+
 
 +
# ------------------------ FORCE FIELDS -----------------------
 
pair_style eam/alloy
 
pair_style eam/alloy
pair_coeff * * FeCuNi.eam.alloy Ni Ni Ni
+
pair_coeff * * FeCuNi.eam.alloy Cu Cu Cu
# --------------------- SETTINGS ---------------------
+
#---------------------------Settings----------------------------
 +
compute csym all centro/atom fcc
 
compute peratom all pe/atom
 
compute peratom all pe/atom
 
compute eatoms all reduce sum c_peratom
 
compute eatoms all reduce sum c_peratom
compute csym all centro/atom fcc
 
  
 
thermo 1
 
thermo 1
Line 545: Line 540:
  
 
run 0
 
run 0
WARNING: No fixes defined, atoms won't move (verlet.cpp:54)
+
WARNING: No fixes defined, atoms won't move (../verlet.cpp:54)
Memory usage per processor = 5.65496 Mbytes
+
Memory usage per processor = 9.69936 Mbytes
 
Step PotEng eatoms  
 
Step PotEng eatoms  
       0  -15803.062   -15803.062
+
       0  -21773.224   -21773.224
Loop time of -4.86616e-008 on 1 procs for 0 steps with 3600 atoms
+
Loop time of 1.12923e-007 on 1 procs for 0 steps with 6200 atoms
  
Pair  time (%) = 0 (-0)
+
Pair  time (%) = 0 (0)
Neigh time (%) = 0 (-0)
+
Neigh time (%) = 0 (0)
Comm  time (%) = 0 (-0)
+
Comm  time (%) = 0 (0)
Outpt time (%) = 0 (-0)
+
Outpt time (%) = 0 (0)
Other time (%) = -4.86616e-008 (100)
+
Other time (%) = 1.12923e-007 (100)
  
Nlocal:    3600 ave 3600 max 3600 min
+
Nlocal:    6200 ave 6200 max 6200 min
 
Histogram: 1 0 0 0 0 0 0 0 0 0
 
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost:    4422 ave 4422 max 4422 min
+
Nghost:    6769 ave 6769 max 6769 min
 
Histogram: 1 0 0 0 0 0 0 0 0 0
 
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs:    292200 ave 292200 max 292200 min
+
Neighs:    416000 ave 416000 max 416000 min
 
Histogram: 1 0 0 0 0 0 0 0 0 0
 
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs:  584400 ave 584400 max 584400 min
+
FullNghs:  832000 ave 832000 max 832000 min
 
Histogram: 1 0 0 0 0 0 0 0 0 0
 
Histogram: 1 0 0 0 0 0 0 0 0 0
  
Total # of neighbors = 584400
+
Total # of neighbors = 832000
Ave neighs/atom = 162.333
+
Ave neighs/atom = 134.194
 
Neighbor list builds = 0
 
Neighbor list builds = 0
 
Dangerous builds = 0
 
Dangerous builds = 0
  
variable N equal count(all)
+
#this command creates a model of the script before the displacement and minimization occur
variable No equal $N
+
variable No equal 3600
+
 
+
#variable N equal count(all), counts the total number of atoms in the system
+
#the total number of atoms is stored to the variable No
+
 
+
#This command creates a model of the script before the displacement and minimization occur
+
  
 
variable E equal "c_eatoms"
 
variable E equal "c_eatoms"
 
variable Eo equal $E
 
variable Eo equal $E
variable Eo equal -15803.061682140291
+
variable Eo equal -21773.224253325923
  
 
#variable E equal "c_eatoms" computes the initial energy of the model before any sliding is done
 
#variable E equal "c_eatoms" computes the initial energy of the model before any sliding is done
 
#E is necessary to store the initial energy in Eo
 
#E is necessary to store the initial energy in Eo
 +
  
 
group bot region 1
 
group bot region 1
1600 atoms in group bot
+
2800 atoms in group bot
group middle region 2
+
group mid region 2
200 atoms in group middle
+
200 atoms in group mid
 
group top region 3
 
group top region 3
1800 atoms in group top
+
3400 atoms in group top
 
+
delete_atoms group middle
+
Deleted 200 atoms, new total = 3400
+
 
+
#The delete_atoms command is used to remove the designated layer of atoms
+
variable Nf equal $N
+
variable Nf equal 3400
+
#variable N is now set to the number of atoms after the removal of a layer which is assigned to Nf
+
  
 +
displace_atoms top move ${x_displace} 0.0 0.0 units box
 +
displace_atoms top move 1.475817570026865 0.0 0.0 units box
 +
displace_atoms bot move  ${x_displace} 0.0 0.0 units box
 +
displace_atoms bot move  1.475817570026865 0.0 0.0 units box
 
displace_atoms top move 0.0 0.0 ${z_displace} units box
 
displace_atoms top move 0.0 0.0 ${z_displace} units box
displace_atoms top move 0.0 0.0 -2.032272947547483 units box
+
displace_atoms top move 0.0 0.0 2.0871200000000001 units box
 +
 
 +
create_atoms 2 region 2
 +
Created 200 atoms
  
#displace_atoms is used here to merge to the two remaining regions
+
#this create_atoms command will now create atoms in the gap formed when displacing the top region in the positive z-direction by one layer of atoms.
  
 
fix 1 all setforce 0 0 NULL
 
fix 1 all setforce 0 0 NULL
Line 611: Line 599:
 
min_style cg
 
min_style cg
 
minimize 1e-10 1e-10 1000 1000
 
minimize 1e-10 1e-10 1000 1000
WARNING: Resetting reneighboring criteria during minimization (min.cpp:173)
+
WARNING: Resetting reneighboring criteria during minimization (../min.cpp:173)
Memory usage per processor = 6.3416 Mbytes
+
Memory usage per processor = 11.0735 Mbytes
 
Step PotEng eatoms  
 
Step PotEng eatoms  
       0  -14908.862   -14908.862
+
       0  -22478.113   -22478.113
       1  -14909.227   -14909.227
+
       1  -22478.903   -22478.903
       2  -14909.345   -14909.345
+
       2  -22479.042   -22479.042
       3  -14909.396   -14909.396
+
       3  -22479.079   -22479.079
       4  -14909.461   -14909.461
+
       4  -22479.101   -22479.101
       5  -14909.475   -14909.475
+
       5  -22479.115   -22479.115
       6  -14909.482   -14909.482
+
       6  -22479.125   -22479.125
       7  -14909.488   -14909.488
+
       7  -22479.129   -22479.129
       8     -14909.5    -14909.5
+
       8   -22479.131  -22479.131
       9  -14909.507   -14909.507
+
       9  -22479.132   -22479.132
       10  -14909.517   -14909.517
+
       10  -22479.133   -22479.133
       11  -14909.525   -14909.525
+
       11  -22479.133   -22479.133
       12   -14909.53    -14909.53
+
       12   -22479.133  -22479.133
       13  -14909.536   -14909.536
+
       13  -22479.134   -22479.134
       14  -14909.539   -14909.539
+
       14  -22479.135   -22479.135
       15   -14909.54    -14909.54
+
       15   -22479.135  -22479.135
       16   -14909.54    -14909.54
+
       16   -22479.136  -22479.136
       17  -14909.541   -14909.541
+
       17  -22479.136   -22479.136
       18  -14909.542   -14909.542
+
       18  -22479.136   -22479.136
       19  -14909.542   -14909.542
+
       19  -22479.137   -22479.137
       20  -14909.543   -14909.543
+
       20  -22479.137   -22479.137
       21  -14909.543   -14909.543
+
       21  -22479.137   -22479.137
       22  -14909.543   -14909.543
+
       22  -22479.138   -22479.138
       23  -14909.543   -14909.543
+
       23  -22479.138   -22479.138
       24  -14909.543   -14909.543
+
       24  -22479.138   -22479.138
       25  -14909.544   -14909.544
+
       25  -22479.138   -22479.138
       26  -14909.544   -14909.544
+
       26  -22479.138   -22479.138
       27  -14909.544   -14909.544
+
       27  -22479.138   -22479.138
       28  -14909.544   -14909.544
+
       28  -22479.139   -22479.139
       29  -14909.544   -14909.544
+
       29  -22479.139   -22479.139
       30  -14909.544   -14909.544
+
       30  -22479.139   -22479.139
       31  -14909.544   -14909.544
+
       31  -22479.139   -22479.139
       32  -14909.544   -14909.544
+
       32  -22479.139   -22479.139
       33  -14909.544   -14909.544
+
       33  -22479.139   -22479.139
       34   -14909.544  -14909.544
+
       34   -22479.14    -22479.14
       35   -14909.544  -14909.544
+
       35   -22479.14    -22479.14
       36  -14909.544   -14909.544
+
       36  -22479.141   -22479.141
       37  -14909.544   -14909.544
+
       37  -22479.141   -22479.141
       38  -14909.544   -14909.544
+
       38  -22479.141   -22479.141
       39  -14909.544   -14909.544
+
       39  -22479.141   -22479.141
       40  -14909.544   -14909.544
+
       40  -22479.141   -22479.141
       41  -14909.544   -14909.544
+
       41  -22479.141   -22479.141
       42  -14909.544   -14909.544
+
       42  -22479.141   -22479.141
       43  -14909.544   -14909.544
+
       43  -22479.141   -22479.141
       44  -14909.544   -14909.544
+
       44  -22479.141   -22479.141
Loop time of 6.13735 on 1 procs for 44 steps with 3400 atoms
+
      45  -22479.141  -22479.141
 +
      46  -22479.141  -22479.141
 +
      47  -22479.141  -22479.141
 +
      48  -22479.142  -22479.142
 +
      49  -22479.142  -22479.142
 +
      50  -22479.142  -22479.142
 +
      51  -22479.142  -22479.142
 +
      52  -22479.142  -22479.142
 +
      53  -22479.142  -22479.142
 +
      54  -22479.142  -22479.142
 +
      55  -22479.142  -22479.142
 +
      56  -22479.142  -22479.142
 +
      57  -22479.142  -22479.142
 +
      58  -22479.142  -22479.142
 +
      59  -22479.142  -22479.142
 +
      60  -22479.142  -22479.142
 +
      61  -22479.142  -22479.142
 +
      62  -22479.142  -22479.142
 +
      63  -22479.142  -22479.142
 +
      64  -22479.142  -22479.142
 +
      65  -22479.142  -22479.142
 +
      66  -22479.142  -22479.142
 +
      67  -22479.142  -22479.142
 +
Loop time of 14.3226 on 1 procs for 67 steps with 6400 atoms
  
 
Minimization stats:
 
Minimization stats:
 
   Stopping criterion = energy tolerance
 
   Stopping criterion = energy tolerance
 
   Energy initial, next-to-last, final =  
 
   Energy initial, next-to-last, final =  
         -14908.8618058      -14909.543956     -14909.5439565
+
         -22478.1133611    -22479.1416331     -22479.1416339
   Force two-norm initial, final = 3.25725 0.0022227
+
   Force two-norm initial, final = 3.99107 0.00214074
   Force max component initial, final = 0.110875 7.55982e-005
+
   Force max component initial, final = 0.146198 6.12736e-005
   Final line search alpha, max atom move = 0.125 9.44978e-006
+
   Final line search alpha, max atom move = 0.125 7.6592e-006
   Iterations, force evaluations = 44 174
+
   Iterations, force evaluations = 67 221
  
Pair  time (%) = 3.37519 (54.9942)
+
Pair  time (%) = 6.31521 (44.0928)
 
Neigh time (%) = 0 (0)
 
Neigh time (%) = 0 (0)
Comm  time (%) = 0.0170026 (0.277036)
+
Comm  time (%) = 0.024026 (0.167749)
Outpt time (%) = 2.66416 (43.409)
+
Outpt time (%) = 7.8152 (54.5657)
Other time (%) = 0.0809981 (1.31976)
+
Other time (%) = 0.168119 (1.1738)
  
Nlocal:    3400 ave 3400 max 3400 min
+
Nlocal:    6400 ave 6400 max 6400 min
 
Histogram: 1 0 0 0 0 0 0 0 0 0
 
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost:    4176 ave 4176 max 4176 min
+
Nghost:    6986 ave 6986 max 6986 min
 
Histogram: 1 0 0 0 0 0 0 0 0 0
 
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs:    270800 ave 270800 max 270800 min
+
Neighs:    433200 ave 433200 max 433200 min
 
Histogram: 1 0 0 0 0 0 0 0 0 0
 
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs:  541600 ave 541600 max 541600 min
+
FullNghs:  866400 ave 866400 max 866400 min
 
Histogram: 1 0 0 0 0 0 0 0 0 0
 
Histogram: 1 0 0 0 0 0 0 0 0 0
  
Total # of neighbors = 541600
+
Total # of neighbors = 866400
Ave neighs/atom = 159.294
+
Ave neighs/atom = 135.375
 
Neighbor list builds = 0
 
Neighbor list builds = 0
 
Dangerous builds = 0
 
Dangerous builds = 0
  
 +
variable Ei equal 200*-3.54022
 
variable Ef equal "c_eatoms"
 
variable Ef equal "c_eatoms"
variable A equal (${xdim}*${ydim})*1e-20
 
variable A equal (43.111019472983934*${ydim})*1e-20
 
variable A equal (43.111019472983934*24.890158697766473)*1e-20
 
 
variable Cf equal 1.60217657e-16
 
variable Cf equal 1.60217657e-16
variable Er equal (${No}-${Nf})*${Ecoh}
+
variable A equal (${xdim}*${ydim})*1e-20
variable Er equal (3600-${Nf})*${Ecoh}
+
variable A equal (44.27452710080594*${ydim})*1e-20
variable Er equal (3600-3400)*${Ecoh}
+
variable A equal (44.27452710080594*25.561910139893698)*1e-20
variable Er equal (3600-3400)*-4.4502600000000001
+
variable SFE equal ((${Ef}-(${Eo}+${Ei}))*${Cf})/${A}
variable SFE equal ((${Ef}-(${Eo}-${Er}))*${Cf})/${A}
+
variable SFE equal ((-22479.141633815099-(${Eo}+${Ei}))*${Cf})/${A}
variable SFE equal ((-14909.543956477508-(${Eo}-${Er}))*${Cf})/${A}
+
variable SFE equal ((-22479.141633815099-(-21773.224253325923+${Ei}))*${Cf})/${A}
variable SFE equal ((-14909.543956477508-(-15803.061682140291-${Er}))*${Cf})/${A}
+
variable SFE equal ((-22479.141633815099-(-21773.224253325923+-708.04399999999998))*${Cf})/${A}
variable SFE equal ((-14909.543956477508-(-15803.061682140291--890.05200000000002))*${Cf})/${A}
+
variable SFE equal ((-22479.141633815099-(-21773.224253325923+-708.04399999999998))*1.6021765700000001e-016)/${A}
variable SFE equal ((-14909.543956477508-(-15803.061682140291--890.05200000000002))*1.6021765700000001e-016)/${A}
+
variable SFE equal ((-22479.141633815099-(-21773.224253325923+-708.04399999999998))*1.6021765700000001e-016)/1.1317414832370896e-017
variable SFE equal ((-14909.543956477508-(-15803.061682140291--890.05200000000002))*1.6021765700000001e-016)/1.0730401163050707e-017
+
  
#variable Ef equal "c_eatoms" computes the final energy of the system after removal is done
+
#variable Ei is the energy of the inserted atoms
 +
#variable Ef equal "c_eatoms" computes the final energy of the system after sliding is done
 
#variable A is the area of the Stacking fault plane
 
#variable A is the area of the Stacking fault plane
 
#variable Cf is the conversion factor of electro volts to millijoules
 
#variable Cf is the conversion factor of electro volts to millijoules
#variable Er is the total energy of the removed atoms
 
 
#variable SFE is the stacking-fault energy of the system
 
#variable SFE is the stacking-fault energy of the system
 +
 +
#---------------------------------------
 +
 
####################################
 
####################################
 
# SIMULATION DONE
 
# SIMULATION DONE
Line 716: Line 727:
 
All done
 
All done
 
print "Initial energy of atoms = ${Eo} eV"
 
print "Initial energy of atoms = ${Eo} eV"
Initial energy of atoms = -15803.061682140291 eV
+
Initial energy of atoms = -21773.224253325923 eV
 
print "Final energy of atoms = ${Ef} eV"
 
print "Final energy of atoms = ${Ef} eV"
Final energy of atoms = -14909.543956477508 eV
+
Final energy of atoms = -22479.141633815099 eV
print "The Stacking-fault energy = ${SFE} mJ/m^2"The Stacking-fault energy = 51.747407860943149 mJ/m^2
+
print "Stacking-fault energy = ${SFE} mJ/m^2"
 +
Stacking-fault energy = 30.105991553865966 mJ/m^2
 
</pre>
 
</pre>
 
|}
 
|}
 +
 
== Post-Processing ==
 
== Post-Processing ==
  

Revision as of 10:59, 29 September 2014

Contents

Questions / Comments

Please contact me if you have any questions or comments about this tutorial.

Email: Mark Tschopp, mark.tschopp@gatech.edu

Abstract

This tutorial demonstrates how to create an extrinsic stacking-fault in FCC metals, taking Cu as an example, and how to estimate its energy (SFE) using molecular dynamics (MD). The stacking fault is created using two different processes. The first process is the shearing of the crystal on {111} slip plane along the <112> direction, as in the actual deformation process in metals. In the second, the stacking fault is created through the thought process whereby a layer one atom thick parallel to {111} plane is removed and the material put back together. LAMMPS is used to perform MD calculations while OVITO, visualization software for atomic structures is used to visualize the stacking fault using the energy per atom and centro-symmetry parameters generated by LAMMPS.

Author(s): Dennis Williams, Richard Glaze IV, Firas Akasheh*, Mark A. Tschopp**

Advisor(s): Firas Akasheh*, Mark A. Tschopp

(*) Mechanical Engineering Department, Tuskegee University, Tuskegee, AL 36088

(**) U.S. Army Research Laboratory

Introduction

In general, metals have crystalline structures having long-range order consisting of a repetitive unit cell. Nevertheless, crystalline materials are never perfect and normally have defects. This tutorial focuses on a planar defect which is one of the three types of crystallographic defects: line and point. In this tutorial, the focus will be on the planar defect called extrinsic stacking fault. Defects form when the regular patterns are interrupted. Extrinsic stacking faults are interstitial agglomerate of atoms occupying a plane which does not imitate a systems original sequence such as ABCABCABC… and rather ABCACBCABC… It is as if one closed plane, C in this case, has been inserted, disrupting the otherwise perfect stacking. Such straying from perfect order increases the energy of the material. The stacking-fault energy (SFE) quantifies this additional energy and is measured in terms of energy per unit area of the stacking fault. The SFE has a significant effect on the deformation behavior of metals. Metals with low stacking fault energy tend to have more twinning, more extended (partial) dislocations which have less mobility and less inclination to cross slip. This affects ductility, climb, hardening, and texture development during deformation. Also, stacking faults provide a strong barrier to dislocation motion which becomes more notable in nanoscale metallic structures.

Description of Simulation

Slips planes occur on the plane (111) in FCC crystals. So first LAMMPS generates a FCC copper (Cu) cell with a 44.2745 x 25.5619 x 62.6263 dimension and a xyz orientation [112], [-110], and [-1-11] respectively with a total of 6200 atoms created. The boundaries of the cell structure are periodic in the x and y and free surface in the z direction. The input script file is written to simulate the insertion of a plane of atoms and calculate the extrinsic stacking fault energy E_s. First the initial cohesive energy E_c of the relaxed cell structure is calculated; then the top region will be shift to the right while the bottom to the left to simulate the extrinsic stacking fault and disruption of the sequence; the potential energy of that system is calculated, then the cohesive energy of the extrinsic stacking fault model E_s is calculated. After both values are obtained the extrinsic stacking fault energy E_s can be calculated using this equation. Y will then be the extra energy gained by having created the extrinsic stacking-fault.

                                                     Y=(N*(E_s-E_c))/A,

Input

LAMMPS input script for FCC

This input script was run using the July 1 2014 version of LAMMPS. The input script files were created and named sCu_ext.txt and iCu_ext.txt. sCu_ext.txt represents the file where the atoms are only slid. iCu_ext.txt represents the file where the atoms are separated and a layer of atoms is manually inserted in the gap. To run this script the alloy file, LAMMPS executable file, and script file must all be in the same destination folder. Open the command prompt and run the "lmp_win_no-mpi.exe < sCu_ext.txt" or “lmp_win_no-mpi.exe<iCu_ext.txt” and "lmp_win_no-mpi.exe" refers to the LAMMPS executable.

Input for sCu_ext.txt

# Input file for Stack Fault Energy surface of Copper
# Dennis Williams and Richard Glaze IV, 2014
# --------------- INITIALIZATION ------------------
units 		metal
dimension	3
boundary	p p s   
atom_style	atomic
variable latparam1 equal 3.615
variable x_displace1 equal ${latparam1}/sqrt(6)
variable x_displace2 equal -${latparam1}/sqrt(6)
variable xdim equal ${latparam1}*sqrt(6)/2*10
variable ydim equal ${latparam1}*sqrt(2)/2*10

# ------------------ ATOM DEFINITION -------------------
lattice          fcc ${latparam1}
region		1 block -.001 ${xdim} -.001 ${ydim} -.001 28.875194 units box
region          2 block -.001 ${xdim} -.001 ${ydim} 28.875194 30.68269 units box
region          3 block -.001 ${xdim} -.001 ${ydim} 30.68269 63.17288 units box
region           whole block 0 ${xdim} 0 ${ydim} 0 63.17288 units box

create_box	3 whole
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
create_atoms    1 region 1
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1	
create_atoms	2 region 2
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
create_atoms    3 region 3
 
# ------------------------ FORCE FIELDS -----------------------
pair_style	eam/alloy
pair_coeff * * FeCuNi.eam.alloy Cu Cu Cu
#---------------------------Settings----------------------------
compute csym all centro/atom fcc
compute peratom all pe/atom
compute eatoms all reduce sum c_peratom

thermo 1
thermo_style custom step pe c_eatoms 
dump 1 all custom 1 dump.relax.1.* id type xs ys zs c_peratom c_csym
run 0

#this command creates a model of the script before the displacement and minimization occur

variable E equal "c_eatoms"
variable Eo equal $E

#variable E equal "c_eatoms" computes the initial energy of the model before any sliding is done
#E is necessary to store the initial energy in Eo


group bot region 1
group mid region 2
group top region 3


displace_atoms bot move  ${x_displace1} 0.0 0.0 units box
displace_atoms top move  ${x_displace2} 0.0 0.0 units box

#displace_atoms command will displace the top layer in the positive x-direction and the bottom layer in the negative x-direction thus creating an extrinsic stacking-fault.

fix 1 all setforce 0 0 NULL

min_style cg
minimize 1e-10 1e-10 1000 1000 

variable Ef equal "c_eatoms"
variable Cf equal 1.60217657e-16
variable A equal (${xdim}*${ydim})*1e-20
variable SFE equal ((${Ef}-${Eo})*${Cf})/${A}

#variable Ef equal "c_eatoms" computes the final energy of the system after sliding is done
#variable A is the area of the Stacking fault plane
#variable Cf is the conversion factor of electro volts to millijoules
#variable SFE is the stacking-fault energy of the system

#---------------------------------------

####################################
# SIMULATION DONE
print "All done"
print "Initial energy of atoms = ${Eo} eV"
print "Final energy of atoms = ${Ef} eV"
print "Stacking-fault energy = ${SFE} mJ/m^2"

Input for iCu_ext.txt

# Input file for Stack Fault Energy surface of Copper
# Dennis Williams and Richard Glaze IV, 2014
# --------------- INITIALIZATION ------------------
units 		metal
dimension	3
boundary	p p s   
atom_style	atomic
variable latparam1 equal 3.615
variable z_displace equal 2.08712
variable x_displace equal ${latparam1}/sqrt(6)
variable xdim equal ${latparam1}*sqrt(6)/2*10
variable ydim equal ${latparam1}*sqrt(2)/2*10

# ------------------ ATOM DEFINITION -------------------
lattice          fcc ${latparam1}
region	   1 block -.001 ${xdim} -.001 ${ydim} -.001 28.875194 units box
region          2 block -.001 ${xdim} -.001 ${ydim} 28.875194 30.68269 units box
region          3 block -.001 ${xdim} -.001 ${ydim} 28.875194 63.17288 units box
region           whole block 0 ${xdim} 0 ${ydim} 0 63.17288 units box

create_box	3 whole
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
create_atoms    1 region 1
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1	
#create_atoms	2 region 2
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
create_atoms    3 region 3
 
# ------------------------ FORCE FIELDS -----------------------
pair_style	eam/alloy
pair_coeff * * FeCuNi.eam.alloy Cu Cu Cu
#---------------------------Settings----------------------------
compute csym all centro/atom fcc
compute peratom all pe/atom
compute eatoms all reduce sum c_peratom

thermo 1
thermo_style custom step pe c_eatoms
dump 1 all custom 1 dump.relax.1.* id type xs ys zs c_peratom c_csym

run 0

#this command creates a model of the script before the displacement and minimization occur

variable E equal "c_eatoms"
variable Eo equal $E

#variable E equal "c_eatoms" computes the initial energy of the model before any sliding is done
#E is necessary to store the initial energy in Eo


group bot region 1
group mid region 2
group top region 3

displace_atoms top move ${x_displace} 0.0 0.0 units box
displace_atoms bot move  ${x_displace} 0.0 0.0 units box
displace_atoms top move 0.0 0.0 ${z_displace} units box

create_atoms	2 region 2

#this create_atoms command will now create atoms in the gap formed when displacing the top region in the positive z-direction by one layer of atoms.

fix 1 all setforce 0 0 NULL

min_style cg
minimize 1e-10 1e-10 1000 1000 

variable Ei equal 200*-3.54022
variable Ef equal "c_eatoms"
variable Cf equal 1.60217657e-16
variable A equal (${xdim}*${ydim})*1e-20
variable SFE equal ((${Ef}-(${Eo}+${Ei}))*${Cf})/${A}

#variable Ei is the energy of the inserted atoms
#variable Ef equal "c_eatoms" computes the final energy of the system after sliding is done
#variable A is the area of the Stacking fault plane
#variable Cf is the conversion factor of electro volts to millijoules
#variable SFE is the stacking-fault energy of the system

#---------------------------------------

####################################
# SIMULATION DONE
print "All done"
print "Initial energy of atoms = ${Eo} eV"
print "Final energy of atoms = ${Ef} eV"
print "Stacking-fault energy = ${SFE} mJ/m^2"

Output for sCu_ext.txt

LAMMPS logfile

The log file should look like the one shown below.

LAMMPS (July 2014)
# Input file for Stack Fault Energy surface of Copper
# Dennis Williams and Richard Glaze IV, 2014
# --------------- INITIALIZATION ------------------
units 		metal
dimension	3
boundary	p p s
atom_style	atomic
variable latparam1 equal 3.615
variable x_displace1 equal ${latparam1}/sqrt(6)
variable x_displace1 equal 3.6150000000000002/sqrt(6)
variable x_displace2 equal -${latparam1}/sqrt(6)
variable x_displace2 equal -3.6150000000000002/sqrt(6)
variable xdim equal ${latparam1}*sqrt(6)/2*10
variable xdim equal 3.6150000000000002*sqrt(6)/2*10
variable ydim equal ${latparam1}*sqrt(2)/2*10
variable ydim equal 3.6150000000000002*sqrt(2)/2*10

# ------------------ ATOM DEFINITION -------------------
lattice          fcc ${latparam1}
lattice          fcc 3.6150000000000002
Lattice spacing in x,y,z = 3.615 3.615 3.615
region		1 block -.001 ${xdim} -.001 ${ydim} -.001 28.875194 units box
region		1 block -.001 44.27452710080594 -.001 ${ydim} -.001 28.875194 units box
region		1 block -.001 44.27452710080594 -.001 25.561910139893698 -.001 28.875194 units box
region          2 block -.001 ${xdim} -.001 ${ydim} 28.875194 30.68269 units box
region          2 block -.001 44.27452710080594 -.001 ${ydim} 28.875194 30.68269 units box
region          2 block -.001 44.27452710080594 -.001 25.561910139893698 28.875194 30.68269 units box
region          3 block -.001 ${xdim} -.001 ${ydim} 30.68269 63.17288 units box
region          3 block -.001 44.27452710080594 -.001 ${ydim} 30.68269 63.17288 units box
region          3 block -.001 44.27452710080594 -.001 25.561910139893698 30.68269 63.17288 units box
region           whole block 0 ${xdim} 0 ${ydim} 0 63.17288 units box
region           whole block 0 44.27452710080594 0 ${ydim} 0 63.17288 units box
region           whole block 0 44.27452710080594 0 25.561910139893698 0 63.17288 units box

create_box	3 whole
Created orthogonal box = (0 0 0) to (44.2745 25.5619 63.1729)
  1 by 1 by 1 MPI processor grid
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
create_atoms    1 region 1
Created 2800 atoms
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
create_atoms	2 region 2
Created 200 atoms
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
create_atoms    3 region 3
Created 3200 atoms

# ------------------------ FORCE FIELDS -----------------------
pair_style	eam/alloy
pair_coeff * * FeCuNi.eam.alloy Cu Cu Cu
#---------------------------Settings----------------------------
compute csym all centro/atom fcc
compute peratom all pe/atom
compute eatoms all reduce sum c_peratom

thermo 1
thermo_style custom step pe c_eatoms
dump 1 all custom 1 dump.relax.1.* id type xs ys zs c_peratom c_csym
run 0
WARNING: No fixes defined, atoms won't move (../verlet.cpp:54)
Memory usage per processor = 9.69936 Mbytes
Step PotEng eatoms 
       0   -21773.224   -21773.224 
Loop time of -2.45636e-008 on 1 procs for 0 steps with 6200 atoms

Pair  time (%) = 0 (-0)
Neigh time (%) = 0 (-0)
Comm  time (%) = 0 (-0)
Outpt time (%) = 0 (-0)
Other time (%) = -2.45636e-008 (100)

Nlocal:    6200 ave 6200 max 6200 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost:    6769 ave 6769 max 6769 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs:    416000 ave 416000 max 416000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs:  832000 ave 832000 max 832000 min
Histogram: 1 0 0 0 0 0 0 0 0 0

Total # of neighbors = 832000
Ave neighs/atom = 134.194
Neighbor list builds = 0
Dangerous builds = 0

#this command creates a model of the script before the displacement and minimization occur

variable E equal "c_eatoms"
variable Eo equal $E
variable Eo equal -21773.224253325923

#variable E equal "c_eatoms" computes the initial energy of the model before any sliding is done
#E is necessary to store the initial energy in Eo


group bot region 1
2800 atoms in group bot
group mid region 2
200 atoms in group mid
group top region 3
3200 atoms in group top


displace_atoms bot move  ${x_displace1} 0.0 0.0 units box
displace_atoms bot move  1.475817570026865 0.0 0.0 units box
displace_atoms top move  ${x_displace2} 0.0 0.0 units box
displace_atoms top move  -1.475817570026865 0.0 0.0 units box

#displace_atoms command will displace the top layer in the positive x-direction and the bottom layer in the negative x-direction thus creating an extrinsic stacking-fault.

fix 1 all setforce 0 0 NULL

min_style cg
minimize 1e-10 1e-10 1000 1000
WARNING: Resetting reneighboring criteria during minimization (../min.cpp:173)
Memory usage per processor = 11.0727 Mbytes
Step PotEng eatoms 
       0    -21770.07    -21770.07 
       1   -21770.859   -21770.859 
       2   -21770.998   -21770.998 
       3   -21771.036   -21771.036 
       4   -21771.058   -21771.058 
       5   -21771.072   -21771.072 
       6   -21771.081   -21771.081 
       7   -21771.085   -21771.085 
       8   -21771.087   -21771.087 
       9   -21771.088   -21771.088 
      10   -21771.089   -21771.089 
      11   -21771.089   -21771.089 
      12    -21771.09    -21771.09 
      13   -21771.091   -21771.091 
      14   -21771.091   -21771.091 
      15   -21771.092   -21771.092 
      16   -21771.092   -21771.092 
      17   -21771.092   -21771.092 
      18   -21771.093   -21771.093 
      19   -21771.093   -21771.093 
      20   -21771.093   -21771.093 
      21   -21771.093   -21771.093 
      22   -21771.094   -21771.094 
      23   -21771.094   -21771.094 
      24   -21771.094   -21771.094 
      25   -21771.095   -21771.095 
      26   -21771.095   -21771.095 
      27   -21771.095   -21771.095 
      28   -21771.095   -21771.095 
      29   -21771.096   -21771.096 
      30   -21771.096   -21771.096 
      31   -21771.096   -21771.096 
      32   -21771.096   -21771.096 
      33   -21771.096   -21771.096 
      34   -21771.096   -21771.096 
      35   -21771.096   -21771.096 
      36   -21771.096   -21771.096 
      37   -21771.097   -21771.097 
      38   -21771.097   -21771.097 
      39   -21771.097   -21771.097 
      40   -21771.097   -21771.097 
      41   -21771.097   -21771.097 
      42   -21771.097   -21771.097 
      43   -21771.097   -21771.097 
      44   -21771.097   -21771.097 
      45   -21771.097   -21771.097 
      46   -21771.097   -21771.097 
      47   -21771.097   -21771.097 
      48   -21771.097   -21771.097 
      49   -21771.097   -21771.097 
      50   -21771.097   -21771.097 
      51   -21771.097   -21771.097 
      52   -21771.098   -21771.098 
      53   -21771.098   -21771.098 
      54   -21771.098   -21771.098 
      55   -21771.098   -21771.098 
      56   -21771.098   -21771.098 
      57   -21771.098   -21771.098 
      58   -21771.098   -21771.098 
Loop time of 11.958 on 1 procs for 58 steps with 6200 atoms

Minimization stats:
  Stopping criterion = energy tolerance
  Energy initial, next-to-last, final = 
        -21770.0696963     -21771.0979782     -21771.0979797
  Force two-norm initial, final = 3.99107 0.00243331
  Force max component initial, final = 0.146198 7.82345e-005
  Final line search alpha, max atom move = 0.125 9.77932e-006
  Iterations, force evaluations = 58 191

Pair  time (%) = 5.59371 (46.778)
Neigh time (%) = 0 (0)
Comm  time (%) = 0.0180192 (0.150687)
Outpt time (%) = 6.17811 (51.6652)
Other time (%) = 0.168138 (1.40608)

Nlocal:    6200 ave 6200 max 6200 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost:    6768 ave 6768 max 6768 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs:    419200 ave 419200 max 419200 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs:  838400 ave 838400 max 838400 min
Histogram: 1 0 0 0 0 0 0 0 0 0

Total # of neighbors = 838400
Ave neighs/atom = 135.226
Neighbor list builds = 0
Dangerous builds = 0

variable Ef equal "c_eatoms"
variable Cf equal 1.60217657e-16
variable A equal (${xdim}*${ydim})*1e-20
variable A equal (44.27452710080594*${ydim})*1e-20
variable A equal (44.27452710080594*25.561910139893698)*1e-20
variable SFE equal ((${Ef}-${Eo})*${Cf})/${A}
variable SFE equal ((-21771.097979613118-${Eo})*${Cf})/${A}
variable SFE equal ((-21771.097979613118--21773.224253325923)*${Cf})/${A}
variable SFE equal ((-21771.097979613118--21773.224253325923)*1.6021765700000001e-016)/${A}
variable SFE equal ((-21771.097979613118--21773.224253325923)*1.6021765700000001e-016)/1.1317414832370896e-017

#variable Ef equal "c_eatoms" computes the final energy of the system after sliding is done
#variable A is the area of the Stacking fault plane
#variable Cf is the conversion factor of electro volts to millijoules
#variable SFE is the stacking-fault energy of the system

#---------------------------------------

####################################
# SIMULATION DONE
print "All done"
All done
print "Initial energy of atoms = ${Eo} eV"
Initial energy of atoms = -21773.224253325923 eV
print "Final energy of atoms = ${Ef} eV"
Final energy of atoms = -21771.097979613118 eV
print "Stacking-fault energy = ${SFE} mJ/m^2"
Stacking-fault energy = 30.101096182493457 mJ/m^2

Output for iCu_ext.txt

LAMMPS logfile

The log file for second script should look like this:

LAMMPS (July 2014)
# Input file for Stack Fault Energy surface of Copper
# Dennis Williams and Richard Glaze IV, 2014
# --------------- INITIALIZATION ------------------
units 		metal
dimension	3
boundary	p p s
atom_style	atomic
variable latparam1 equal 3.615
variable z_displace equal 2.08712
variable x_displace equal ${latparam1}/sqrt(6)
variable x_displace equal 3.6150000000000002/sqrt(6)
variable xdim equal ${latparam1}*sqrt(6)/2*10
variable xdim equal 3.6150000000000002*sqrt(6)/2*10
variable ydim equal ${latparam1}*sqrt(2)/2*10
variable ydim equal 3.6150000000000002*sqrt(2)/2*10

# ------------------ ATOM DEFINITION -------------------
lattice          fcc ${latparam1}
lattice          fcc 3.6150000000000002
Lattice spacing in x,y,z = 3.615 3.615 3.615
region	   1 block -.001 ${xdim} -.001 ${ydim} -.001 28.875194 units box
region	   1 block -.001 44.27452710080594 -.001 ${ydim} -.001 28.875194 units box
region	   1 block -.001 44.27452710080594 -.001 25.561910139893698 -.001 28.875194 units box
region          2 block -.001 ${xdim} -.001 ${ydim} 28.875194 30.68269 units box
region          2 block -.001 44.27452710080594 -.001 ${ydim} 28.875194 30.68269 units box
region          2 block -.001 44.27452710080594 -.001 25.561910139893698 28.875194 30.68269 units box
region          3 block -.001 ${xdim} -.001 ${ydim} 28.875194 63.17288 units box
region          3 block -.001 44.27452710080594 -.001 ${ydim} 28.875194 63.17288 units box
region          3 block -.001 44.27452710080594 -.001 25.561910139893698 28.875194 63.17288 units box
region           whole block 0 ${xdim} 0 ${ydim} 0 63.17288 units box
region           whole block 0 44.27452710080594 0 ${ydim} 0 63.17288 units box
region           whole block 0 44.27452710080594 0 25.561910139893698 0 63.17288 units box

create_box	3 whole
Created orthogonal box = (0 0 0) to (44.2745 25.5619 63.1729)
  1 by 1 by 1 MPI processor grid
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
create_atoms    1 region 1
Created 2800 atoms
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
#create_atoms	2 region 2
lattice fcc ${latparam1} orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
lattice fcc 3.6150000000000002 orient x 1 1 2 orient y -1 1 0 orient z -1 -1 1
Lattice spacing in x,y,z = 5.90327 5.11238 6.26136
create_atoms    3 region 3
Created 3400 atoms

# ------------------------ FORCE FIELDS -----------------------
pair_style	eam/alloy
pair_coeff * * FeCuNi.eam.alloy Cu Cu Cu
#---------------------------Settings----------------------------
compute csym all centro/atom fcc
compute peratom all pe/atom
compute eatoms all reduce sum c_peratom

thermo 1
thermo_style custom step pe c_eatoms
dump 1 all custom 1 dump.relax.1.* id type xs ys zs c_peratom c_csym

run 0
WARNING: No fixes defined, atoms won't move (../verlet.cpp:54)
Memory usage per processor = 9.69936 Mbytes
Step PotEng eatoms 
       0   -21773.224   -21773.224 
Loop time of 1.12923e-007 on 1 procs for 0 steps with 6200 atoms

Pair  time (%) = 0 (0)
Neigh time (%) = 0 (0)
Comm  time (%) = 0 (0)
Outpt time (%) = 0 (0)
Other time (%) = 1.12923e-007 (100)

Nlocal:    6200 ave 6200 max 6200 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost:    6769 ave 6769 max 6769 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs:    416000 ave 416000 max 416000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs:  832000 ave 832000 max 832000 min
Histogram: 1 0 0 0 0 0 0 0 0 0

Total # of neighbors = 832000
Ave neighs/atom = 134.194
Neighbor list builds = 0
Dangerous builds = 0

#this command creates a model of the script before the displacement and minimization occur

variable E equal "c_eatoms"
variable Eo equal $E
variable Eo equal -21773.224253325923

#variable E equal "c_eatoms" computes the initial energy of the model before any sliding is done
#E is necessary to store the initial energy in Eo


group bot region 1
2800 atoms in group bot
group mid region 2
200 atoms in group mid
group top region 3
3400 atoms in group top

displace_atoms top move ${x_displace} 0.0 0.0 units box
displace_atoms top move 1.475817570026865 0.0 0.0 units box
displace_atoms bot move  ${x_displace} 0.0 0.0 units box
displace_atoms bot move  1.475817570026865 0.0 0.0 units box
displace_atoms top move 0.0 0.0 ${z_displace} units box
displace_atoms top move 0.0 0.0 2.0871200000000001 units box

create_atoms	2 region 2
Created 200 atoms

#this create_atoms command will now create atoms in the gap formed when displacing the top region in the positive z-direction by one layer of atoms.

fix 1 all setforce 0 0 NULL

min_style cg
minimize 1e-10 1e-10 1000 1000
WARNING: Resetting reneighboring criteria during minimization (../min.cpp:173)
Memory usage per processor = 11.0735 Mbytes
Step PotEng eatoms 
       0   -22478.113   -22478.113 
       1   -22478.903   -22478.903 
       2   -22479.042   -22479.042 
       3   -22479.079   -22479.079 
       4   -22479.101   -22479.101 
       5   -22479.115   -22479.115 
       6   -22479.125   -22479.125 
       7   -22479.129   -22479.129 
       8   -22479.131   -22479.131 
       9   -22479.132   -22479.132 
      10   -22479.133   -22479.133 
      11   -22479.133   -22479.133 
      12   -22479.133   -22479.133 
      13   -22479.134   -22479.134 
      14   -22479.135   -22479.135 
      15   -22479.135   -22479.135 
      16   -22479.136   -22479.136 
      17   -22479.136   -22479.136 
      18   -22479.136   -22479.136 
      19   -22479.137   -22479.137 
      20   -22479.137   -22479.137 
      21   -22479.137   -22479.137 
      22   -22479.138   -22479.138 
      23   -22479.138   -22479.138 
      24   -22479.138   -22479.138 
      25   -22479.138   -22479.138 
      26   -22479.138   -22479.138 
      27   -22479.138   -22479.138 
      28   -22479.139   -22479.139 
      29   -22479.139   -22479.139 
      30   -22479.139   -22479.139 
      31   -22479.139   -22479.139 
      32   -22479.139   -22479.139 
      33   -22479.139   -22479.139 
      34    -22479.14    -22479.14 
      35    -22479.14    -22479.14 
      36   -22479.141   -22479.141 
      37   -22479.141   -22479.141 
      38   -22479.141   -22479.141 
      39   -22479.141   -22479.141 
      40   -22479.141   -22479.141 
      41   -22479.141   -22479.141 
      42   -22479.141   -22479.141 
      43   -22479.141   -22479.141 
      44   -22479.141   -22479.141 
      45   -22479.141   -22479.141 
      46   -22479.141   -22479.141 
      47   -22479.141   -22479.141 
      48   -22479.142   -22479.142 
      49   -22479.142   -22479.142 
      50   -22479.142   -22479.142 
      51   -22479.142   -22479.142 
      52   -22479.142   -22479.142 
      53   -22479.142   -22479.142 
      54   -22479.142   -22479.142 
      55   -22479.142   -22479.142 
      56   -22479.142   -22479.142 
      57   -22479.142   -22479.142 
      58   -22479.142   -22479.142 
      59   -22479.142   -22479.142 
      60   -22479.142   -22479.142 
      61   -22479.142   -22479.142 
      62   -22479.142   -22479.142 
      63   -22479.142   -22479.142 
      64   -22479.142   -22479.142 
      65   -22479.142   -22479.142 
      66   -22479.142   -22479.142 
      67   -22479.142   -22479.142 
Loop time of 14.3226 on 1 procs for 67 steps with 6400 atoms

Minimization stats:
  Stopping criterion = energy tolerance
  Energy initial, next-to-last, final = 
        -22478.1133611     -22479.1416331     -22479.1416339
  Force two-norm initial, final = 3.99107 0.00214074
  Force max component initial, final = 0.146198 6.12736e-005
  Final line search alpha, max atom move = 0.125 7.6592e-006
  Iterations, force evaluations = 67 221

Pair  time (%) = 6.31521 (44.0928)
Neigh time (%) = 0 (0)
Comm  time (%) = 0.024026 (0.167749)
Outpt time (%) = 7.8152 (54.5657)
Other time (%) = 0.168119 (1.1738)

Nlocal:    6400 ave 6400 max 6400 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost:    6986 ave 6986 max 6986 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs:    433200 ave 433200 max 433200 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs:  866400 ave 866400 max 866400 min
Histogram: 1 0 0 0 0 0 0 0 0 0

Total # of neighbors = 866400
Ave neighs/atom = 135.375
Neighbor list builds = 0
Dangerous builds = 0

variable Ei equal 200*-3.54022
variable Ef equal "c_eatoms"
variable Cf equal 1.60217657e-16
variable A equal (${xdim}*${ydim})*1e-20
variable A equal (44.27452710080594*${ydim})*1e-20
variable A equal (44.27452710080594*25.561910139893698)*1e-20
variable SFE equal ((${Ef}-(${Eo}+${Ei}))*${Cf})/${A}
variable SFE equal ((-22479.141633815099-(${Eo}+${Ei}))*${Cf})/${A}
variable SFE equal ((-22479.141633815099-(-21773.224253325923+${Ei}))*${Cf})/${A}
variable SFE equal ((-22479.141633815099-(-21773.224253325923+-708.04399999999998))*${Cf})/${A}
variable SFE equal ((-22479.141633815099-(-21773.224253325923+-708.04399999999998))*1.6021765700000001e-016)/${A}
variable SFE equal ((-22479.141633815099-(-21773.224253325923+-708.04399999999998))*1.6021765700000001e-016)/1.1317414832370896e-017

#variable Ei is the energy of the inserted atoms
#variable Ef equal "c_eatoms" computes the final energy of the system after sliding is done
#variable A is the area of the Stacking fault plane
#variable Cf is the conversion factor of electro volts to millijoules
#variable SFE is the stacking-fault energy of the system

#---------------------------------------

####################################
# SIMULATION DONE
print "All done"
All done
print "Initial energy of atoms = ${Eo} eV"
Initial energy of atoms = -21773.224253325923 eV
print "Final energy of atoms = ${Ef} eV"
Final energy of atoms = -22479.141633815099 eV
print "Stacking-fault energy = ${SFE} mJ/m^2"
Stacking-fault energy = 30.105991553865966 mJ/m^2

Post-Processing

Visualization

The atomic structure during the simulation can be visualized using specialized software, in our case OVITO (www.ovito.org; developer: Alexander Stukowski). First, open Ovito. Then, select File, then Open Local Files. Then, navigate to the directory of the dump files LAMMPS created. The first dump file, dump.relax.1.0 should be the visualization of the model before sliding. An image of what you should see is located in Figure 1. Different colors are used to distinguish the two halves of the crystal which will be displaced with respect to each other. Now, if you would like the view the model after the sliding or the removal of a layer is done, go back to File and Open Local Files. Then, locate the last dump file created and double click it or single click it and press Open. The image that should appear can be seen in Figure 2. Notice how the stacking order is disrupted at the mid plane in comparison to the perfect stacking shown in Figure 1. To visually see the stacking fault you have two options. In both options, you use the Color coding option under the “Add modification…” drop box in Ovito. The first option is by Color coding by the property titled “c_peratom”. This option shows you the energy per atom. The other option is to color code the model by “c_csym”. This means they are color coded by their center of symmetry. For both of these options you are required to create a Slice which would get rid of the surface atoms as their center of symmetry and energy are too high. To do this you have to choose the “Slice” option under the “Add modification…” drop box. Set the normal to x and y to be 0 while the normal to the z direction is set to 1. Then, set the slice width high enough that it includes all but 6 layers. Finally, adjust the distance until it only excludes the 6 outer layers. After this step, you can resume to Color coding by “c_peratom” or “c_csym”. Make sure the Color coding option is above the Slice option in the area marked “Modifications”, then press “Adjust range”. Figure 3 shows the model color coded by the energy per atom. Figure 4 has the model color coded by the atoms’ center of symmetry. A close up of the normal stacking arrangement (B-C-A) can be found in Figure 5. Figure 6 has a close up of the stacking fault. This figure shows proof that the stacking-fault has been correctly created.


Figure 1: Model before slipping or deleting with 3600 atoms created by two layers of 1800 atoms.
Figure 2: Model after the sliding or deleting (depending on which script you chose to run) is complete.
Figure 3: (a) side (b) top view of the perfect stacking arrangement A-C-B before slipping or deleting.
Figure 4: (a) side (b) top view of the stacking arrangement after sliding/deleting. Notice the gap in between atoms in the top view because the first and third layer are aligned proving it’s an B-C-B arrangement.
Figure. 5: Visualization of the intrinsic stacking fault, (a) color coded by the centrosymmetry parameter, and (b) color coded by energy per atom. The layers in the middle where the stacking fault was created have higher energies than surrounding layers

Next Tutorial

Go Back

Acknowledgments

We would like to acknowledge the support to this work by the National Science Foundation, HBCUUP-RIA program, Program Manager Dr. Claudia Rankins, Award No. HRD-1137587. Additionally, the technical and logistical support of CAVS and HPC2 of Mississippi State University is gratefully acknowledged.

Personal tools
Namespaces

Variants
Actions
home
Materials
Material Models
Design
Resources
Projects
Education
Toolbox