This example script shows how to run an atomistic simulation of dislocation nucleation for an aluminum single crystal oriented in the <100> direction. This example uses a parallel molecular dynamics code, LAMMPS[1]. These scripts were initially used to study dislocation nucleation in single crystal aluminum and copper[2][3][4].
Author(s): Mark A. Tschopp
Corresponding Author: Mark Tschopp
Movie showing dislocation nucleation from a Sigma 3 asymmetric tilt grain boundary.
This input script was run using the November 2009 version of LAMMPS. Changes in some commands in more recent versions may require revision of the input script.
###################################### # Input file for dislocation nucleation in single crystal Al # Mark Tschopp, July 2010 # lmp_exe < Al_SC_100.in ###################################### ###################################### # INITIALIZATION units metal dimension 3 boundary p p p atom_style atomic ###################################### # ATOM BUILD lattice fcc 4.05 region whole block 0 10 0 10 0 10 create_box 1 whole region sc block INF INF INF INF INF INF units box lattice fcc 4.05 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 create_atoms 1 region sc variable natoms equal "count(all)" print "# of atoms are: ${natoms}" ###################################### # INTERATOMIC POTENTIAL pair_style eam/alloy pair_coeff * * Al99.eam.alloy Al # Define computes required compute csym all centro/atom ###################################### # EQUILIBRATION reset_timestep 0 timestep 0.001 velocity all create 300 12345 mom yes rot no fix 1 all npt 300 300 1 xyz 0 0 1 drag 1 # Set thermo output thermo 100 thermo_style custom step lx ly lz press pxx pyy pzz pe temp # Run for at least 10 picosecond (assuming 1 fs timestep) run 10000 unfix 1 # Store final cell length for strain calculations variable tmp equal "lx" variable L0 equal ${tmp} print "Initial Length, L0: ${L0}" ###################################### # DEFORMATION reset_timestep 0 fix 1 all npt 300 300 1 aniso NULL NULL 0 0 0 0 1 drag 1 variable srate equal 1.0e9 variable srate1 equal "v_srate / 1.0e12" fix 2 all deform 1 x erate ${srate1} units box remap x # Output strain and stress info to file # for units metal, pressure is in [bars] = 100 [kPa] = 1/10000 [GPa] # p2, p3, p4 are in GPa variable strain equal "(lx - v_L0)/v_L0" variable p1 equal "v_strain" variable p2 equal "-pxx/10000" variable p3 equal "-pyy/10000" variable p4 equal "-pzz/10000" fix def1 all print 100 "${p1} ${p2} ${p3} ${p4}" file Al_SC_100.def1.txt screen no # Dump coordinates to file (for void size calculations) dump 1 all custom 2500 dump.* x y z c_csym # Display thermo thermo 100 thermo_style custom step v_strain temp v_p2 v_p3 v_p4 ke pe press run 150000 ###################################### # SIMULATION DONE print "All done"
This molecular dynamics simulation first generates a simulation cell with fcc atoms with <100> orientations in the x, y, and z-directions. For this example, the simulation cell size is 10 lattice units in each direction, i.e., 4000 total atoms. Larger simulation cell sizes should be used to converge the dislocation nucleation stress values and to not influence the dislocation nucleation mechanism. The potential used in the Mishin et al. (1999) aluminum potential. The equilibration step allows the lattice to expand to a temperature of 300 K with a pressure of 0 bar at each simulation cell boundary. Then, the simulation cell is deformed in the x-direction at a strain rate of 109 1/s, while the lateral boundaries are controlled using the NPT equations of motion to zero pressure. The stress and strain values are output to a separate file, which can be imported in a graphing application for plotting. The dump files include both the x, y, and z coordinate and the centrosymmetry value for each atom. This can be converted into a format for visualizing using a standard molecular dynamics visualization program.
The authors would like to acknowledge funding for this work through the Department of Energy.