Commit ac897ea6 authored by Steve Plimpton's avatar Steve Plimpton
Browse files

LATTE package doc update and some small code changes

parent 02665e45
Loading
Loading
Loading
Loading
+60 −0
Original line number Original line Diff line number Diff line
@@ -96,6 +96,7 @@ Package, Description, Doc page, Example, Library
"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
"LATTE"_#LATTE, quantum DFTB forces via LATTE, "fix latte"_fix_latte.html, latte, ext
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
@@ -695,6 +696,65 @@ bench/in.rhodo :ul


:line
:line


LATTE package :link(LATTE),h4

[Contents:]

A fix command which wraps the LATTE DFTB code, so that molecular
dynamics can be run with LAMMPS using density-functional tight-binding
quantum forces calculated by LATTE.

More information on LATTE can be found at this web site:
"https://github.com/lanl/LATTE"_#latte_home.  A brief technical
description is given with the "fix latte"_fix_latte.html command.

:link(latte_home,https://github.com/lanl/LATTE)

[Authors:] Christian Negre (LANL) and Steve Plimpton (Sandia).  LATTE
itself is developed at Los Alamos National Laboratory by Marc
Cawkwell, Anders Niklasson, and Christian Negre.

[Install or un-install:]

Before building LAMMPS with this package, you must first download and
build the LATTE library.  You can do this manually if you prefer;
follow the instructions in lib/latte/README.  You can also do it in
one step from the lammps/src dir, using a command like these, which
simply invokes the lib/latte/Install.py script with the specified
args:

make lib-latte                          # print help message
make lib-latte args="-b"                # download and build in lib/latte/LATTE-master
make lib-latte args="-p $HOME/latte"    # use existing LATTE installation in $HOME/latte
make lib-latte args="-b -m gfortran"    # download and build in lib/latte and 
                                        #   copy Makefile.lammps.gfortran to Makefile.lammps

Note that 3 symbolic (soft) links, "includelink" and "liblink" and
"filelink", are created in lib/latte to point into the LATTE home dir.
When LAMMPS builds in src it will use these links.  You should 
also check that the Makefile.lammps file you create is apporpriate
for the compiler you use on your system to build LATTE.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-latte
make machine :pre

make no-latte
make machine :pre

[Supporting info:]

src/LATTE: filenames -> commands
src/LATTE/README
lib/latte/README
"fix latte"_fix_latte.html
examples/latte
"LAMMPS-LATTE tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS :ul

:line

MANYBODY package :link(MANYBODY),h4
MANYBODY package :link(MANYBODY),h4


[Contents:]
[Contents:]
+200 −0
Original line number Original line Diff line number Diff line
@@ -22,66 +22,84 @@ fix dftb all latte NULL :pre


[Description:]
[Description:]


This fix style is a wrapper on the self-consistent charge transfer density functional
This fix style is a wrapper on the self-consistent charge transfer
based tight binding (DFTB) code LATTE. If you download and build LATTE, it can be called
density functional based tight binding (DFTB) code LATTE. If you
as a library by LAMMPS via this fix to run dynamics or perform energy
download and build LATTE, it can be called as a library by LAMMPS via
minimization using DFTB forces and energies computed by LATTE.
this fix to run dynamics or perform energy minimization using DFTB
forces and energies computed by LATTE.

LATTE is principally developed and supported by Marc Cawkwell and
co-workers at Los Alamos National Laboratory (LANL).  See the full
list of contributors in the src/LATTE/README file.

To use this fix, the LATTE program needs to be compiled as a library
and linked with LAMMPS.  LATTE can be downloaded (or cloned) from
"https://github.com/lanl/LATTE"_https://github.com/lanl/LATTE.
Instructions on how to download and build LATTE on your system can be
found in the lib/latte/README.  Note that you can also use the "make
lib-latte" command from the LAMMPS src directory to automate this
process.


LATTE is principally developed and supported by M.J. Cawkwell
Once LAMMPS is built with the LATTE package, you can run the example
and co-workers at Los Alamos National Laboratories (LANL).
input scripts for molecular dynamics or energy minimization that are
See the full list of contributors in the /LATTE/README.md file.
found in examples/latte.


The LATTE program needs to be compiled as a library and linked with LAMMPS.
A step-by-step tutorial can be follwed at: "LAMMPS-LATTE
LATTE can be downloaded at
tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS
"https://github.com/lanl/LATTE"_https://github.com/lanl/LATTE.
and instructions on how to build LATTE on your system and be found
in the lib/latte/README file.

Once LAMMPS is build with the LATTE package, you can run the example input
scripts for molecular dynamics or geometry optimization that are found in examples/latte.

NOTE: LATTE is a code for performing self-consistent charge transfer
tight-binding (SC-TB) calculations of total energies and the forces acting
on atoms in molecules and solids. This tight-binding method is becoming more
and more popular and widely used in chemistry, biochemistry, material science,
etc. The SC-TB formalism is derived from an expansion of the Kohn-Sham
density functional to second order in charge fluctuations about a reference charge of
overlapping atom-centered densities and bond integrals are parameterized using
a Slater-Koster tight-binding approach. This procedure, which usually is referred
to as the DFTB method has been described in detail by ("Elstner"_#Elstner) and ("Finnis"_#Finnis)
and coworkers. Our work follows
that of Elstner closely with respect to the physical model. However, the development of
LATTE is geared principally toward large-scale, long duration, microcanonical quantum-based
Born-Oppenheimer molecular dynamics (QMD) simulations.
One of the main bottlenecks of an electronic structure calculation is the solution
of the generalized eigenvalue problem which scales with the cube of the
system size O(N^3). The Theoretical and Computer sciences divisions at
Los Alamos National Laboratory have accumulated a large experience
addressing this issue by calculating the density matrix directly instead
of using diagonalization. We typically use a recursive sparse Fermi-operator expansion
using second-order spectral projection functions (SP2-algorithm), which was introduced
by Niklasson in 2002 ("Niklasson2002"_#Niklasson2002), ("Rubensson"_#Rubensson),
("Mniszewski"_#Mniszewski).
When the matrices involved in the recursive expansion are
sufficiently sparse, the calculation of the density matrix scales linearly as a function of the
system size O(N). Another important feature is the extended Lagrangian framework
for Born-Oppenheimer molecular dynamics (XL-BOMD) ("Niklasson2008"_#Niklasson2008)
("Niklasson2014"_#Niklasson2014), ("Niklasson2017"_#Niklasson2017)
that allows for a drastic reduction or even a complete removal of the
iterative self-consistent field optimization. Often only a single density matrix
calculation per molecular dynamics time step is required, yet total energy stability is well maintained.
The SP2 and XL-BOMD techniques enables stable linear scaling MD simulations with a very
small computational overhead. This opens a number of opportunities in many different
areas of chemistry and materials science, as we now can simulate larger system
sizes and longer time scales ("Cawkwell2012"_#Cawkwell2012), ("Negre2016"_#Negre2016).


The {peID} argument is not yet supported by fix latte, so it must be
The {peID} argument is not yet supported by fix latte, so it must be
specified as NULL.  Eventually it will be used to enable LAMMPS to
specified as NULL.  Eventually it will be used to enable LAMMPS to
calculate a Coulomb potential as an alternative to LATTE performing
calculate a Coulomb potential as an alternative to LATTE performing
the calculation.
the calculation.


A step-by-step tutorial can be follwed at: "LAMMPS-LATTE tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS
:line


LATTE is a code for performing self-consistent charge transfer
tight-binding (SC-TB) calculations of total energies and the forces
acting on atoms in molecules and solids. This tight-binding method is
becoming more and more popular and widely used in chemistry,
biochemistry, material science, etc.  

The SC-TB formalism is derived from an expansion of the Kohn-Sham
density functional to second order in charge fluctuations about a
reference charge of overlapping atom-centered densities and bond
integrals are parameterized using a Slater-Koster tight-binding
approach. This procedure, which usually is referred to as the DFTB
method has been described in detail by ("Elstner"_#Elstner) and
("Finnis"_#Finnis) and coworkers. 

The work of the LATTE developers follows that of Elstner closely with
respect to the physical model.  However, the development of LATTE is
geared principally toward large-scale, long duration, microcanonical
quantum-based Born-Oppenheimer molecular dynamics (QMD) simulations.
One of the main bottlenecks of an electronic structure calculation is
the solution of the generalized eigenvalue problem which scales with
the cube of the system size O(N^3).

The Theoretical and Computer sciences divisions at Los Alamos National
Laboratory have accumulated large experience addressing this issue by
calculating the density matrix directly instead of using
diagonalization. We typically use a recursive sparse Fermi-operator
expansion using second-order spectral projection functions
(SP2-algorithm), which was introduced by Niklasson in 2002
("Niklasson2002"_#Niklasson2002), ("Rubensson"_#Rubensson),
("Mniszewski"_#Mniszewski).  When the matrices involved in the
recursive expansion are sufficiently sparse, the calculation of the
density matrix scales linearly as a function of the system size O(N).

Another important feature is the extended Lagrangian framework for
Born-Oppenheimer molecular dynamics (XL-BOMD)
("Niklasson2008"_#Niklasson2008) ("Niklasson2014"_#Niklasson2014),
("Niklasson2017"_#Niklasson2017) that allows for a drastic reduction
or even a complete removal of the iterative self-consistent field
optimization.  Often only a single density matrix calculation per
molecular dynamics time step is required, yet total energy stability
is well maintained.  The SP2 and XL-BOMD techniques enables stable
linear scaling MD simulations with a very small computational
overhead.  This opens a number of opportunities in many different
areas of chemistry and materials science, as we now can simulate
larger system sizes and longer time scales
("Cawkwell2012"_#Cawkwell2012), ("Negre2016"_#Negre2016).


:line
:line


@@ -116,16 +134,19 @@ This fix is part of the LATTE package. It is only enabled if LAMMPS
was built with that package.  See the "Making
was built with that package.  See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
LAMMPS"_Section_start.html#start_3 section for more info.


Currently, LAMMPS must be run in serial or as a single MPI task, to use
this fix.  This is typically not a bottleneck, since LATTE will be
doing 99% or more of the work to compute quantum-accurate forces.

NOTE: NEB calculations can be done using this fix. To do this LATTE will
still be compiled serial but LAMMPS will be compiled with mpi.

You must use metal units, as set by the "units"_units command to use
You must use metal units, as set by the "units"_units command to use
this fix.
this fix.


Currently, LAMMPS must be run in serial or as a single MPI task, to
use this fix.  This is typically not a bottleneck, since LATTE will be
doing 99% or more of the work to compute quantum-accurate forces.

NOTE: NEB calculations can be done using this fix using multiple
replicas and running LAMMPS in parallel.  However, each replica must
be run on a single MPI task.  For details, see the "neb"_neb.html
command and -partition command-line explained in "Section
2.6"_Section_start.html#start_6 of the manual.

[Related commands:] none
[Related commands:] none


[Default:] none
[Default:] none
@@ -133,39 +154,47 @@ this fix.
:line
:line


:link(Elstner)
:link(Elstner)
[(Elstner)]  M. Elstner, D. Poresag, G. Jungnickel, J. Elsner, M. Haugk, T. Frauenheim,
[(Elstner)] M. Elstner, D. Poresag, G. Jungnickel, J. Elsner,
S. Suhai, and G. Seifert, Phys. Rev. B, 58, 7260 (1998).
M. Haugk, T. Frauenheim, S. Suhai, and G. Seifert, Phys. Rev. B, 58,
7260 (1998).


:link(Elstner1)
:link(Elstner1)
[(Elstner)]  M. Elstner, D. Poresag, G. Jungnickel, J. Elsner, M. Haugk, T. Frauenheim,
[(Elstner)] M. Elstner, D. Poresag, G. Jungnickel, J. Elsner,
S. Suhai, and G. Seifert, Phys. Rev. B, 58, 7260 (1998).
M. Haugk, T. Frauenheim, S. Suhai, and G. Seifert, Phys. Rev. B, 58,
7260 (1998).


:link(Finnis)
:link(Finnis)
[(Finnis)]  M. W. Finnis, A. T. Paxton, M. Methfessel, and M. van Schilfgarde,
[(Finnis)] M. W. Finnis, A. T. Paxton, M. Methfessel, and M. van
Phys. Rev. Lett., 81, 5149 (1998).
Schilfgarde, Phys. Rev. Lett., 81, 5149 (1998).


:link(Mniszewski)
:link(Mniszewski)
[(Mniszewski)] S. M. Mniszewski, M. J. Cawkwell, M. E. Wall, J. Mohd-Yusof, N. Bock, T. C.
[(Mniszewski)] S. M. Mniszewski, M. J. Cawkwell, M. E. Wall,
Germann, and A. M. N. Niklasson, J. Chem. Theory Comput., 11, 4644 (2015).
J. Mohd-Yusof, N. Bock, T. C.  Germann, and A. M. N. Niklasson,
J. Chem. Theory Comput., 11, 4644 (2015).


:link(Niklasson2002)
:link(Niklasson2002)
[(Niklasson2002)] A. M. N. Niklasson, Phys. Rev. B, 66, 155115 (2002).
[(Niklasson2002)] A. M. N. Niklasson, Phys. Rev. B, 66, 155115 (2002).


:link(Rubensson)
:link(Rubensson)
[(Rubensson)] E. H. Rubensson, A. M. N. Niklasson, SIAM J. Sci. Comput. 36 (2), 147-170, (2014).
[(Rubensson)] E. H. Rubensson, A. M. N. Niklasson, SIAM
J. Sci. Comput. 36 (2), 147-170, (2014).


:link(Niklasson2008)
:link(Niklasson2008)
[(Niklasson2008)] A. M. N. Niklasson, Phys. Rev. Lett., 100, 123004 (2008).
[(Niklasson2008)] A. M. N. Niklasson, Phys. Rev. Lett., 100, 123004
(2008).


:link(Niklasson2014)
:link(Niklasson2014)
[(Niklasson2014)] A. M. N. Niklasson and M. Cawkwell, J. Chem. Phys., 141, 164123, (2014).
[(Niklasson2014)] A. M. N. Niklasson and M. Cawkwell, J. Chem. Phys.,
141, 164123, (2014).


:link(Niklasson2014)
:link(Niklasson2014)
[(Niklasson2017)] A. M. N. Niklasson, J. Chem. Phys., 147, 054103 (2017).
[(Niklasson2017)] A. M. N. Niklasson, J. Chem. Phys., 147, 054103 (2017).


:link(Niklasson2012)
:link(Niklasson2012)
[(Niklasson2017)] A. M. N. Niklasson, M. J. Cawkwell, Phys. Rev. B, 86 (17), 174308 (2012).
[(Niklasson2017)] A. M. N. Niklasson, M. J. Cawkwell, Phys. Rev. B, 86
(17), 174308 (2012).


:link(Negre2016)
:link(Negre2016)
[(Negre2016)] C. F. A. Negre, S. M. Mniszewski, M. J. Cawkwell, N. Bock, M. E. Wall,
[(Negre2016)] C. F. A. Negre, S. M. Mniszewski, M. J. Cawkwell,
and A. M. N. Niklasson, J. Chem. Theory Comp., 12, 3063 (2016).
N. Bock, M. E. Wall, and A. M. N. Niklasson, J. Chem. Theory Comp.,
12, 3063 (2016).
+1 −0
Original line number Original line Diff line number Diff line
@@ -79,6 +79,7 @@ granregion: use of fix wall/region/gran as boundary on granular particles
hugoniostat: Hugoniostat shock dynamics
hugoniostat: Hugoniostat shock dynamics
indent:	  spherical indenter into a 2d solid
indent:	  spherical indenter into a 2d solid
kim:      use of potentials in Knowledge Base for Interatomic Models (KIM)
kim:      use of potentials in Knowledge Base for Interatomic Models (KIM)
latte:    use of LATTE density-functional tight-binding quantum code
meam:	  MEAM test for SiC and shear (same as shear examples)
meam:	  MEAM test for SiC and shear (same as shear examples)
melt:	  rapid melt of 3d LJ system
melt:	  rapid melt of 3d LJ system
micelle:  self-assembly of small lipid-like molecules into 2d bilayers
micelle:  self-assembly of small lipid-like molecules into 2d bilayers
+0 −63
Original line number Original line Diff line number Diff line
 LAMMPS Description
 
          45 atoms
 
           3 atom types
 
   0.0000000000000000        18.917000000000002      xlo xhi
   0.0000000000000000        17.350999999999999      ylo yhi
   0.0000000000000000        15.472000000000000      zlo zhi
 
 Masses
 
              1   15.994915008544922     
              2   12.000000000000000     
              3   1.0078250169754028     
 
 Atoms
 
    1    1    1   0.0  11.47359   7.39174   7.26456
    2    1    2   0.0  12.66159   8.24474   7.53356
    3    1    3   0.0  13.49759   7.72474   7.00656
    4    1    2   0.0  12.92859   8.18374   9.02956
    5    1    1   0.0  13.69659   9.10274  10.46556
    6    1    2   0.0  12.83959  10.10474   6.64056
    7    1    3   0.0  13.24359  10.33074   7.58456
    8    1    1   0.0  13.17359   9.67874   5.60956
    9    1    2   0.0  11.20559  10.26374   6.86456
   10    1    3   0.0  11.22159  11.15674   6.18156
   11    1    1   0.0  10.78559  10.69674   8.19156
   12    1    2   0.0  10.23459   9.20474   6.34356
   13    1    3   0.0   9.23359   9.62574   6.11656
   14    1    1   0.0  10.73959   8.65074   5.08856
   15    1    2   0.0  10.18759   8.08774   7.38056
   16    1    3   0.0  10.03259   8.49174   8.42656
   17    1    1   0.0   9.22959   7.03374   7.08156
   18    1    2   0.0   7.79359   7.27874   7.34356
   19    1    1   0.0   7.44259   8.64274   6.96956
   20    1    2   0.0   7.01059   9.43674   8.13856
   21    1    3   0.0   5.95059   9.74974   7.96256
   22    1    2   0.0   7.08359   8.51474   9.35656
   23    1    3   0.0   8.19359   8.08474   9.80956
   24    1    1   0.0   5.86059   8.56174  10.14056
   25    1    2   0.0   7.34259   7.10674   8.80356
   26    1    3   0.0   6.37259   6.54074   8.80556
   27    1    1   0.0   8.32159   6.38474   9.58156
   28    1    2   0.0   7.89859  10.67174   8.17156
   29    1    1   0.0   6.06859  12.11474   7.59256
   30    1    2   0.0   7.47359   7.05174   5.99256
   31    1    1   0.0   5.66359   6.54374   6.50656
   32    1    3   0.0  12.00659   8.11374   9.61556
   33    1    3   0.0  13.35859   7.21774   9.30856
   34    1    3   0.0  13.67759   8.46774  11.22956
   35    1    3   0.0  12.44459   9.34474   5.00556
   36    1    3   0.0  11.54859  11.18274   8.59756
   37    1    3   0.0  11.00959   7.71574   5.30056
   38    1    3   0.0   5.09459   8.45474   9.52056
   39    1    3   0.0   7.92859   6.23074  10.47756
   40    1    3   0.0   8.53259  10.62974   7.23156
   41    1    3   0.0   8.58159  10.63874   9.05856
   42    1    3   0.0   6.42359  13.37374   7.86056
   43    1    3   0.0   7.58559   6.90074   4.62256
   44    1    3   0.0   7.35159   5.27974   6.61456
   45    1    3   0.0   5.22759   6.18974   5.69256
+4 −7
Original line number Original line Diff line number Diff line
# simple water model with LATTE
# simple sucrose model with LATTE


units		metal
units		metal
atom_style	full
atom_style	full
@@ -34,10 +34,7 @@ fix_modify 2 energy yes


thermo_style    custom step temp pe etotal
thermo_style    custom step temp pe etotal


# minimization
# dynamics


thermo          1
thermo          10
min_style cg
run		100
min_modify dmax 0.1
min_modify line quadratic
minimize        1.0e-6 1.0e-6 10000 10000
Loading