Overview of LAMMPS Simulation Code
Overview of LAMMPS Simulation Code
Paul S. Crozier
1. MD basics
2. Why use LAMMPS?
3. Live demo #1
4. Basic information about LAMMPS
5. Live demo #2
6. Six very useful LAMMPS commands
7. Live demo #3
8. Vignettes of some LAMMPS research
9. Future areas of LAMMPS development
10. How to add a new feature to LAMMPS
11. Homework assignment
Review of MD basics
• Pair-wise forces
– Van der Waals (dipole-dipole)
– Coulombic (charge-charge)
• Many-body forces
– EAM, Tersoff, bond-order, ReaxFF
• Molecular forces
– springs, torsions, dihedrals, ...
• Long-range Coulombic forces
– Ewald, particle-mesh methods, FFTs
MD in the Middle
• Speed
– parallel implementation
• Accuracy
– long-range Coulombics
• Time scale
– slow versus fast degrees of freedom
• Length scale
– coarse-graining
Classical MD in Parallel
• MD is inherently parallel
– forces on each atom can be computed simultaneously
– X and V can be updated simultaneously
• Can distribute:
– atoms communication = scales as N
– forces communication = scales as N/sqrt(P)
– space communication = scales as N/P or
(N/P)2/3
Discussion outline
1. MD basics
2. Why use LAMMPS?
3. Live demo #1
4. Basic information about LAMMPS
5. Live demo #2
6. Six very useful LAMMPS commands
7. Live demo #3
8. Vignettes of some LAMMPS research
9. Future areas of LAMMPS development
10. How to add a new feature to LAMMPS
11. Homework assignment
Why Use LAMMPS?
(Large-scale Atomic/Molecular Massively Parallel Simulator)
[Link]
Classical MD code.
Open source, highly portable C++.
Freely available for download under GPL.
Easy to download, install, and run.
Well documented.
Easy to modify or extend with new features and functionality.
Active user’s e-mail list with over 650 subscribers.
Upcoming users’ workshop: Aug 9 – 11, 2011.
Since Sept. 2004: over 50k downloads, grown from 53 to 175 kloc.
Spatial-decomposition of simulation domain for parallelism.
Energy minimization via conjugate-gradient relaxation.
Radiation damage and two temperature model (TTM) simulations.
Atomistic, mesoscale, and coarse-grain simulations.
Variety of potentials (including many-body and coarse-grain).
Variety of boundary conditions, constraints, etc.
Why Use LAMMPS?
Answer 1: (Parallel) Performance
Chemistry
Biophysics
Granular
Flow
Why Use LAMMPS?
Answer 3: Modularity pair_reax.cpp fix_nve.cpp
pair_reax.h fix_nve.h
LAMMPS Objects
atom styles: atom, charge, colloid, ellipsoid, point dipole
pair styles: LJ, Coulomb, Tersoff, ReaxFF, AI-REBO, COMB,
MEAM, EAM, Stillinger-Weber,
fix_styles: NVE dynamics, Nose-Hoover, Berendsen, Langevin,
SLLOD, Indentation,...
compute styles: temperatures, pressures, per-atom energy, pair
correlation function, mean square displacemnts, spatial and time
averages
Goal: All computes works with all fixes work with all pair styles
work with all atom styles
Why Use LAMMPS?
Answer 4: Potential Coverage
LAMMPS Potentials
pairwise potentials: Lennard-Jones, Buckingham, ...
charged pairwise potentials: Coulombic, point-dipole
manybody potentials: EAM, Finnis/Sinclair, modified EAM
(MEAM), embedded ion method (EIM), Stillinger-Weber, Tersoff,
AI-REBO, ReaxFF, COMB
electron force field (eFF)
coarse-grained potentials: DPD, GayBerne, ...
mesoscopic potentials: granular, peridynamics
long-range Coulombics and dispersion: Ewald, PPPM (similar to
particle-mesh Ewald)
Why Use LAMMPS?
Answer 4: Potentials
• Download page:
[Link]/[Link]
• Installation instructions:
[Link]/doc/Section_start.html
go to lammps/src
type “make your_system_type”
• To perform a simulation:
lmp < my_script.in
Live demo #1
1. Download LAMMPS.
– [Link]
– Try the Windows serial executable.
2. Download a simple LAMMPS input script.
– [Link]
3. Run LAMMPS
– [Link]
Discussion outline
1. MD basics
2. Why use LAMMPS?
3. Live demo #1
4. Basic information about LAMMPS
5. Live demo #2
6. Six very useful LAMMPS commands
7. Live demo #3
8. Vignettes of some LAMMPS research
9. Future areas of LAMMPS development
10. How to add a new feature to LAMMPS
11. Homework assignment
How to get help with LAMMPS
1. Excellent User’s Manual:
[Link]
[Link]
• New user or new simulation always want new feature not in code
• Goal: make it as easy as possible for us and others to add new features
called “styles” in LAMMPS:
particle type, pair or bond potential, scalar or per-atom computation
"fix": BC, force constraint, time integration, diagnostic, ...
input command: create_atoms, set, run, temper, ...
over 75% of current 170K+ lines of LAMMPS is add-on styles
• Enabled by C++
"virtual" parent class for all pair potentials
defines interface: compute(), coeff(), restart(), ...
add feature: add 2 lines to header file, add files to src dir, re-compile
feature won't exist if not used, won't conflict with rest of code
• Particle-mesh methods:
partition into short-range and long-range contributions
short-range via direct pairwise interactions
long-range:
interpolate atomic charge to 3d mesh
solve Poisson's equation on mesh (4 FFTs)
interpolate E-fields back to atoms
• Good news: Cost of PPPM is only ~2x more than 8-10 Angstrom cutoff
Time Scale of Molecular Dynamics
1. MD basics
2. Why use LAMMPS?
3. Live demo #1
4. Basic information about LAMMPS
5. Live demo #2
6. Six very useful LAMMPS commands
7. Live demo #3
8. Vignettes of some LAMMPS research
9. Future areas of LAMMPS development
10. How to add a new feature to LAMMPS
11. Homework assignment
Six very useful LAMMPS commands
1. fix
2. compute
3. pair_style
4. variable
5. thermo_style
6. dump
fix command
A "fix" is any operation that is applied to the system during
time-stepping or minimization.
[Link]
Examples include updating of atom positions and velocities due to time integration, controlling
temperature, applying constraint forces to atoms, enforcing boundary conditions, computing
diagnostics, etc.
There are dozens of fixes defined in LAMMPS and new ones can be added.
Examples:
• fix 1 all nve
• fix 3 all nvt temp 300.0 300.0 0.01
• fix mine top setforce 0.0 NULL 0.0
Available “fixes” in LAMMPS
adapt - change a simulation parameter over time nve - constant NVE time integration
addforce - add a force to each atom nve/asphere - NVT for aspherical particles
aveforce - add an averaged force to each atom nve/limit - NVE with limited step length
nve/noforce - NVE without forces (v only)
ave/atom - compute per-atom time-averaged quantities
nve/sphere - NVT for spherical particles
ave/histo - compute/output time-averaged histograms nvt - constant NVT time integration via Nose/Hoover
ave/spatial - compute/output time-averaged per-atom quantities by layer nvt/asphere - NVT for aspherical particles
ave/time - compute/output global time-averaged quantities nvt/sllod - NVT for NEMD with SLLOD equations
bond/break - break bonds on the fly nvt/sphere - NVT for spherical particles
bond/create - create bonds on the fly orient/fcc - add grain boundary migration force
planeforce - constrain atoms to move in a plane
bond/swap - Monte Carlo bond swapping
poems - constrain clusters of atoms to move as coupled rigid bodies
box/relax - relax box size during energy minimization pour - pour new atoms into a granular simulation domain
deform - change the simulation box size/shape press/berendsen - pressure control by Berendsen barostat
deposit - add new atoms above a surface print - print text and variables during a simulation
drag - drag atoms towards a defined coordinate reax/bonds - write out ReaxFF bond information
dt/reset - reset the timestep based on velocity, forces recenter - constrain the center-of-mass position of a group of atoms
rigid - constrain one or more clusters of atoms to move as a rigid body with NVE integration
efield - impose electric field on system
rigid/nve - constrain one or more clusters of atoms to move as a rigid body with alternate NVE integration
enforce2d - zero out z-dimension velocity and force rigid/nvt - constrain one or more clusters of atoms to move as a rigid body with NVT integration
evaporate - remove atoms from simulation periodically setforce - set the force on each atom
external - callback to an external driver program shake - SHAKE constraints on bonds and/or angles
freeze - freeze atoms in a granular simulation spring - apply harmonic spring force to group of atoms
gravity - add gravity to atoms in a granular simulation spring/rg - spring on radius of gyration of group of atoms
spring/self - spring from each atom to its origin
heat - add/subtract momentum-conserving heat
srd - stochastic rotation dynamics (SRD)
indent - impose force due to an indenter store/force - store force on each atom
langevin - Langevin temperature control store/state - store attributes for each atom
lineforce - constrain atoms to move in a line temp/berendsen - temperature control by Berendsen thermostat
momentum - zero the linear and/or angular momentum of a group of atoms temp/rescale - temperature control by velocity rescaling
move - move atoms in a prescribed fashion thermal/conductivity - Muller-Plathe kinetic energy exchange for thermal conductivity calculation
tmd - guide a group of atoms to a new configuration
msst - multi-scale shock technique (MSST) integration
ttm - two-temperature model for electronic/atomic coupling
neb - nudged elastic band (NEB) spring forces viscosity - Muller-Plathe momentum exchange for viscosity calculation
nph - constant NPH time integration via Nose/Hoover viscous - viscous damping for granular simulations
nph/asphere - NPH for aspherical particles wall/colloid - Lennard-Jones wall interacting with finite-size particles
nph/sphere - NPH for spherical particles wall/gran - frictional wall(s) for granular simulations
npt - constant NPT time integration via Nose/Hoover wall/harmonic - harmonic spring wall
wall/lj126 - Lennard-Jones 12-6 wall
npt/asphere - NPT for aspherical particles
wall/lj93 - Lennard-Jones 9-3 wall
npt/sphere - NPT for spherical particles wall/reflect - reflecting wall(s)
wall/region - use region surface as wall
wall/srd - slip/no-slip wall for SRD particles
compute command
A “compute" is a diagnostic performed on a group of atoms,
and used to extract quantitative information from a simulation
while it is running.
[Link]
Quantities calculated by a compute are instantaneous values, meaning they are calculated from
information about atoms on the current timestep or iteration, though a compute may internally store
some information about a previous state of the system.
Examples:
• compute 1 all temp
• compute newtemp flow temp/partial 1 1 0
• compute 3 all ke/atom
Available “computes” in LAMMPS
msd - mean-squared displacement of group of atoms
angle/local - theta and energy of each angle
msd/molecule - mean-squared displacement for each molecule
atom/molecule - sum per-atom properties for each molecule
pair - values computed by a pair style
bond/local - distance and energy of each bond pair/local - distance/energy/force of each pairwise interaction
centro/atom - centro-symmetry parameter for each atom pe - potential energy
cluster/atom - cluster ID for each atom pe/atom - potential energy for each atom
cna/atom - common neighbor analysis (CNA) for each atom pressure - total pressure and pressure tensor
property/atom - convert atom attributes to per-atom vectors/arrays
com - center-of-mass of group of atoms
property/local - convert local attributes to localvectors/arrays
com/molecule - center-of-mass for each molecule
property/molecule - convert molecule attributes to localvectors/arrays
coord/atom - coordination number for each atom rdf - radial distribution function g(r) histogram of group of atoms
damage/atom - Peridynamic damage for each atom reduce - combine per-atom quantities into a single global value
dihedral/local - angle of each dihedral reduce/region - same as compute reduce, within a region
displace/atom - displacement of each atom stress/atom - stress tensor for each atom
temp - temperature of group of atoms
erotate/asphere - rotational energy of aspherical particles
temp/asphere - temperature of aspherical particles
erotate/sphere - rotational energy of spherical particles temp/com - temperature after subtracting center-of-mass velocity
event/displace - detect event on atom displacement temp/deform - temperature excluding box deformation velocity
group/group - energy/force between two groups of atoms temp/partial - temperature excluding one or more dimensions of
gyration - radius of gyration of group of atoms velocity
gyration/molecule - radius of gyration for each molecule temp/profile - temperature excluding a binned velocity profile
temp/ramp - temperature excluding ramped velocity component
heat/flux - heat flux through a group of atoms
temp/region - temperature of a region of atoms
improper/local - angle of each improper temp/sphere - temperature of spherical particles
ke - translational kinetic energy ti - thermodyanmic integration free energy values
ke/atom - kinetic energy for each atom
pair_style command
A “pair_style" sets the formula(s) LAMMPS uses to compute
pair-wise interactions.
[Link]
Pair potentials are defined between pairs of atoms that are within a cutoff distance and the set of active
interactions typically changes over time.
Examples:
• pair_style lj/cut 2.5
• pair_style eam/alloy
• pair_style hybrid lj/charmm/coul/long 10.0 eam
• pair_style table linear 1000
• pair_style none
Available “pair_styles” in LAMMPS
pair_style none - turn off pairwise interactions pair_style lj/charmm/coul/charmm - CHARMM potential with cutoff Coulomb
pair_style hybrid - multiple styles of pairwise interactions pair_style lj/charmm/coul/charmm/implicit - CHARMM for implicit solvent
pair_style hybrid/overlay - multiple styles of superposed pairwise interactions pair_style lj/charmm/coul/long - CHARMM with long-range Coulomb
pair_style lj/charmm/coul/long/gpu - GPU-enabled version of CHARMM with long-range Coulomb
pair_style airebo - AI-REBO potential
pair_style lj/charmm/coul/long/opt - optimized version of CHARMM with long-range Coulomb
pair_style born - Born-Mayer-Huggins potential pair_style lj/class2 - COMPASS (class 2) force field with no Coulomb
pair_style born/coul/long - Born-Mayer-Huggins with long-range Coulomb pair_style lj/class2/coul/cut - COMPASS with cutoff Coulomb
pair_style buck - Buckingham potential pair_style lj/class2/coul/long - COMPASS with long-range Coulomb
pair_style buck/coul/cut - Buckingham with cutoff Coulomb pair_style lj/cut - cutoff Lennard-Jones potential with no Coulomb
pair_style buck/coul/long - Buckingham with long-range Coulomb pair_style lj/cut/gpu - GPU-enabled version of cutoff LJ
pair_style lj/cut/opt - optimized version of cutoff LJ
pair_style colloid - integrated colloidal potential
pair_style lj/cut/coul/cut - LJ with cutoff Coulomb
pair_style coul/cut - cutoff Coulombic potential pair_style lj/cut/coul/cut/gpu - GPU-enabled version of LJ with cutoff Coulomb
pair_style coul/debye - cutoff Coulombic potential with Debye screening pair_style lj/cut/coul/debye - LJ with Debye screening added to Coulomb
pair_style coul/long - long-range Coulombic potential pair_style lj/cut/coul/long - LJ with long-range Coulomb
pair_style dipole/cut - point dipoles with cutoff pair_style lj/cut/coul/long/gpu - GPU-enabled version of LJ with long-range Coulomb
pair_style dpd - dissipative particle dynamics (DPD) pair_style lj/cut/coul/long/tip4p - LJ with long-range Coulomb for TIP4P water
pair_style lj/expand - Lennard-Jones for variable size particles
pair_style dpd/tstat - DPD thermostatting
pair_style lj/gromacs - GROMACS-style Lennard-Jones potential
pair_style dsmc - Direct Simulation Monte Carlo (DSMC) pair_style lj/gromacs/coul/gromacs - GROMACS-style LJ and Coulombic potential
pair_style eam - embedded atom method (EAM) pair_style lj/smooth - smoothed Lennard-Jones potential
pair_style eam/opt - optimized version of EAM pair_style lj96/cut - Lennard-Jones 9/6 potential
pair_style eam/alloy - alloy EAM pair_style lj96/cut/gpu - GPU-enabled version of Lennard-Jones 9/6
pair_style eam/alloy/opt - optimized version of alloy EAM pair_style lubricate - hydrodynamic lubrication forces
pair_style meam - modified embedded atom method (MEAM)
pair_style eam/fs - Finnis-Sinclair EAM
pair_style morse - Morse potential
pair_style eam/fs/opt - optimized version of Finnis-Sinclair EAM pair_style morse/opt - optimized version of Morse potential
pair_style eim - embedded ion method (EIM) pair_style peri/lps - peridynamic LPS potential
pair_style gauss - Gaussian potential pair_style peri/pmb - peridynamic PMB potential
pair_style gayberne - Gay-Berne ellipsoidal potential pair_style reax - ReaxFF potential
pair_style gayberne/gpu - GPU-enabled Gay-Berne ellipsoidal potential pair_style resquared - Everaers RE-Squared ellipsoidal potential
pair_style soft - Soft (cosine) potential
pair_style gran/hertz/history - granular potential with Hertzian interactions
pair_style sw - Stillinger-Weber 3-body potential
pair_style gran/hooke - granular potential with history effects pair_style table - tabulated pair potential
pair_style gran/hooke/history - granular potential without history effects pair_style tersoff - Tersoff 3-body potential
pair_style hbond/dreiding/lj - DREIDING hydrogen bonding LJ potential pair_style tersoff/zbl - Tersoff/ZBL 3-body potential
pair_style hbond/dreiding/morse - DREIDING hydrogen bonding Morse potential pair_style yukawa - Yukawa potential
pair_style yukawa/colloid - screened Yukawa potential for finite-size particles
variable command
This command assigns one or more strings to a variable
name for evaluation later in the input script or during a
simulation.
[Link]
• A variable can be referenced elsewhere in an input script to become part of a new input command.
• For variable styles that store multiple strings, the next command can be used to increment which string is
assigned to the variable.
• Variables of style equal store a formula which when evaluated produces a single numeric value which can
be output either directly (see the print, fix print, and run every commands) or as part of thermodynamic
output (see the thermo_style command), or used as input to an averaging fix (see the fix ave/time
command).
• Variables of style atom store a formula which when evaluated produces one numeric value per atom which
can be output to a dump file (see the dump custom command) or used as input to an averaging fix (see the
fix ave/spatial and fix ave/atom commands).
variable command (cont.)
Examples:
• variable x index run1 run2 run3 run4 run5 run6 run7 run8
• variable LoopVar loop $n
• variable beta equal temp/3.0
• variable b1 equal x[234]+0.5*vol
• variable b1 equal "x[234] + 0.5*vol"
• variable b equal xcm(mol1,x)/2.0
• variable b equal c_myTemp
• variable b atom x*y/vol variable foo myfile
• variable temp world 300.0 310.0 320.0 ${Tfinal}
• variable x universe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
• variable x uloop 15 pad
• variable x delete
thermo_style command
Examples:
• thermo_style multi
• thermo_style custom step temp pe etotal press vol
• thermo_style custom step temp etotal c_myTemp v_abc
Available “thermo_style” attributes
step = timestep eangle = angle energy
[Link]
Syntax:
• dump ID group-ID style N file args ID = user-assigned name for the dump
• group-ID = ID of the group of atoms to be dumped
• style = atom or cfg or dcd or xtc or xyz or local or custom
• N = dump every this many timesteps
• file = name of file to write dump info to
• args = list of arguments for a particular style atom
Examples:
• dump myDump all atom 100 [Link]
• dump 2 subgroup atom 50 [Link]
• dump 4a all custom 100 [Link].* id type x y vx fx
• dump 4b flow custom 100 dump.%.myforce id type c_myF[3] v_ke
• dump 2 inner cfg 10 [Link].*.cfg id type xs ys zs vx vy vz
• dump snap all cfg 100 [Link].*.cfg id type xs ys zs id type c_Stress2
• dump 1 all xtc 1000 [Link]
• dump e_data all custom 100 [Link] id type x y z spin eradius fx fy fz eforce
Available “dump” atom attributes
id = atom ID
mol = molecule ID
type = atom type
mass = atom mass
x,y,z = unscaled atom coordinates
xs,ys,zs = scaled atom coordinates
xu,yu,zu = unwrapped atom coordinates
ix,iy,iz = box image that the atom is in
vx,vy,vz = atom velocities
fx,fy,fz = forces on atoms
q = atom charge
mux,muy,muz = orientation of dipolar atom
radius = radius of extended spherical particle
omegax,omegay,omegaz = angular velocity of extended particle
angmomx,angmomy,angmomz = angular momentum of extended particle
quatw,quati,quatj,quatk = quaternion components for aspherical particles
tqx,tqy,tqz = torque on extended particles
spin = electron spin
eradius = electron radius
ervel = electron radial velocity
erforce = electron radial force
c_ID = per-atom vector calculated by a compute with ID
c_ID\[N\] = Nth column of per-atom array calculated by a compute with ID
f_ID = per-atom vector calculated by a fix with ID
f_ID\[N\] = Nth column of per-atom array calculated by a fix with ID
v_name = per-atom vector calculated by an atom-style variable with name
Live demo #3
1. MD basics
2. Why use LAMMPS?
3. Live demo #1
4. Basic information about LAMMPS
5. Live demo #2
6. Six very useful LAMMPS commands
7. Live demo #3
8. Vignettes of some LAMMPS research
9. Future areas of LAMMPS development
10. How to add a new feature to LAMMPS
11. Homework assignment
Vignettes of some LAMMPS research
• Interfaces in melting solids
• Adhesion properties of polymers
• Shear response in metals
• Tensile pull on nanowires
• Surface growth on mismatched lattice
• Shock-induced phase transformations
• Silica nanopores for water desalination
• Coated nanoparticles in solution and at interfaces
• Self-assembly (2d micelles and 3d lipid bilayers)
• Rhodopsin protein isomerization
• Whole vesicle simulation
• Radiation damage
Melt Interface in NiAl
• Mark Asta (UC Davis) and Jeff Hoyt (Sandia)
• Careful thermostatting and equilibration of alloy system
• Track motion and structure of melt interface
Polymer Adhesive Properties
• Mark Stevens and Gary Grest (Sandia)
• Bead/spring polymer model, allow for bond breaking
Shear Response of Cu Bicrystal
• David McDowell group (GA Tech)
• Defect formation, stress relaxation, energetics of boundary region
Coated Nanoparticles at Interfaces
• Matt Lane, Gary Grest (Sandia)
• S sites on Au nanoparticle, alkane-thiol chains,
methyl-terminated, 3 ns sim
water decane
3d Membrane Self-Assembly
• Mark Stevens (Sandia)
• Coarse-grain lipid model in monomeric solvent
• Angle terms for rigidity
• Hydrophilic head-group & solvent, hydrophobic tail
• 100Ks of particles for millions of timesteps
• Bilayer & vesicle formation
– Collaborating with parallel DoD-funded effort at Caltech (Bill Complex molecular structure of unreacted
Goddard, Sergey Zybin) tetragonal PETN crystal, C (gray), N (blue), O
(red), and H (white).
Propagation of reaction front due to thermal excitation of a thin layer at the center of the sample for 10
picoseconds. Top: atoms colored by potential energy. Bottom: atoms colored by temperature (atoms below
1000K are not shown).
MD Simulation of Shock-induced Structural
Phase Transformation in Cadmium Selenide
c-direction: 2-Wave Structure: rocksalt emerges directly from elastically
compressed material
[1000]
[0001]
[0110]
[1000]
Non-equilibrium MD simulations of brackish
water flow through silica and titania nanopores
Dihedral
remains in
trans during
subsequent
150 ns of
relaxation
4 3
18 5 2
6 1
8 16
10 9 7
11 Isomerization occurs 17
12
40-ns simulation in 19 12
14 13
within 200 fs. 19
dark-adapted state 14 13 11
H 10 9 7 17 H
N 15 20 8 N
16 15 20
6 1
5 2
18 4 3
11-cis retinal "all-trans" retinal
Transition in retinal’s interaction environment
10.8 Å 162 Å
1. MD basics
2. Why use LAMMPS?
3. Live demo #1
4. Basic information about LAMMPS
5. Live demo #2
6. Six very useful LAMMPS commands
7. Live demo #3
8. Vignettes of some LAMMPS research
9. Future areas of LAMMPS development
10. How to add a new feature to LAMMPS
11. Homework assignment
Future areas of LAMMPS development
[Link]
“ZIFs are one kind of metal-organic frameworks' subsidiaries which could be used to keep
industrial emissions of carbon dioxide out of the atmosphere. One litre of the crystals could
store about 83 litres of CO2. The crystals are non-toxic and require little energy to
create, making them an attractive possibility for carbon capture and storage. The porous
structures can be heated to high temperatures without decomposing and can be
boiled in water or solvents for a week and remain stable, making them suitable for use in
hot, energy-producing environments like power plants.”
“Like zeolites and other porous materials, zeolitic imidazolate framework membranes can be
used for the separation of gases because of its highly porous structure, large accessible
pore volume with fully exposed edges and faces of the organic links, pore apertures in the
range of the kinetic diameter of several gas molecules, and high CO 2 adsorption capacity.”
[Link]
ZIF-8
Synonym: 2-Methylimidazole zinc salt, ZIF 8
CAS Number: 59061-53-9
Empirical Formula (Hill Notation): C8H12N4Zn
Molecular Weight: 229.60
3. What is the structure of I2-loaded ZIF-8 and where are the main binding
locations?
Monte Carlo (MC): This approach relies on statistical mechanics rather than molecular dynamics. Instead of trying to
reproduce the dynamics of a system, it generates states according to appropriate Boltzmann probabilities.
([Link]
Grand canonical Monte Carlo (GCMC): a very versatile and powerful Monte Carlo technique that explicitly
accounts for density fluctuations at fixed volume and temperature. This is achieved by means of trial insertion and deletion of
molecules. Although this feature has made it the preferred choice for the study of interfacial phenomena, in the last decade grand-
canonical ensemble simulations have also found widespread applications in the study of bulk properties. Such applications had been
hitherto limited by the very low particle insertion and deletion probabilities, but the development of the configurational bias grand
canonical technique has very much improved the situation. ([Link]
Gibbs ensemble Monte Carlo (GEMC): The Gibbs ensemble Monte Carlo method has been specifically designed
to characterize phase transitions. It was mainly developed by Panagiotopoulos (Refs. 1 and 2) to avoid the problem of finite size
interfacial effects. In this method, an NVT (or NpT) ensemble containing two (or more) species is divided into two (or more)
boxes. In addition to the usual particle moves in each one of the boxes, the algorithm includes moves steps to change the volume and
composition of the boxes at mechanical and chemical equilibrium. Transferring a chain molecule from a box to the other requires the
use of an efficient method to insert chains. The configurational bias method is specially recommended for this purpose.
([Link]
Which molecular simulation tool is
best suited for each task?
* Frenkel and Smit, “Understanding Molecular Simulation,” Academic Press, London, 2002.
Excerpts from LAMMPS’s new fix GCMC
(move algorithm)
Excerpts from LAMMPS’s new fix GCMC
(deletion algorithm)
Excerpts from LAMMPS’s new fix GCMC
(insertion algorithm)
How do we know that we’ve
implemented the algorithm correctly?
Verification exercise: code-to-code comparison versus an
established Monte Carlo code (Towhee).
If ideal gas:
Corrected a sign error in the new code that caused a slight discrepancy
Now, with our new fix GCMC for LAMMPS, we have: P (LAMMPS) = 1 bar
Results of GCMC simulations
of I2 loading of ZIF-8 structure
GCMC loading movie
Time-lapse image of MC loading simulation
I2 loading of 16 ZIF-8 cages vs MC cycles
GCMC saturation movie
Loading isotherm
Homework assignment
1. Download LAMMPS.
– [Link]
– Try the Windows serial executable.
2. Download a simple LAMMPS input script.
– [Link]
3. Run LAMMPS
– [Link]
HW #2