lammps/lib/colvars/README

91 lines
3.5 KiB
Plaintext

## Collective variables module (Colvars)
A software module for molecular simulation and analysis that provides a
high-performance implementation of sampling algorithms defined on a reduced
space of continuously differentiable functions (aka collective variables).
The module itself implements a variety of functions and algorithms, including
free-energy estimators based on thermodynamic forces, non-equilibrium work and
probability distributions.
## Documentation
For a brief description see:
https://colvars.github.io/
https://github.com/Colvars/colvars/
For the reference manual see:
http://colvars.github.io/colvars-refman-lammps
A PDF copy is also at:
doc/PDF/colvars-refman-lammps.pdf
Also available is a Doxygen-based developer documentation:
http://colvars.github.io/doxygen/html/
The reference article is:
G. Fiorin, M. L. Klein, and J. Hénin,
Molecular Physics 111, 3345 (2013).
https://doi.org/10.1080/00268976.2013.813594
## Requirements
The Colvars library can be built for the most part with all major versions of
the C++ language.
A few of the most recent features require C++11 support. In particular, the
library is optionally built together with the
"Lepton"_https://simtk.org/projects/lepton library, a copy of which is also
included in the LAMMPS distribution. Lepton implements the
"customFunction"_http://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#colvar|customFunction
feature, and requires C++11 support.
See "here"_https://colvars.github.io/README-c++11.html for a detailed list of
C++11-only features.
## How to build (CMake)
This is the recommended build recipe: no additional settings are normally
needed besides "-D PKG_USER-COLVARS=yes".
Building and linking of Lepton (or other C++11-only features) is enabled
automatically when compilation is carried out with C++11 support, and disabled
otherwise. Optionally, Lepton build may be manually controlled with the flag
"-D COLVARS_LEPTON=yes|no".
## How to build (traditional make)
Before building LAMMPS, one must build the Colvars library in lib/colvars.
This can be done manually in the same folder by using or adapting one of the
provided Makefiles: for example, Makefile.g++ for the GNU compiler.
In general, it is safer to use build setting consistent with the rest of
LAMMPS. This is best carried out from the LAMMPS src directory using a
command like these, which simply invoke the lib/colvars/Install.py script with
the specified args:
make lib-colvars # print help message
make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled :pre
The "machine" argument of the "-m" flag is used to find a Makefile.machine to
use as build recipe. If it does not already exist in lib/colvars, it will be
auto-generated by using compiler flags consistent with those parsed from the
core LAMMPS makefiles.
Optional flags may be specified as environment variables:
COLVARS_DEBUG=yes make lib-colvars args="-m machine" # Build with debug code (much slower)
COLVARS_LEPTON=no make lib-colvars args="-m machine" # Build without Lepton (included otherwise)
The build should produce two files: the library lib/colvars/libcolvars.a
(which also includes Lepton objects if enabled) and the specification file
lib/colvars/Makefile.lammps. The latter is auto-generated, and normally does
not need to be edited.