Skip to main content

Ultra-Fast Force Fields for molecular dynamics

Project description

Tests

S. R. Xie, M. Rupp, and R. G. Hennig, “Ultra-fast interpretable machine-learning potentials”, preprint arXiv:2110.00624 (2021).

All-atom dynamics simulations have become an indispensable quantitative tool in physics, chemistry, and materials science, but large systems and long simulation times remain challenging due to the trade-off between computational efficiency and predictive accuracy. The UF3 framework is built to address this challenge by combinining effective two- and three-body potentials in a cubic B-spline basis with regularized linear regression to obtain machine-learning potentials that are physically interpretable, sufficiently accurate for applications, and as fast as the fastest traditional empirical potentials.

Documentation: https://uf3.readthedocs.io/

This repository is still under construction. Please feel free to open new issues for feature requests and bug reports.

Setup

UF3 can be installed in two different ways:

  1. Download and install automatically from PyPI (recommended):

pip install uf3
  1. Download and install manually from GitHub:

git clone https://github.com/uf3/uf3.git
cd uf3
pip install .

Getting Started

Please see the examples in uf3/examples/tungsten_extxyz for basic usage.

Overviews for individual modules can be found in uf3/examples/modules (WIP).

Standalone scripts and configuration generators/parsers are in development.

Optional Dependencies

Elastic constants:

pip install setuptools_scm
pip install uf3[elastic_constants]

Phonon spectra:

pip install uf3[phonon_spectra]

LAMMPS interface:

conda install numpy==1.20.3 --force-reinstall
conda install -c conda-forge lammps --no-update-deps

The environment variable $ASE_LAMMPSRUN_COMMAND must also be set to use the LAMMPS interface within python. See the ASE documentation for details.

Dependencies

  • We rely on ase to handle parsing outputs from atomistic codes like LAMMPS, VASP, and CP2K.

  • We use Pandas to keep track of atomic configurations and their energies/forces as well as organizing data for featurization and training.

  • B-spline evaluations use scipy, numba, and ndsplines.

  • PyTables is used for reading/writing HDF5 files.

  • Matplotlib is used for plotting.

  • We use sklearn for regression.

  • We use tqdm for progress bars.

  • We use plotly for interactive plots.

  • We use PyYaml for configuration files.

  • We use numpy for array operations.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uf3-0.4.0.tar.gz (99.7 kB view hashes)

Uploaded Source

Built Distribution

uf3-0.4.0-py3-none-any.whl (93.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page