0% found this document useful (0 votes)
93 views75 pages

3: Getting Started With LAMMPS: Steve Plimpton, Sjplimp@sandia - Gov

The document provides an overview of resources for learning to use LAMMPS, the molecular dynamics simulation software. It describes the example scripts, documentation manual, command reference, and mailing list that are available. It also explains the typical structure of LAMMPS input scripts, including defining the simulation box, interactions, groups, velocities, fixes, outputs, and running the simulation. An example obstacle flow simulation is shown to illustrate these components. The document discusses using variables, looping, multiple simulations and pre-processing tools to build complex molecular systems for simulation in LAMMPS.

Uploaded by

Yeasir Mahmud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
93 views75 pages

3: Getting Started With LAMMPS: Steve Plimpton, Sjplimp@sandia - Gov

The document provides an overview of resources for learning to use LAMMPS, the molecular dynamics simulation software. It describes the example scripts, documentation manual, command reference, and mailing list that are available. It also explains the typical structure of LAMMPS input scripts, including defining the simulation box, interactions, groups, velocities, fixes, outputs, and running the simulation. An example obstacle flow simulation is shown to illustrate these components. The document discusses using variables, looping, multiple simulations and pre-processing tools to build complex molecular systems for simulation in LAMMPS.

Uploaded by

Yeasir Mahmud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 75

SAND2013-8547C

3: Getting Started with LAMMPS

Steve Plimpton, sjplimp@sandia.gov

Computational Rheology via LAMMPS


Society of Rheology Annual Meeting
October 2013 - Montreal, Canada
Resources for learning LAMMPS

Examples: about 35 sub-dirs under examples in distro


Manual: doc/Manual.html
Intro, Commands, Packages, Accelerating
Howto, Modifying, Errors
Alphabetized command list: one doc page per command
doc/Section commands.html#cmd 5
Papers: find a paper similar to what you want to model
Mail list: topics, search it, post to it
http://lammps.sandia.gov/mail.html
Structure of typical input scripts

1 Units and atom style


2 Create simulation box and atoms
region, create box, create atoms, region commands
lattice command vs box units
read data command
data file is a text file
look at examples/micelle/data.micelle
see read data doc page for full syntax
3 Define groups
4 Attributes of atoms: mass, velocity
5 Pair style for atom interactions
6 Fixes for time integration and constraints
7 Computes for diagnostics
8 Output: thermo, dump, restart
9 Run or minimize
10 Rinse and repeat (script executed one command at a time)
Obstacle example

input script = examples/obstacle/in.obstacle


Obstacle input script

1st section = setup box and create atoms

# 2d LJ obstacle flow

dimension 2
boundary p s p
atom style atomic
neighbor 0.3 bin
neigh modify delay 5

# create geometry

lattice hex 0.7


region box block 0 40 0 10 -0.25 0.25
create box 3 box
create atoms 1 box
Obstacle input script

2nd section = define potential and groups of atoms

# LJ potentials

pair style lj/cut 1.12246


pair coeff * * 1.0 1.0 1.12246

# define groups

region 1 block INF INF INF 1.25 INF INF


group lower region 1
region 2 block INF INF 8.75 INF INF INF
group upper region 2
group boundary union lower upper
group flow subtract all boundary

set group lower type 2


set group upper type 3
Obstacle input script

3rd section = set velocities and fixes

# initial velocities

mass * 1.0
compute mobile flow temp
velocity flow create 1.0 482748 temp mobile
fix 1 all nve
fix 2 flow temp/rescale 200 1.0 1.0 0.02 1.0
fix modify 2 temp mobile

# Poiseuille flow

velocity boundary set 0.0 0.0 0.0


fix 3 lower setforce 0.0 0.0 0.0
fix 4 upper setforce 0.0 NULL 0.0
fix 5 upper aveforce 0.0 -0.5 0.0
fix 6 flow addforce 1.0 0.0 0.0
Obstacle input script

