Module 2: LAMMPS Project - dislocation mobility in aluminum

Project Brief

In this project, you will use MD simulation to examine the dislocation core structure in aluminum, and investigate the motion of the dislocation under an applied strain rate. This information can be used to determine input parameters to higher length scale models, such as discrete dislocation dynamics. This work will also help you prepare for the final project, where you will investigate the changes in dislocation behavior from the introduction of solutes into aluminum.

Deliverables

You will produce a short report documenting your findings. Your report should contain a separate section for each of the tasks listed below, and provide the explicit deliverables requested for each task listed below. The points allocated for each deliverable are enumerated below. For the input scripts below, simply cut-and-paste your input script into your report.

The report should be formatted as a single single pdf document comprising your report and all requested files. Submit your report via email by 11:59pm on 18 April 2019. Late submissions will not be accepted.

Instructions

The LAMMPS Manual and commands list will be vital to your success. You are going to construct your own input files for running your LAMMPS calculations below, and will need to work through what commands are necessary. Broadly speaking, there are three parts to this project:

  1. Relaxing an edge dislocation core (\(T=0\) structure).
  2. Thermalizing at finite temperature (\(T=300\)K structure).
  3. Applying strain, identifying dislocation motion.

Part 1. Relaxing an edge dislocation.

In anticipation of future work, you will use the Mendelev Al-Mg EAM potential: NIST repository information. This potential gives a lattice constant of 4.0453Å, and elastic constants of \(C_{11}=110.18\text{ GPa}\), \(C_{12}=61.37\text{ GPa}\), and \(C_{44}=32.56\text{ GPa}\). I have already created an initial dislocation structure for a perfect edge dislocation (\(\frac{a}{2}[110](1\bar11)\)) using anisotropic elasticity. In the directory /class/mse404pla/LAMMPS/Project/, you will find a file called Al-disloc.xyz. This file is an “XYZ” file of an edge dislocation: the Burgers vector is \(\frac{a}{2}[110]\), which points in the \(x\) direction, the threading vector is \(\frac{a}{2}[1\bar12]\), which points in the \(z\) direction (and will be periodic, with length \(\sqrt{3/2}a \approx 4.954\text{\AA}\)), while the \(y\) axis points perpendicular to the slip plane, in the \([\bar111]\) direction. This geometry was generated for a cylindrical slab of radius 100Å. You can visualize this geometry in Ovito; because of the displacement field, it looks like Pacman with an underbite: this is the Volterra construction of a perfect dislocation.

Also in the /class/mse404pla/LAMMPS/Project/ is a python script called xyz_to_lammps.py. This is a very simple script that can read that XYZ file, and create a LAMMPS “data” file: the format is explained in the documentation for the read_data command. The script will read the XYZ file, and construct a data file with two regions (tagged by atom type): an “inner region” of all atoms inside the r_in radius, and an “outer region” that goes out to r_out; atoms outside of r_out will be removed. The two boxsize parameters specify the x and y dimensions; the z dimension will be determined by the threading vector. You should choose boxsize to be larger than r_out, and ensure that \(r_\text{out}-r_\text{in}\) is greater than, but close to, the cutoff of the potential (7.5Å). You are going to consider different sizes of r_in, but in the beginning to test your scripts, you will likely want to use a “small” value, such as 20Å.

Next, you will construct input script. You will start with the partially completed input script, Al_dislocate_relax_template.in. You will complete the input script by adding in missing commands; the input script also contains notes about what is missing.

Next: Relaxation. Run the relaxation to determine the equilibrium core geometry for this potential, and then visualize it in Ovito.

Part 2. Thermalizing at finite temperature (\(T=300\)K structure).

Now that you have a relaxed dislocation geometry (corresponding to \(T=0\)), you will perform a thermalization run to produce a dislocation geometry at a finite temperature (300K), and see if there are changes in the dislocation core geometry, as well as test the best way to visualize the position of the dislocation.

To do this, you will need to construct an input script. To do this, make a copy of your completed relaxation input script; next, you will edit it to (1) read the relaxed dislocation core, (2) thermostat the inner “mobile” atoms while keeping the outer atoms fixed, and (3) run molecular dynamics.

Next: Molecular dynamics. Run your dynamics; you will get a copy of the output to the screen in the file log.lammps (so that you can see how your temperature stabilizes), and you can visualize your dislocation geometry in Ovito.

Part 3. Applying strain, identifying dislocation motion.

Now with your thermalized dislocation, you will want to apply strain to cause it to move. Your goal is to identify the necessary strain to move the dislocation by monitoring the stress in the system and verifying the motion of the dislocation via visualization.

To do this, you will need to construct an input script. To do this, make a copy of your completed thermalization input script; next, you will edit it to (1) read the thermalized dislocation core, (2) apply increasing strain on the outer atoms, and (3) run molecular dynamics.

Next: Molecular dynamics. Run your dynamics; you will get a copy of the output to the screen in the file log.lammps (so that you can see how your stress changes with time, which corresponds to the change in strain), and you can visualize your dislocation geometry in Ovito.

Part 4. Finite size effects

By this point, you should have a reasonable set of input scripts that take you from relaxation to thermalization, to the application of stress. These have now been tested for the “small” simulation size you initially chose. You should repeat your calculation with a cell that is at least 40Å in radius and 40Å along the threading vector.