Week 3
weekmenu | week1 | week2 | week4 |week5 | week6 | Project
3th week (Feb 21th-27th): Molecular Dynamic Simulations
The molecular dynamics (MD) method consists in the numerical integration of the Newton’s equation of motion for the atomic positions in a condensed matter system. In order to compute the forces needed to obtain the atomic velocities (which in turn are needed to obtain the atomic positions), we need some kind of interatomic potential describing the interaction between different atoms. The scheme show the principal parts that a molecular dynamic simulation needs: a initial configuration with the atomic positions; the inter-atomic potential, related with the force between the atoms; the integration algorithms, numerical integration of the Newton’s equation of motion for the atomic positions; static properties, thermodynamics (pressure and temperature), structural (g(r)). After run a MD simulation we can make and calculate dynamical properties with the output file (this may have: coordinates, velocities and acceleration in each step for each atom, depending on what you want).
More information about MD in the paper that I sent you before and wikipedia :P
LPMD program
Las Palmeras Molecular Dynamics (LPMD) is a Molecular Dynamics (MD) code written from scratch in C++, as user-friendly, modular and multiplatform as possible. Some of its features are: it is an Open Source code, it works using plugins, it reads simple and intuitive configuration files, and also includes utility software to perform analysis, conversion, and visualization of MD simulations.
There are 4 executables for run different calculations:
lpmd: Molecular dynamic simulations
$lpmd file.control
lpmd-analyzer: Statical and dynamical properties. It use the output file from a MD simulation.
$lpmd-analyzer file.control
lpmd-converter: Create cells and convert different extension files.
$lpmd-converter file.control
lpmd-visualizer: display the MD simulation.
$lpmd-visualizer file.control
Control file for Molecular Dynamics
For run any molecular dynamic simulation with lpmd you need to make a control file, where you must to define different parameters, like:
- The cell parameters
- The input file
- The potential
- The integrator
- ... etc..
Here you will see a basic example of control file (# symbol indicates a comment line):
Control file |
# cell dimensions # input file, where there are the atomic coordinates. # output file # thermodynamical properties will be written in the # initializes the temperature in Kelvin. # total number of steps for the simulation # Load of plugins : use ... enduse # Integrator, in this case # Potential between atoms. # cell manager. This is used for obtain more performance in the calculations, # Apply plugins: applies the previously defined plugins. cellmanager linkedcell |
Exercise 1: Create two molecular dynamic control files
- Go to your folder and create a new folder for this week.
- To performe the following work, you will need take a look the periodic table and these papers [1][2] where you will find the parameters for the potentials.
- Take a look to the potential in the papers and compare with the lpmd manual, in order to write correctly the parameters.
- See information about how write the potential's parameters typing:
$lpmd -p buckingham $lpmd -p suttonchen
Argon:
- cubic cell with 78,9 A of size.
- buckingham potential.
- beeman integrator, dt 2 femto-second.
- write the steps, temperature and pressure for thermodynamic properties, each 10 steps starting at step 0 until ends the simulation.
- 5000 total steps.
- initial temperature of 100 Kelvin.
- linkedcell like cell manager, with
mode auto
. - output file extension, xyz, save configuration each 10 steps.
write here the final control file.
Silver:
- cubic cell with a=b=40.9 A and c=20.45 A.
- suttonchen potential.
- velocityverlet integrator, dt 1 femto-second.
- write the steps, temperature and pressure for thermodynamic properties, each 5 steps starting at step 0 until ends the simulation.
- 2000 total steps.
- initial temperature of 300 Kelvin.
- linkedcell like cell manager, with
mode auto
. - output file extension, xyz, save configuration each 5 steps.
write here the final control file.
- Run both simulations. Now display the simulations obtained:
$vmd filenameAr.xyz then $vmd filenameAg.xyz
Statical properties
Now you will analyze the molecular dynamics simulation that was run before, so you will have the output file of this simulation. I will give you 3 control files, the first one is for calculate the pair distribution function g(r), 2th is for calculate the angular distribution function, and the 3th for calculate the coordination number. The last two properties need the result obtained from g(r), so you will provide this parameters in the control file.
- Create a new folder. Copy the Structprop.tar.gz file from
/home/claudial/
to your folder. Unzip the file, this will generate 4 files: final20p4.xyz, geo2-gdr.control, geo2-ang.control and geo2-cnu.control. - The output file is final20p4.xyz, visualize it!!
- Take a look the geo2-gdr.control file. Know run it!
$lpmd-analyzer geo2-gdr.control
Look the output file obtained from this calculation. Know do a graph for each atomic pair, upload them!
- Make a comment about the g(r) obtained in the comment part, and write the position where the first peak disappears. This information is important because this tell us, until what distance there are first neighbors. With this information we can determine angles and numbers of the first neighbors for each atomic species. These quantities you will have to introduce in the others control files, geo2-ang.control and geo2-cnu.control. Take a look the files and write the missing information.
Run the control files! - Take a look the output files. Graph and upload the Ge-O-Ge angle.
- Make comments in the comment part!
Graph and upload the coordination number as histogram, for example:
gnuplot> plot "cordnum.dat" u 1:2 w boxes
- What do you understand from these graphics? Visualize the final20p4.xyz file and make a zoom in a germanium atom and take a look to the neighborhood. Did you expect this?
''.Keep(str_replace(array('$Chrono','$PostTo','$AccessCode'),
array('chrono','',RandomAccess()),
FmtPageName($GLOBALS['CommentBoxFmt'],$pagename
)))