4th section = create 2 obstacles to flow

# 2 obstacles

region void1 sphere 10 4 0 3


delete atoms region void1
region void2 sphere 20 7 0 3
delete atoms region void2

fix 7 flow indent 100 sphere 10 4 0 4


fix 8 flow indent 100 sphere 20 7 0 4
fix 9 all enforce2d
Obstacle input script

5th section: define output and run simulation

# run

timestep 0.003
thermo 1000
thermo modify temp mobile

#dump 1 all atom 100 dump.obstacle


dump 1 all image 500 image.*.jpg type type &
zoom 1.6 adiam 1.5
dump modify 1 pad 5

run 25000
Obstacle example

Questions on input script?

Exercise: run examples/obstacle/in.obstacle


on your machine, examine output
Make a movie

50 JPG files
image.16500.jpg
ImageMagick display
Mac Preview
Make/view a movie
ImageMagick
convert *.jpg image.gif
open in browser
open -a Safari image.gif
Mac QuickTime
open image sequence
Windows Media Player
VMD, AtomEye, ...
Examine screen output

LAMMPS (15 Aug 2013)


Lattice spacing in x,y,z = 1.28436 2.22457 1.28436
Created orthogonal box = (0 0 -0.321089)
to (51.3743 22.2457 0.321089)
4 by 1 by 1 MPI processor grid
Created 840 atoms
120 atoms in group lower
120 atoms in group upper
240 atoms in group boundary
600 atoms in group flow
Setting atom values ...
120 settings made for type
Setting atom values ...
120 settings made for type
Deleted 36 atoms, new total = 804
Deleted 35 atoms, new total = 769
More screen output

WARNING: Temperature for thermo pressure is not


for group all (../thermo.cpp:436)
Setting up run ...
Memory usage per processor = 2.23494 Mbytes
Step Temp E pair E mol TotEng Press Volume
0 1.0004177 0 0 0.68689281 0.46210058 1143.0857
1000 1 -0.32494012 0 0.36166587 1.2240503 1282.5239
2000 1 -0.37815616 0 0.30844982 1.0642877 1312.5691
...
...
...
25000 1 -0.36649381 0 0.32011217 0.98366691 1451.5444
25000 1 -0.38890426 0 0.29770172 0.95284427 1455.9361
Loop time of 1.76555 on 4 procs for
25000 steps with 769 atoms
Timing info

Loop time of 1.76555 on 4 procs for


25000 steps with 769 atoms

Pair time (%) = 0.14617 (8.27903)


Neigh time (%) = 0.0467809 (2.64966)
Comm time (%) = 0.307951 (17.4422)
Outpt time (%) = 0.674575 (38.2078)
Other time (%) = 0.590069 (33.4213)
Run statistics

Per-processor values at end of run

Nlocal: 192.25 ave 242 max 159 min


Histogram: 2 0 0 0 0 1 0 0 0 1
Nghost: 43 ave 45 max 39 min
Histogram: 1 0 0 0 0 0 0 0 2 1
Neighs: 414 ave 588 max 284 min
Histogram: 2 0 0 0 0 0 1 0 0 1

Total # of neighbors = 1656


Ave neighs/atom = 2.15345
Neighbor list builds = 1641
Dangerous builds = 1
Run statistics

Per-processor values at end of run

Nlocal: 192.25 ave 242 max 159 min


Histogram: 2 0 0 0 0 1 0 0 0 1
Nghost: 43 ave 45 max 39 min
Histogram: 1 0 0 0 0 0 0 0 2 1
Neighs: 414 ave 588 max 284 min
Histogram: 2 0 0 0 0 0 1 0 0 1

Total # of neighbors = 1656


Ave neighs/atom = 2.15345
Neighbor list builds = 1641
Dangerous builds = 1

Questions on output? Can everyone make a movie?


Defining variables in input scripts

Styles: index, loop, equal, atom, ...


