LAMMPS for Molecular Dynamics Simulation
Taekhee Ryu
Gwangju Institute of Science and Technology (GIST) Super Computing & Collaboration Environment Technology Center (SCENT)
Molecular Modeling Laboratory (MML) School of Materials Science and Engineering (MSE)
Gwangju Institute of Science and Technology (GIST)
Overview: What is LAMMPS
Lesson 1: Preparing input file
Lesson 2: Running LAMMPS
Lesson 3: Viewing output file
What is LAMMPS
Large-scale Atomic/Molecular Massively Parallel Simulation - By Dr. S. Plimpton (http://lammps.dandia.gov)
Free open-source code (C++)
Capable for Atomic, polyatomic, biological, metallic, granular system
Designed for Parallel applications
Model System with only a few particles up to millions or billions (depends on computational power)
3
LAMMPS doesn’t
4
Build Molecular systems
• Use a builder code or write out your own config file • Can build lattices, grain boundaries, etc
Assign force-field coefficients auto-magically
• Only hard for molecules, use another MD code
Compute lots of diagnostics on-the-fly
• Often better left to post-processing
Visualize your output
• Many packages do this • VMD, Rasmol, AtomEye, Ensight,…..
5
Our research using LAMMPS Multiscale molecular modeling of Nano-device containing fullerene derivatives
l Self-assembled monolayer
Ø Single organic molecule between metals can function as rectifiers, one-way conductors of electrical current
l Unimolecular rectifier
l Absorption model on Au(111)
6
Our research using LAMMPS l P3HT/PCBM BHJ
l Amorphous phase of PVDF Molecular dynamic simulation
Overview of LAMMPS simulation
7
INPU
T
- Initial positions and velocities - Boundary conditions - Potential energy function - Etc.
RU
NN
ING
- Molecular Dynamics Simulation
OU
TPU
T
- Trajectories - Forces, Energy - Temperature - Pressure - Etc.
INPUT (**.cmd, in.**, data.**) RUNNING OUTPUT
(log.***, dump.***)
LAMMPS Input
8
• Reads an input script (ASCⅡtext)
• One command per line
• Command name + arguments (in.***) atom_style molecular read_data water.data fix 1 all nve run 10000
• Data files(typical components) (data.***) • Summary of molecular connectivity • Cell dimensions • Force field parameters(pair, bond, angle, dihedral, improper) • Atom info (molecule #, atom type #, charge, xyz coordinates) • Bond info (bonds, angles, etc)
• Examples sub-dir has many input scripts
Example Problems in LAMMPS
9
• Crack: crack growth in a LJ crystal (2d)
• Flow: couette/poisseuille flow between walls (2d)
• Friction: rubbing of 2 irregular surfaces (2d)
• Indent: crystal response to spherical indenter (2d)
• Melt: rapid melt of 3d LJ system
• Micelle: self-assembly of tiny lipid molecules (2d)
• Min: energy minimization of LJ melt (2d)
• Obstacle: flow around obstacles (2d)
• Peptide: granular particle pour and flow (2d/3d)
• Shear: shear of a metal slab with void (quasi-3d)
• Peptide: dynamics of a small solvated peptide chain (5-mer)
Input script
10
• Full-atom model of 5-mer peptide
• CHARMM force-field
• SHAKE bond/angle constraints
• 2 fs timestep
Input script
11
1. initialization
2. Atom definition
3. Settings
4. Run a simulation
Input script - initialization
12
1. initialization
• Set parameters that need to be defined before atoms are created or read-in from a file
• Unit, dimension, newton, processors, boundary, atom style, atom modify
Input script - initialization
13
1. initialization • Units • sets the style of units used for a simulation • Beginning of an input script • lj, real, metal, si, cgs, electron
Input script - initialization
14
1. initialization • atom_style • Define what style of atoms to use in a simulation • Beginning of an input script
Input script - initialization
15
1. initialization
2. Atom definition
3. Settings
• Boundary - set the style of boundaries for the global simulation box in each dimension
• Processors - Specify how processors are mapped as a 3d logical grid to the global simulation box
• Dimension - Set the dimensionality of the simulation. By default LAMMPS runs 3d simulations.
Input script - initialization
16
1. initialization
2. Atom definition
3. Settings
• pair_style • set the formula uses to compute pairwise interactions
Input script - initialization
17
1. initialization
2. Atom definition
3. Settings
• bond_style • uses to compute bond interactions between pairs of atoms
r
Input script - initialization
18
1. initialization
2. Atom definition
3. Settings
• angle_style • uses to compute angle interactions between triplets of atoms
rr
Input script - initialization
19
1. initialization
2. Atom definition
3. Settings
• dihedral_style • uses to compute dihedral interactions between quadruplets of atoms
Input script - initialization
20
1. initialization
2. Atom definition • improper_style • uses to compute dihedral interactions between quadruplets of atoms
Input script - initialization
21
1. initialization
2. Atom definition • kspace_style
• Define a K-space solver for LAMMPS to use each timestep to compute long-range Coulombic interactions or long-range 1/r^N interactions
• Style – none or ewald or pppm or pppm/cg or …… • The pppm style invokes a particle-particle particle-mesh solver
(Hockney) which maps atom charge to a 3d mesh, uses 3d FFTs to solve Poisson's equation on the mesh, then interpolates electric fields on the mesh points back to the atoms
Input script - atom definition
22
1. initialization
2. Atom definition
3. Settings
• Read them in from a data or restart file • via the read data or read restart command • Contain molecular topology information
• Create atoms on a lattice • with no molecular topology • Lattice, region, create box, create atoms
Input script
23
1. initialization • Read_data - Read in a data file containing information LA
MMPS needs to run a simulation (data.***)
# of components in system
Simulation box boundaries
Mass
Input script
24
1. initialization • Read_data - Read in a data file containing information LA
MMPS needs to run a simulation (data.***)
Input script
25
1. initialization • Read_data - Read in a data file containing information LA
MMPS needs to run a simulation (data.***)
Input script
26
1. initialization • Read_data - Read in a data file containing information LA
MMPS needs to run a simulation (data.***)
Input script
27
1. initialization • Read_data - Read in a data file containing information LA
MMPS needs to run a simulation (data.***)
Input script
28
1. initialization • Read_data - Read in a data file containing information LA
MMPS needs to run a simulation (data.***)
Input script - atom definition
29
1. initialization
2. Atom definition
• read_data - Read in a data file containing information • LAMMPS needs to run a simulation (data.***)
• read_restart - Read in a previously saved simulation from a restart file
Input script - atom definition
30
• Create atoms on a lattice • with no molecular topology • Lattice, region, create box, create atoms
• Lattice • simply a set of points in space • determined by a unit cell with basis atoms • used to define a wide variety of crystallographic latt
ices
syntax example
Input script - atom definition
31
• Create atoms on a lattice • with no molecular topology • Lattice, region, create box, create atoms
• region • This command defines a geometric region of sp
ace • create box
• This command creates a simulation box based on the specified region
• create atoms • This command creates atoms on a lattice, or a si
ngle atom, or a random collection of atoms
Input script - settings
32
1. initialization
2. Atom definition
3. Settings
3. Run a simulation
Input script - settings
33
• neighbor • This command sets parameters that affect the building of pairwise neighbor lists
• The style value selects what algorithm is used to build the list
• The bin style creates the list by binning which is an operation that scales linearly with N/P, the number of atoms per processor where N = total number of atoms and P = number of processors
Input script - settings
34
• Neigh_modify • This command sets parameters that affect the building and use of pairwise neighbor lists
• The delay setting means never build a new list until at least N steps after the previous build
Input script - settings
35
• timestep • Set the timestep size for subsequent molecular dynamics simulations
Input script - settings
36
• thermo_style • Set the style and content for printing thermodynamic
data to the screen and log file.
• Style multi prints a multiple-line listing of thermodynamic info
• thermo_style custom etotal ke temp pe ebond eangle edihed eimp evdwl ecoul elong press
Input script - settings
37
• thermo • Compute and print thermodynamic info on timesteps
that are a multiple of N and at the beginning and end of a simulation
Input script - settings
38
• fix • Set a fix that will be applied to a group of atoms
Input script - settings
39
• fix • Set a fix that will be applied to a group of atoms
Input script - settings
40
• group • Identify a collection of atoms as belonging to a group • The example above adds all atoms with IDs from 1 t
o 12 to the group named peptide type
Input script - settings
41
• dump • snapshot of atom quantities to one or more files every N timesteps in one of several styles
Input script
42
1. initialization
2. Atom definition
3. Settings
3. Run a simulation
• run • Run or continue dynamics for a specified number of timesteps
Tutorial
43
• VMD를 사용한 Data.*** 생성.
INPUT (**.cmd, in.**, data.**) RUNNING OUTPUT
(log.***, dump.***)
Tutorial
44
• VMD를 사용한 Data.*** 생성.
Tutorial
45
• VMD를 사용한 Data.*** 생성.
Tutorial
46
• VMD를 사용한 Data.*** 생성.
Tutorial
47
• VMD를 사용한 Data.*** 생성.
Tutorial
48
• VMD를 사용한 Data.*** 생성.
49
Hand-on exercise • Download the files
• Xming (http://sourceforge.net/projects/xming/)
• VMD (http://www.ks.uiuc.edu/Research/vmd/)
• Putty (SSH Access Client Program)
• Input file (in.peptide)
• Topology file (data.peptide)
• Executable file (lammps_kigi.cmd)
• Analysis file (thermo_extract.c)
• Install the programs
• Xming, Putty
50
Hand-on exercise
PuTTY – SSH Remote Access Client Program
putty
Hand-on exercise
51
• Connect to the GIST supercomputer (kigi)
localhost:0.0
Hand-on exercise
52
• Connect to the GIST supercomputer (kigi)
Login01.plsi.or.kr, Port-22
Hand-on exercise
53
• Connect to the GIST supercomputer (kigi)
$ ssh kigi-lg01 à connect to the kigi $ cp lammps.tar /pwork01/edun/pedunXX $ cd /pwokr01/edun/pedunXX $ tar xvf lammps.tar $ cd lammps
Hand-on exercise
54
• Lammps_kigi.cmd -> executable file
Input file
Job-time
Job name
Hand-on exercise
55
• Example-1
• Full-atom model of 5-mer peptide
• CHARMM force-field
• SHAKE bond/angle constraints
• 2 fs timestep
Hand-on exercise
56
• Running LAMMPS on PLSI supercomputer
$ llsubmit lammps_kigi.cmd # submit the job $ llcancel job_id # cancel the job $ llq # job status $ llstatus # system status
Output
57
There are two basic types of LAMMPS output. 1. Thermodynamic output (log.***)
1. A list of quantities printed every few time steps to the screen and log file
2. Dump files (dump.***) 1. Snapshots of atoms and various per-atom values and are w
ritten at a specified frequency. 2. Default format is simple : id, type, x, y, z 3. VMD, Rasmol, AtomEye, XMOVIE
Output
58
• Example-1 (log.lammps)
Output
59
• thermo_extract.c
• To run this program please compile it as -> gcc -O3 thermo_extract.c -lm -o thermo_extract
Analysis of thermodynamic output (log.lammps)
-p for thermo parameter to extract -s if the output format is single line, or -m is the output format is multi line
-> thermo_extract –p PotEng -m log.lammps >&PotEng.tot
Output
60
Analysis of thermodynamic output (log.***)
-> gnuplot -> plot ‘PotEng’ u 1:2 w l
Visualizer • AtomEye - http://li.mit.edu/Archive/Graphics/A
• Rasmol - http://www.umass.edu/microbio/rasmol/
• XMOVIE § Auxiliary tool distributed with LAMMPS § Very fast, simple viz § 2d projection of 3d systems § /home01/applic/lammps/lammps-18Apr10/intel/ssh/tools/x
movie/xmovie –scale dump.***
• VMD - http://www.ks.uiuc.edu/Research/vmd/ § Windows, Linux, MacOS X § 3d hi-quality viz
61
Additional tools • Amber2lmp AMBER <-> LAMMPS
• Binary2txt binary dump file -> ASCⅡ test files
• Ch2lmp CHARMM <-> LAMMPS
• Chain create the chains and solvent
• Lmp2arc LAMMPS -> Accelrys’s insight MD
• Lamp2cfg LAMMPS -> AtomEYE(*.cfg)
• Lmp2vmd LAMMPS -> VMD
• Msi2lmp LAMMPS -> Accelrys’s insight MD
• Python, micelle2d, matlab, ipp, emacs, eff, eam database, data
2xmovie, creatatoms
62
Thank you
63