Perform Nanoindentation on Al-Mg Alloy: Difference between revisions
| Line 99: | Line 99: | ||
[[Image:Indenter_K_Modulus.png | frame | center | Fig.4 The Effective Modulus of the Indenter in Terms of the Indent Depth.]] |
[[Image:Indenter_K_Modulus.png | frame | center | Fig.4 The Effective Modulus of the Indenter in Terms of the Indent Depth.]] |
||
=== |
=== Fix the bottom === |
||
First, We define 5 bottom layers as the bottom layer, these atom layers will be fixed to support the entire sample. Otherwise the sample will move downwards during the indentation. |
First, We define 5 bottom layers as the bottom layer, these atom layers will be fixed to support the entire sample. Otherwise the sample will move downwards during the indentation. |
||
| Line 109: | Line 109: | ||
velocity bottom set 0.0 0.0 0.0 |
velocity bottom set 0.0 0.0 0.0 |
||
Then we set up the temperature for the system: |
|||
compute new mobile temp |
|||
You need first to build the GPU library. Go to your lammps/lib/gpu folder. |
|||
velocity mobile create 1.0 20110723 temp new # create temperature |
|||
Copy the generic linux makefile |
|||
fix ensemble mobile nvt temp 1.0 1.0 1.0 |
|||
cd ~/Codes/LAMMPS/lib/gpu |
|||
cp Makefile.linux Makefile.sherlock |
|||
=== Loading and Unloading === |
|||
You have to modify 3 lines in this file. Open it and replace the values of CUDA_HOME, CUDA_ARCH and CUDA_PREC with the following |
|||
vi Makefile.sherlock |
|||
CUDA_HOME = /share/sw/free/cuda/6.5 |
|||
CUDA_ARCH = -arch=sm_35 |
|||
CUDA_PREC = -D_DOUBLE_DOUBLE |
|||
==Using the GPU for a LAMMPS run== |
==Using the GPU for a LAMMPS run== |
||
Revision as of 06:53, 18 May 2017
Perform Nanoindentation on an Aluminum-Magnesium Alloy
Yifan Wang
Created May 2017
This tutorial explains how to create an FCC sample of Al-Mg alloy and perform nanoindentation on the sample in LAMMPS.
Prerequisite
For this simulation, we will use the LAMMPS 5 Nov 2016 version. The newer version may have changes of the commands. When compiling LAMMPS, please switch on the package MANYBODY in order to use the EAM potential. More details about compiling LAMMPS, please see the manual page (http://lammps.sandia.gov/doc/Section_start.html) for more information.
Prepare The Sample of Al-Mg Alloy
In this note, we will use the following geometric parameters as an example, to show how to perform nanoindentation MD simulation in LAMMPS:
- Weight percentage: 0.6% (~0.67% atomic percentage)
- Simulation Box: 32.4x32.4x32.4nm (free surface on z-direction, pbc on x- and y-directions)
- Indenter radius: 16.2nm
Thermodynamics
According to the phase diagram of Al-Mg alloy (Fig.1), the solubility of Mg in Al is smaller than 1% at room temperature. For our case, since the atomic concentration is 0.67%, we can generate the sample by first creating pure FCC Al metal, and then randomly exchange required Al atoms to Mg.
However, the size factor of Mg as the solute in Al is not negligible (Fig.2). We have to consider the volume change of the sample by adding Mg into pure Al. There are two ways to account for the size effect:
- Relax the sample under zero pressure after we generate the Al-Mg alloy.
- Estimate the volume change theoretically from the size factor.
Although the first method is more correct in the physical sense, the relaxation process will create surface steps on the free surface which will interfere the nanoindentation process. Here we estimate the volume change by correcting the lattice constant:
| . |
For now, we use the linear size factor from King's table. For a more accurate value, a constant pressure relaxation can be performed to determine the size factor.
Generate the Sample of Al-Mg Alloy
First we generate the simulation box of 32.4x32.4x32.4nm. We set up the simulation based on the lattice so that the entire simulation box is filled with atoms. First we define the lattice in LAMMPS ( indentation surface (001) ):
lattice fcc 4.053 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 region BOX block -40.0 40.0 -40.0 40.0 -80.0 0.0 units lattice
Here the lattice constant 4.053 is the size after we consider the size effect, and 80 lattice distance is around 32.4nm. Note that if we change the indentation surface to other FCC planes ((110), (111), etc.), we should change the orientation in lattice definition, for example we take (110) plane as the indentation surface.
lattice fcc 4.053 orient x 0.707 0 -0.707 orient y 0 1 0 orient z 0.707 0 0.707 region BOX block -40.0 40.0 -40.0 40.0 -80.0 0.0 units lattice
Then we create the simulation box and the Al atoms based on the region we defined:
create_box 2 BOX create_atoms 1 region BOX set region BOX type 1
And we randomly change 0.67% atoms to Mg atoms:
set region BOX type/fraction 2 0.0067 20170517 # random seed
Finally, after we add the Mg atoms, we perform relaxation to the entire sample to make the sample equilibrated. In this simulation, we use the EAM potential from Liu and Adams (1998) (https://www.ctcms.nist.gov/potentials/Download/Al-Mg-LA/almg.liu):
pair_style eam/alloy pair_coeff * * almg.liu.eam.alloy Al Mg minimize 1e-9 1e-9 10000 10000
We can visualize the sample as shown in Fig.3.
Perform MD Simulation of Nanoindentation on The Alloy Sample
Before the actual simulation, we first determine the dynamics of the indenter:
- Indenter stiffness constant K: 1.0eV/Å3
- Temperature T: 1.0K
- Indent rate: 0.81Å/ps = 81m/s
- Loading steps: 40000 (0.001ps/step)
- Indent depth: 3.24nm
Note: The units are defined by units command in LAMMPS, we use metal units (http://lammps.sandia.gov/doc/99/units.html)
The Force Field for the Indenter
In LAMMPS, a spherical indeter exerts a force of magnitude:
on each atom where K is the indenter stiffness constant, r is the distance from the atom to the center of the indenter, and R is the radius of the indenter. The force is repulsive and F(r)=0 for r>R.
We have tested the K value ranging from 1 to 1000. Note that with this force field function, the indenter is not an elastic sphere. The effective elastic modulus of the indenter is shown in Fig.4. We can see that the K value does not have significant influence on the effective modulus of the indenter. In our simulation, we choose K = 1.0eV/Å for all the simulation.
Fix the bottom
First, We define 5 bottom layers as the bottom layer, these atom layers will be fixed to support the entire sample. Otherwise the sample will move downwards during the indentation.
region fixed_region block INF INF INF INF INF -75.0 units lattice group bottom region fixed_region group mobile subtract all bottom fix bottom bottom setforce 0.0 0.0 0.0 velocity bottom set 0.0 0.0 0.0
Then we set up the temperature for the system:
compute new mobile temp velocity mobile create 1.0 20110723 temp new # create temperature fix ensemble mobile nvt temp 1.0 1.0 1.0