variable x index run1 run2 run3 run4
variable x loop 100
variable x trap(f JJ[3])*${scale}
variable x atom -(c p[1]+c p[2]+c p[3])/(3*vol)
Defining variables in input scripts

Styles: index, loop, equal, atom, ...


variable x index run1 run2 run3 run4
variable x loop 100
variable x trap(f JJ[3])*${scale}
variable x atom -(c p[1]+c p[2]+c p[3])/(3*vol)
Formulas can be complex
see doc/variable.html
thermo keywords (temp, press, ...)
math operators & functions (sqrt, log, cos, ...)
group and region functions (count, xcm, fcm, ...)
various special functions (min, ave, trap, stride, stagger, ...)
per-atom vectors (x, vx, fx, ...)
output from computes, fixes, other variables
Formulas can be time- and/or spatially-dependent
Using variables in input scripts

Substitute in any command via $x or ${myVar}


Loop using next and jump commands
next command increments a variable
jump command goes to same or different input script
Many commands allow them as arguments
fix addforce 0.0 v fy 1.0
dump modify every v foo
region sphere 0.0 0.0 0.0 v radius
Power tools for input scripts

Filename options:
dump.*.% for per-snapshot or per-processor output
read data data.protein.gz
read restart old.restart.*
If/then/else via if command
Insert another script via include command
useful for long list of params
Power tools for input scripts

Filename options:
dump.*.% for per-snapshot or per-processor output
read data data.protein.gz
read restart old.restart.*
If/then/else via if command
Insert another script via include command
useful for long list of params
Looping via next and jump commands
Invoke a shell command or external program
shell cd subdir1
shell my analyze out.file $n ${param}
Various ways to run multiple simulations from one script
see doc/Section howto 6.4
Example script for multiple runs

variable r equal random(1,1000000000,58798)


variable a loop 8
variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15
log log.$a
read data.polymer
velocity all create $t $r
fix 1 all nvt $t $t 1.0
dump 1 all atom 1000 dump.$a.*
run 100000
next t
next a
jump in.polymer
Example script for multiple runs

variable r equal random(1,1000000000,58798)


variable a loop 8
variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15
log log.$a
read data.polymer
velocity all create $t $r
fix 1 all nvt $t $t 1.0
dump 1 all atom 1000 dump.$a.*
run 100000
next t
next a
jump in.polymer

Run 8 simulations on 3 partitions until finished:


change a & t to universe-style variables
mpirun -np 12 lmp linux -p 3x4 -in in.polymer
Pre-processing tools to build complex systems

LAMMPS does not build molecular systems or auto-magically


assign force field parameters for you (Sun PM: Custom Build of
System)
Pre-processing tools to build complex systems

LAMMPS does not build molecular systems or auto-magically


assign force field parameters for you (Sun PM: Custom Build of
System)
Data file must include list of bonds, angles, etc
Data file can include force field assignments
Tools directory has converters for both steps
ch2lmp = CHARMM converter
amber2lmp = AMBER converter
msi2lmp = Accelrys converter
Pre-processing tools to build complex systems

LAMMPS does not build molecular systems or auto-magically


assign force field parameters for you (Sun PM: Custom Build of
System)
Data file must include list of bonds, angles, etc
Data file can include force field assignments
Tools directory has converters for both steps
ch2lmp = CHARMM converter
amber2lmp = AMBER converter
msi2lmp = Accelrys converter
Provided builders
Moltemplate (Andrew Jewett)
Pizza.py = chain and patch tools (Python)
Builders that can create LAMMPS input
see http://lammps.sandia.gov/prepost.html
VMD TopoTools (Axel Kohlmeyer)
Avogadro
Packmol
Pair styles

LAMMPS lingo for interaction potentials


Pair styles

LAMMPS lingo for interaction potentials


