FEASST: Free Energy and Advanced Sampling Simulation Toolkit

README

The Free Energy and Advanced Sampling Simulation Toolkit (FEASST) is a free, open-source, public domain software to conduct molecular and particle-based simulations with Monte Carlo methods.

Features

_images/feasst.png

The features available in the Text Interface are summarized as follows:

Monte Carlo simulation techniques

  • Metropolis

  • Wang-Landau

  • Transition-matrix

  • Mayer-sampling

Thermodynamic ensembles

  • Microcanonical ensemble

  • Canonical ensemble

  • Grand-canonical ensemble

  • Temperature and growth expanded ensembles

  • Gibbs ensemble

Interaction potentials

  • Lennard-Jones and Mie with cut/force shift and corrections

  • Hard spheres and square wells

  • Patchy and anisotropic particles

  • Yukawa and charged interactions

  • Ewald summation and 2D slab correction

  • Bonds, angles and dihedrals

  • TraPPE small molecules and n-alkanes

  • Slab, cylindrical and spherical confinement

  • Cell list and neighbor list

Monte Carlo trials

  • Translation, rotation, crankshaft and pivot

  • Rigid cluster rotation and translation

  • Configurational bias transfers and partial regrowth

  • Dual-cut configurational bias

  • Aggregation volume bias

  • Reptation

  • Branches

Modern software

  • Interface as text input, C++ or Python module

  • Server interface to C++ or Python clients

  • OpenMP parallelization and prefetching

  • Checkpoint files to save, restart and analyze simulations

How to get started

First, compile the executables as described below. Second, find Tutorials that are closest to what you would like to accomplish. Third, reproduce the expected result of those tutorials. Fourth, use the Text Interface documentation to better understand and modify the tutorial to accomplish your goals. When you Contact us with issues, include the text input file instead of the python script that generates that text file.

How to install (i.e., compile the executables)

[apt/yum/brew] install g++ cmake git python3
git clone https://github.com/usnistgov/feasst.git
mkdir feasst/build
cd feasst/build
cmake ..
make install -j4
# optional python packages for feasst tutorials
pip install ../pyfeasst jupyter matplotlib pandas scipy

The executables fst and rst should appear in /path/to/feasst/build/bin/. Text input files are run using fst < input.txt while simulations are restarted using rst checkpoint.txt. It is important to provide pip a path to the specific pyfeasst directory in feasst to ensure the versions match (e.g., do not leave out the “../” above).

Troubleshooting install

Please Contact us if you run into an issue not listed below.

CentOS 7

CMake version is usually too old. Try the command cmake3 instead of cmake.

Rocky 8
  • yum install gcc-c++

Ubuntu 16
Ubuntu 18, 20, 22
  • We are not aware of any install issues with these OS.

Cray (NERSC CORI)
  • OpenMP functions may not work unless the cray programming environment is disabled.

macOS Mojave
  • for omp, try brew install libomp

Windows 10
  • Install Windows subsystem for Linux (Ubuntu 16)

  • See Ubuntu 16

Documentation for a specific version of FEASST

You can access the documentation of a specific version of FEASST as follows.

git clone https://github.com/usnistgov/feasst.git
cd feasst
git checkout nist-pages
git log
# find the commit of your version from git log
# (e.g., 0.19.0 is a50b4fe943832f012373f23658a9497990d70d21)
git checkout a50b4fe943832f012373f23658a9497990d70d21
google-chrome index.html

Contact

Project lead

Harold Wickes Hatch

https://www.nist.gov/people/harold-wickes-hatch

harold.hatch@nist.gov

Email list

http://list.nist.gov/feasst

Issue tracker

https://github.com/usnistgov/feasst/issues

Bug reporting

Any and all bug reports are greatly appreciated in order to improve FEASST.

The following checklist is recommended to improve reproducibility so that I can get back to you more quickly.

  • Reproduce the issue with a minimal example to reduce the complexity, run time and file size.

  • Provide all output.

  • Provide the version (for a git install, bash command “git describe –abbrev=10 –dirty –always –tags” and commit from git log).

  • Provide the user code (e.g., input text file, C++ with int main() or .py file).

  • For installation errors, include the output of the “cmake ..” command on an empty build directory.

Disclaimer

Certain commercial firms and trade names are identified in this document in order to specify the installation and usage procedures adequately. Such identification is not intended to imply recommendation or endorsement by the National Institute of Standards and Technology, nor is it intended to imply that related products are necessarily the best available for the purpose.

License

This license was obtained from https://www.nist.gov/director/licensing (revised as of July 2017).

This data/software was developed by employees of the National Institute of Standards and Technology (NIST), an agency of the Federal Government. Pursuant to title 15 United States Code Section 105, works of NIST employees are not subject to copyright protection in the United States and are considered to be in the public domain.

The data/software is provided by NIST as a public service and is expressly provided “AS IS.” NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST does not warrant or make any representations regarding the use of the data/software or the results thereof, including but not limited to the correctness, accuracy, reliability or usefulness of the data/software. NIST SHALL NOT BE LIABLE AND YOU HEREBY RELEASE NIST FROM LIABILITY FOR ANY INDIRECT, CONSEQUENTIAL, SPECIAL, OR INCIDENTAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE LIKE), WHETHER ARISING IN TORT, CONTRACT, OR OTHERWISE, ARISING FROM OR RELATING TO THE DATA (OR THE USE OF OR INABILITY TO USE THIS DATA), EVEN IF NIST HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

To the extent that NIST may hold copyright in countries other than the United States, you are hereby granted the non-exclusive irrevocable and unconditional right to print, publish, prepare derivative works and distribute the NIST data/software, in any medium, or authorize others to do so on your behalf, on a royalty-free basis throughout the World.

You may improve, modify, and create derivative works of the data/software or any portion of the data/software, and you may copy and distribute such modifications or works. Modified works should carry a notice stating that you changed the data/software and should note the date and nature of any such change. Please explicitly acknowledge the National Institute of Standards and Technology as the source of the data/software.

Permission to use this data/software is contingent upon your acceptance of the terms of this agreement and upon your providing appropriate acknowledgments of NIST’s creation of the data/software.

Contents:

_images/feasst.png

Index