In this task, we will bridge information
from the electronic scale to the nanoscale by calibrating a MEAM potential to
specific DFT data. MEAM potentials can be calibrated with a number of physical
quantities, however by downscaling our end goal of modeling the plastic
behavior of our material, we can narrow it down to two very important
quantities, the energy-volume (EV) curves and the generalized stacking fault
energy (GSFE) curve. We can use other quantities to validate our potential.
There are two parts to this task,
In Part 1, we will calculate the energy-volume (EV) and generalized stacking fault energy (GSFE) curves for our target material. For this course, we will use Vienna Ab initio Software Package (VASP) or Quantum Espresso to run the DFT calculations.
VASP Setup
A video tutorial on getting started with VASP is available
here. To run a VASP simulation, five files are needed. The names
of the files (except the executable) are fixed for VASP as it simply looks for
files with these names.
Quantum Espresso Setup
To run a Quantum Espresso simulation, three files are
needed. The names of the files are not fixed for Quantum Espresso, as you will
specify the input file and pseudopotential file directly. You can obtain
Quantum Espresso by following the download link on the code
page. A video tutorial on how to get started with Quantum Espresso is
available here.
Run Scripts
You will need the run scripts for creating the EV
curves and the GSFE curves. Make sure to get the correct
version for either VASP or Quantum Espresso.
You will also need the helper program evfit. As long as you run it on a
Mississippi State cluster or shared memory system, the compiled program in
/scratch/ICME_2017/Task1/ will work. If you run it elsewhere,
you may need to compile it from the source.
Batch Scripts
The version of VASP available at Mississippi State will only
run on the HPC cluster machines. To submit jobs on these systems, you will need
a PBS script. Make sure you have the two pbs scripts ev.pbs,
gsfe.pbs from /scratch/ICME_2017/Task1/.
You can also modify these PBS scripts for Quantum Espresso, but Quantum
Espresso can also be run locally or on your personal computer.
Walk-through
A video tutorial for this section can be found here.
Step 1
If using VASP, modify the batch script ev.pbs to reflect your material. Change the line beginning
#PBS -N
to name your simulation. Change the final line,
./ev_curve fcc 4.08
to reflect your structure and initial guess for the lattice parameter.
If you are using Quantum Espresso, you will need to create three input files
named *.ev.in where * is the name of each structure in all lowercase (fcc, bcc,
hcp). For an example input script, see the code page. You can
set each of these up for each lattice structure by looking at the Quantum
Espresso documentation for the plane wave input file.
Step 2
Modify the run script, ev_curve , to control
the range and number of points generated, as well as the type of equation of
state used to generate the results.
The lattice spacings are controlled by the section of code
# Set the range and number of points generated low=`echo 0.8\*$3 | bc` # Sets the lower bound to 80% of guess high=`echo 1.2\*$3 | bc` # Sets the upper bound to 120% of guess step=`echo "($high-$low)/20" | bc -l` # Sets stepsize such that 20 points are created
The equation of state is specified where the evfit routine is called. The "4" corresponds to the fourth equation of state, see the documentation for more information on your options.
# Once VASP has been run for each lattice parameter in the range # Run evfit routine with equation of state 4 cat <<! | ./evfit $1 4 EvsA evfit.4 !
Step 3
Run the simulations! If you are at Mississippi State using VASP, first you will need to make sure the correct software is setup when you log on to the cluster. To do this, make sure the following lines are added to /home/YOUR_USERNAME/.bashrc above the line stating "# All non-interactive shells will exit on the next line."
swsetup pbs:intel:openmpi
Then, logon to one of the the HPC clusters (eg. Raptor) and type:
qsub ev.pbs
Your job will be added to the queue. You can check the status with
qstat -u YOUR_USERNAME
If you are using Quantum Espresso, simply execute the command below, replacing the names with your material and lattice parameter guess, as in Step 1.
./ev_curve fcc 3.61
Step 4
The script will create several output files.
SUMMARY will give an overview of the values obtained using the
specified equation of state.
The raw data obtained can be found in EvsA (energy vs. lattice parameter) and
EvsV (energy vs. volume).
Step 5 (optional): Python Post-processing
Multiple python scripts have been created to assist in post-processing the data generated by the (Code: Quantum Espresso) simulations and SUMMARY / evfit / EvsV/ EvsV files generated through the process of completing the task. The codes will parse the necessary files and generate plots and use the matplotlib python library to generate figures. There are currently 5 different files that can be used depending on what information is required. It is not necessary to use these codes to to the post-processing, but they are a useful tool.
Task Assignment
Walk-through
Step 1
Edit the script, gsfe_curve.py , to reflect the DFT code you will be using.
# ### EDIT THIS PARAMETER FOR CODE IN USE # 'qe' - Quantum Espresso # 'vasp' - VASP dft = 'qe'
If using VASP, modify the batch script gsfe.pbs to reflect your system. Change the line beginning
#PBS -N
to name your simulation. Change the final line,
./gsfe_curve.py fcc 3.63 partial
to reflect your structure and the ground state lattice parameter.
If you are using Quantum Espresso, edit the script, gsfe_curve.py
, with your material and pseudopotential.
Step 2
If using VASP, modify the pbs script, gsfe.pbs to choose the stacking fault to use.
On the final line,
./gsfe_curve.py fcc 3.63 partial
change the last term to set the type of stacking fault to use. To see what each of the stacking faults are available for your material, simply run the GSFE script from the command line with
./gsfe_curve.py
The code will prompt you for the required inputs, and describe the stacking fault types using a face and direction in Miller indices. The name in parentheses will tell you the name to use in your PBS script or command.
Step 3
Modify the python script, gsfe_curve.py , to control how many points are generated.
##### STACKING FAULT PARAMETERS - USER EDIT IF NEEDED ##### # Number or location of simulated points. It MUST start with 0. #fault_points = [0.0, 1./6., 1./3.] fault_points = np.linspace(0,1,19)
You can use the commented line ( #fault_points = np.linspace(0,1,19) ) to create evenly spaced points, or the line above it to specify specific points. The displacement is normalized here - points should range from 0 to 1, and start with 0.
Step 4
Run the simulations!
If you are at Mississippi State, logon to one of the the HPC
clusters (eg. Raptor) and type
qsub gsfe.pbs
Your job will be added to the queue. You can check the status with
qstat -u YOUR_USERNAME
GSFE jobs can often take a few to several hours, depending
on the number of points, and k-point density. Plan accordingly!
If you are using Quantum Espresso, simply run the command below, replacing the
material, structure, lattice parameter, and dislocation type with the ones for
your system, as in Steps 1 and 2.
./gsfe_curve fcc 3.61 partial
Step 5
Gather the results.
GSFE_SUMMARY contains the displacement (in units
of the lattice parameter) vs. GSFE values in mJ/m^2.
Task Assignment
Additional examples for performing the necessary simulations are found by clicking the on the respective image below:
Energy Volume Curves
Generalized Stacking Fault Energy
For this portion of the assignment, you will use the MEAM Parameter Calibration (MPC) tool to fit a MEAM potential.
Fit the modified embedded atom method (MEAM) model and
generate a new MEAM potential for your material by using the property values
calculated above from the DFT results. Tutorial videos for using the MPC tool
can be found here and here.
The calibration will include values calculated by DFT: Equilibrium nearest
neighbor distance/lattice parameter, cohesive energy, GSFE curve, and the
elastic moduli (sometimes the surface formation energy for (111) surface is
used but not in this task). Elastic constants can be checked with
literature results (experimental values in Table III page 15 of Mehl
et al.
MEAM Parameter Calibration
By using the codes provided here you accept the the Mississippi State University's license agreement. Please read the agreement carefully before usage.