A pair style can be true pair-wise or many-body
LJ, Coulombic, Buckingham, Morse, Yukawa, ...
EAM, Tersoff, REBO, ReaxFF, ...
Bond/angle/dihedral/improper styles = permanent bonds
Pair styles

LAMMPS lingo for interaction potentials


A pair style can be true pair-wise or many-body
LJ, Coulombic, Buckingham, Morse, Yukawa, ...
EAM, Tersoff, REBO, ReaxFF, ...
Bond/angle/dihedral/improper styles = permanent bonds
Variants optimized for GPU and many-core
GPU, USER-CUDA, USER-OMP packages
lj/cut, lj/cut/gpu, lj/cut/cuda, lj/cut/omp
see doc/Section accelerate.html
Coulomb interactions included in pair style
lj/cut, lj/cut/coul/cut, lj/cut/coul/wolf, lj/cut/coul/long
done to optimize inner loop
Categories of pair styles

Solids
eam, eim, meam, adp
Bio and polymers
charmm, class2, gromacs, dreiding
Reactive
tersoff, bop, airebo, comb, reax, reax/c
Coarse-grained
dpd, granular, sph, peri, colloid, lubricate, brownian, FLD
Aspherical
gayberne, resquared, line, tri
Categories of pair styles

Solids
eam, eim, meam, adp
Bio and polymers
charmm, class2, gromacs, dreiding
Reactive
tersoff, bop, airebo, comb, reax, reax/c
Coarse-grained
dpd, granular, sph, peri, colloid, lubricate, brownian, FLD
Aspherical
gayberne, resquared, line, tri

Pair table for tabulation of any pair-wise interaction


Pair hybrid style allows for hybrid models
polymers on metal
CNTs in water
solid-solid interface between 2 materials
Pair styles

See doc/Section commands.html for full list


Pair styles

And they come in accelerated flavors: omp, gpu, cuda


Pair styles

See doc/pair.html for one-line descriptions


Relative CPU cost of potentials

See http://lammps.sandia.gov/bench.html#potentials for details


Can estimate how long your simulation will run
Bond styles (also angle, dihedral, improper)

Used for molecules with fixed bonds


Fix bond/break and bond style quartic can break them
To learn what bond styles LAMMPS has ...
where would you look?
Bond styles (also angle, dihedral, improper)

Used for molecules with fixed bonds


Fix bond/break and bond style quartic can break them
To learn what bond styles LAMMPS has ...
where would you look?
doc/Section commands.html or doc/bond style.html
Long-range Coulombics

KSpace style in LAMMPS lingo, see doc/kspace style.html


Options:
traditional Ewald, scales as O(N 3/2 )
PPPM (like PME), scales as O(N log(N))
MSM, scales as O(N), lj/cut/coul/msm
Additional options:
non-periodic, PPPM (z) vs MSM (xyz)
long-range dispersion (LJ)
Long-range Coulombics

KSpace style in LAMMPS lingo, see doc/kspace style.html


Options:
traditional Ewald, scales as O(N 3/2 )
PPPM (like PME), scales as O(N log(N))
MSM, scales as O(N), lj/cut/coul/msm
Additional options:
non-periodic, PPPM (z) vs MSM (xyz)
long-range dispersion (LJ)
PPPM is fastest choice for most systems
FFTs can scale poorly for large processor counts
MSM can be faster for low-accuracy or large proc counts
Long-range Coulombics

KSpace style in LAMMPS lingo, see doc/kspace style.html


Options:
traditional Ewald, scales as O(N 3/2 )
PPPM (like PME), scales as O(N log(N))
MSM, scales as O(N), lj/cut/coul/msm
Additional options:
non-periodic, PPPM (z) vs MSM (xyz)
long-range dispersion (LJ)
PPPM is fastest choice for most systems
FFTs can scale poorly for large processor counts
MSM can be faster for low-accuracy or large proc counts
Ways to speed-up long-range calculations:
see doc/Section accelerate.html
cutoff & accuracy settings adjust Real vs KSpace work
kspace style pppm/stagger for PPPM
kspace modify diff ad for smoothed PPPM
run style verlet/split
Fixes

