This directory has examples of how to use LAMMPS as a library, either
by itself or in tandem with another code or library.

These examples is meant to illustrate what is possible when coupling
codes or calling LAMMPS as a library.  The examples are provided for
demonstration purposes.  The physics they calculate is too simple to
model a realistic problem.

See these sections of the LAMMPS manaul for details:

2.5 Building LAMMPS as a library (doc/Section_start.html#start_5)
6.10 Coupling LAMMPS to other codes (doc/Section_howto.html#howto_10)
6.29 Using LAMMPS in client/server mode (doc/Section_howto.html#howto_29)

In all of the examples included here, LAMMPS must first be built as a
library.  Basically, in the src dir you type one of

make mode=lib machine
make mode=shlib machine

to create the static library liblammps_machine.a or the shared library
liblammps_machine.so for your code to link against.  A soft link
(liblammps.a or liblammps.so) is also created that points to the most
recently built static or shared library.  Your code build can simply
use the soft link if you prefer.

The library interface to LAMMPS is in src/library.cpp.  Routines can
be easily added to this file so an external program can perform the
LAMMPS tasks desired.

-------------------------------------------------------------------

These are the sub-directories included in this directory:

simple		    simple example of driver code calling LAMMPS as a lib
multiple	    example of driver code calling multiple instances of LAMMPS
lammps_mc           client/server coupling of Monte Carlo client 
                      with LAMMPS server for energy evaluation
lammps_quest	    MD with quantum forces, coupling to Quest DFT code
lammps_spparks	    grain-growth Monte Carlo with strain via MD,
		    coupling to SPPARKS kinetic MC code
lammps_vasp         client/server coupling of LAMMPS client  with 
                      VASP quantum DFT as server for quantum forces
library		    collection of useful inter-code communication routines
fortran             a simple wrapper on the LAMMPS library API that
 		      can be called from Fortran
fortran2            a more sophisticated wrapper on the LAMMPS library API that
 		      can be called from Fortran
fortran_dftb        wrapper written by Nir Goldman (LLNL), as an
                      extension to fortran2, used for calling LAMMPS
                      from Fortran DFTB+ tight-binding code

Each sub-directory has its own README with more details.