Most flexible feature in LAMMPS


Allow control of “what” happens “when” within each timestep
Loop over timesteps:

communicate ghost atoms

build neighbor list (once in a while)


compute forces
communicate ghost forces

output to screen and files


Fixes

Most flexible feature in LAMMPS


Allow control of “what” happens “when” within each timestep
Loop over timesteps:
fix initial NVE, NVT, NPT, rigid-body integration
communicate ghost atoms
fix neighbor insert particles
build neighbor list (once in a while)
compute forces
communicate ghost forces
fix force SHAKE, langevin drag, wall, spring, gravity
fix final NVE, NVT, NPT, rigid-body integration
fix end volume & T rescaling, diagnostics
output to screen and files
Fixes

100+ fixes in LAMMPS


You choose what group of atoms to apply fix to
Already saw some in obstacle example:
fix 1 all nve
fix 2 flow temp/rescale 200 1.0 1.0 0.02 1.0
fix 3 lower setforce 0.0 0.0 0.0
fix 5 upper aveforce 0.0 -0.5 0.0
fix 6 flow addforce 1.0 0.0 0.0
Fixes

100+ fixes in LAMMPS


You choose what group of atoms to apply fix to
Already saw some in obstacle example:
fix 1 all nve
fix 2 flow temp/rescale 200 1.0 1.0 0.02 1.0
fix 3 lower setforce 0.0 0.0 0.0
fix 5 upper aveforce 0.0 -0.5 0.0
fix 6 flow addforce 1.0 0.0 0.0
To learn what fix styles LAMMPS has ...
where would you look?
Fixes

100+ fixes in LAMMPS


You choose what group of atoms to apply fix to
Already saw some in obstacle example:
fix 1 all nve
fix 2 flow temp/rescale 200 1.0 1.0 0.02 1.0
fix 3 lower setforce 0.0 0.0 0.0
fix 5 upper aveforce 0.0 -0.5 0.0
fix 6 flow addforce 1.0 0.0 0.0
To learn what fix styles LAMMPS has ...
where would you look?
doc/Section commands.html or doc/fix.html
Fixes

100+ fixes in LAMMPS


You choose what group of atoms to apply fix to
Already saw some in obstacle example:
fix 1 all nve
fix 2 flow temp/rescale 200 1.0 1.0 0.02 1.0
fix 3 lower setforce 0.0 0.0 0.0
fix 5 upper aveforce 0.0 -0.5 0.0
fix 6 flow addforce 1.0 0.0 0.0
To learn what fix styles LAMMPS has ...
where would you look?
doc/Section commands.html or doc/fix.html
If you familiarize yourself with fixes,
you’ll know many things LAMMPS can do
Many fixes store output accessible by other commands
rigid body COM
thermostat energy
forces before modified
Computes

∼75 computes in LAMMPS


Calculate some property of system, in parallel
Always for the current timestep
To learn what compute styles LAMMPS has ...
Computes

∼75 computes in LAMMPS


Calculate some property of system, in parallel
Always for the current timestep
To learn what compute styles LAMMPS has ...
doc/Section commands.html or doc/compute.html
Computes

Key point:
computes store their answers
other commands invoke them and use the results
e.g. thermo output, dumps, fixes
Output of computes:
global vs per-atom vs local
scalar vs vector vs array
extensive vs intensive values
Computes

Key point:
computes store their answers
other commands invoke them and use the results
e.g. thermo output, dumps, fixes
Output of computes:
global vs per-atom vs local
scalar vs vector vs array
extensive vs intensive values
Examples:
temp & pressure = global scalar or vector
pe/atom = potential energy per atom (vector)
displace/atom = displacement per atom (array)
pair/local & bond/local = per-neighbor or per-bond info
Many computes are useful with averaging fixes:
fix ave/time, ave/spatial, ave/atom
fix ave/histo, ave/correlate
Thermo output

One line of output every N timesteps to screen and log file


See doc/thermo style.html
Thermo output

One line of output every N timesteps to screen and log file


See doc/thermo style.html
Any scalar can be output:
dozens of keywords: temp, pyy, eangle, lz, cpu
any output of a compute or fix: c ID, f ID[N], c ID[N][M]
fix ave/time stores time-averaged quantities
equal-style variable: v MyVar
one value from atom-style variable: v xx[N]
any property for one atom: q, fx, quat, etc
Thermo output

One line of output every N timesteps to screen and log file


See doc/thermo style.html
Any scalar can be output:
dozens of keywords: temp, pyy, eangle, lz, cpu
any output of a compute or fix: c ID, f ID[N], c ID[N][M]
fix ave/time stores time-averaged quantities
equal-style variable: v MyVar
one value from atom-style variable: v xx[N]
any property for one atom: q, fx, quat, etc
Post-process via:
tools/python/logplot.py log.lammps X Y (via GnuPlot)
tools/python/log2txt.py log.lammps data.txt X Y ...
Pizza.py log tool
can read thermo output across multiple runs
Dump output

Snapshot of per-atom values every N timesteps


See doc/dump.html
Dump output

Snapshot of per-atom values every N timesteps


See doc/dump.html
Styles
atom, custom (both native LAMMPS)
VMD will auto-read if file named *.lammpstraj
xyz for coords only
cfg for AtomEye
DCD, XTC for CHARMM, NAMD, GROMACS
good for back-and-forth runs and analysis
Dump output

Snapshot of per-atom values every N timesteps


See doc/dump.html
Styles
atom, custom (both native LAMMPS)
VMD will auto-read if file named *.lammpstraj
xyz for coords only
cfg for AtomEye
DCD, XTC for CHARMM, NAMD, GROMACS
good for back-and-forth runs and analysis
Two additional styles
local: per-neighbor, per-bond, etc info
image: instant picture, rendered in parallel
Dump output

Any per-atom quantity can be output


dozens of keywords: id, type, x, xs, xu, mux, omegax, ...
any output of a compute or fix: f ID, c ID[M]
atom-style variable: v foo
Dump output

Any per-atom quantity can be output


dozens of keywords: id, type, x, xs, xu, mux, omegax, ...
any output of a compute or fix: f ID, c ID[M]
atom-style variable: v foo
Additional options:
control which atoms by group or region
control which atoms by threshold
dump modify thresh c pe > 3.0
text or binary or gzipped
one big file or per snapshot or per proc
see dump modify fileper or nfile
Dump output

Any per-atom quantity can be output


dozens of keywords: id, type, x, xs, xu, mux, omegax, ...
any output of a compute or fix: f ID, c ID[M]
atom-style variable: v foo
Additional options:
control which atoms by group or region
control which atoms by threshold
dump modify thresh c pe > 3.0
text or binary or gzipped
one big file or per snapshot or per proc
see dump modify fileper or nfile
Post-run conversion
tools/python/dump2cfg.py, dump2pdb.py, dump2xyz.py
Pizza.py dump, cfg, ensight, pdb, svg, vtk, xyz
Parallelization in LAMMPS

Physical domain divided into 3d bricks


One brick per processor
Atoms carry properties &
topology as they migrate
Comm of ghost atoms within cutoff
6-way local stencil
Short-range forces ⇒
CPU cost scales as O(N/P)
Parallel performance

See http://lammps.sandia.gov/bench.html
Parallel performance

See http://lammps.sandia.gov/bench.html

Exercise: run bench/in.lj, change N and P, is it O(N/P) ?


lmp linux -v x 2 -v y 2 -v z 2 < in.lj
mpirun -np 2 lmp linux < in.lj
How to speed-up your simulations

See doc/Section accelerate.html of manual


1 Many ideas for long-range Coulombics
PPPM with 2 vs 4 FFTs
PPPM with staggered grid
run style verlet/split
processor layout
How to speed-up your simulations

See doc/Section accelerate.html of manual


1 Many ideas for long-range Coulombics
PPPM with 2 vs 4 FFTs
PPPM with staggered grid
run style verlet/split
processor layout
2 Howto for GPU and USER-CUDA and USER-OMP packages
GPU:
pair style and neighbor list build on GPU
can use multiple cores per GPU
USER-CUDA:
fixes and computes onto GPU (many timesteps)
one core per GPU
USER-OMP:
works via OpenMP, run 1 or 2 MPI tasks/node
supports large number of pair styles (+ other styles)
GPU benchmark data at
http://lammps.sandia.gov/bench.html
desktop and Titan (ORNL)
How to speed-up your simulations

Increase time scale via timestep size


fix shake for rigid bonds (2 fs)
run style respa for hierarchical steps (4 fs)

Increase length scale via coarse graining


all-atom vs united-atom vs bead-spring
mesoscale models:
ASPHERE, BODY, COLLOID, FLD packages
GRANULAR, PERI, RIGID, SRD packages
see doc/Section packages.html for details
Quick tour of more advanced topics

See http://lammps.sandia.gov/features.html
Units
see doc/units.html
LJ, real, metal, cgs, si
all input/output in one unit system
Ensembles
see doc/Section howto.html 6.16
one or more thermostats (by group)
single barostat
rigid body dynamics
Hybrid models
pair style hybrid and hybrid/overlay
atom style hybrid sphere bond ...
Quick tour of more advanced topics

Aspherical particles
see doc/Section howto.html 6.14
ellipsoidal, lines, triangles, rigid bodies
ASPHERE package
Mesoscale and continuum models
COLLOID, FLD, SRD packages for NPs and colloids
PERI package for Peridynamics
USER-ATC package for atom-to-continuum (FE)
GRANULAR package for granular media
add-on LIGGGHTS package for DEM
www.liggghts.com/www.cfdem.com
Quick tour of more advanced topics

Multi-replica modeling
see doc/Section howto.html 6.14
parallel tempering
PRD, TAD, NEB
Quick tour of more advanced topics

Multi-replica modeling
see doc/Section howto.html 6.14
parallel tempering
PRD, TAD, NEB
Load balancing
balance command for static LB
fix balance command for dynamic LB
work by adjusting proc dividers in 3d brick grid
Quick tour of more advanced topics

Energy minimization
Via usual dynamics
pair style soft
fix nve/limit and fix viscous
Via gradient-based minimization
min style cg, htfn, sd
Via damped-dynamics minimization
min style quickmin and fire
used for nudged-elastic band (NEB)
Quick tour of more advanced topics

Use LAMMPS as a library

doc/Section howto.html
6.10 and 6.19
C-style interface
(C, C++, Fortran,
Python)
examples/COUPLE dir
python and
python/examples
directories
What have people done with LAMMPS?

Pictures: http://lammps.sandia.gov/pictures.html
Movies: http://lammps.sandia.gov/movies.html
What have people done with LAMMPS?

Pictures: http://lammps.sandia.gov/pictures.html
Movies: http://lammps.sandia.gov/movies.html

Papers: http://lammps.sandia.gov/papers.html
authors, titles, abstracts for ∼2500 papers
Customizing and modifying LAMMPS

90% of LAMMPS is customized add-on classes, via styles


Write a new derived class, drop into src, re-compile
Customizing and modifying LAMMPS

90% of LAMMPS is customized add-on classes, via styles


Write a new derived class, drop into src, re-compile
Resources:
doc/Section modify.html
doc/PDF/Developer.pdf
class hierarchy & timestep structure
Sun PM: Making Changes to LAMMPS
Please contribute your code to the LAMMPS distro !

You might also like