Ultra-Fast Force Fields (UF3)
=============================
|Tests|
\S. R. Xie, M. Rupp, and R. G. Hennig, "Ultra-fast interpretable machine-learning potentials", preprint `arXiv:2110.00624 <https://arxiv.org/abs/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
-----
.. Recommended: Install UF3 in a new conda environment:
.. .. code:: bash
.. conda create -n uf3_env python=3.8
.. conda activate uf3_env
UF3 can be installed in two different ways:
1. Download and install automatically from PyPI (recommended):
.. code:: bash
pip install uf3
2. Download and install manually from GitHub:
.. code:: bash
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 <https://wiki.fysik.dtu.dk/ase/ase/calculators/lammpsrun.html>`_ 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.
.. |Tests| image:: https://github.com/uf3/uf3/workflows/Tests/badge.svg
:target: https://github.com/uf3/uf3/actions
Raw data
{
"_id": null,
"home_page": "https://github.com/uf3/uf3",
"name": "uf3",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Stephen R. Xie, Matthias Rupp",
"author_email": "sxiexie@ufl.edu",
"download_url": "https://files.pythonhosted.org/packages/98/e2/2151c3f9bccaf5412ac1e17f285c0f0dcaee18a5db9d33dfa2769e3b3378/uf3-0.4.0.tar.gz",
"platform": null,
"description": "Ultra-Fast Force Fields (UF3)\n=============================\n\n|Tests|\n\n\n\\S. R. Xie, M. Rupp, and R. G. Hennig, \"Ultra-fast interpretable machine-learning potentials\", preprint `arXiv:2110.00624 <https://arxiv.org/abs/2110.00624>`_ (2021).\n\nAll-atom dynamics simulations have become an indispensable quantitative\ntool in physics, chemistry, and materials science, but large systems and\nlong simulation times remain challenging due to the trade-off between\ncomputational efficiency and predictive accuracy. The UF3 framework is\nbuilt to address this challenge by combinining effective two- and\nthree-body potentials in a cubic B-spline basis with regularized linear\nregression to obtain machine-learning potentials that are physically\ninterpretable, sufficiently accurate for applications, and as fast as\nthe fastest traditional empirical potentials.\n\nDocumentation: https://uf3.readthedocs.io/\n\nThis repository is still under construction. Please feel free to open\nnew issues for feature requests and bug reports.\n\nSetup\n-----\n\n.. Recommended: Install UF3 in a new conda environment:\n\n.. .. code:: bash\n\n.. conda create -n uf3_env python=3.8\n.. conda activate uf3_env\n\nUF3 can be installed in two different ways:\n\n1. Download and install automatically from PyPI (recommended):\n\n.. code:: bash\n\n pip install uf3\n\n2. Download and install manually from GitHub:\n\n.. code:: bash\n\n git clone https://github.com/uf3/uf3.git\n cd uf3\n pip install .\n\nGetting Started\n---------------\n\nPlease see the examples in uf3/examples/tungsten_extxyz for basic usage.\n\nOverviews for individual modules can be found in uf3/examples/modules\n(WIP).\n\nStandalone scripts and configuration generators/parsers are in\ndevelopment.\n\nOptional Dependencies\n---------------------\n\nElastic constants:\n\n::\n\n pip install setuptools_scm\n pip install uf3[elastic_constants]\n\nPhonon spectra:\n\n::\n\n pip install uf3[phonon_spectra]\n\nLAMMPS interface:\n\n::\n\n conda install numpy==1.20.3 --force-reinstall\n conda install -c conda-forge lammps --no-update-deps\n\nThe environment variable ``$ASE_LAMMPSRUN_COMMAND`` must also be set to use the LAMMPS interface within python. See the `ASE documentation <https://wiki.fysik.dtu.dk/ase/ase/calculators/lammpsrun.html>`_ for details.\n\nDependencies\n------------\n\n- We rely on ase to handle parsing outputs from atomistic codes like\n LAMMPS, VASP, and CP2K.\n- We use Pandas to keep track of atomic configurations and their\n energies/forces as well as organizing data for featurization and\n training.\n- B-spline evaluations use scipy, numba, and ndsplines.\n- PyTables is used for reading/writing HDF5 files.\n- Matplotlib is used for plotting.\n- We use sklearn for regression.\n- We use tqdm for progress bars.\n- We use plotly for interactive plots.\n- We use PyYaml for configuration files.\n- We use numpy for array operations.\n\n\n.. |Tests| image:: https://github.com/uf3/uf3/workflows/Tests/badge.svg\n :target: https://github.com/uf3/uf3/actions\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Ultra-Fast Force Fields for molecular dynamics",
"version": "0.4.0",
"project_urls": {
"Homepage": "https://github.com/uf3/uf3"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "10f7904d895c3dc5604ccf8c3871f53f48b8c40a5299ce021c2b9a0416e20be2",
"md5": "6f319794637d5b248502574efd2bb33c",
"sha256": "99dd1154b668401198f7e49b1f1464c0d737ffc1a92388bb3a708a354d79f692"
},
"downloads": -1,
"filename": "uf3-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f319794637d5b248502574efd2bb33c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 93516,
"upload_time": "2023-10-27T16:37:16",
"upload_time_iso_8601": "2023-10-27T16:37:16.097446Z",
"url": "https://files.pythonhosted.org/packages/10/f7/904d895c3dc5604ccf8c3871f53f48b8c40a5299ce021c2b9a0416e20be2/uf3-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "98e22151c3f9bccaf5412ac1e17f285c0f0dcaee18a5db9d33dfa2769e3b3378",
"md5": "3e42fb18f76f73e7e1689f0087b8b4bf",
"sha256": "10b706822d217a6407ddac40bda54bce9ea56ffd78ef6ddbe687924a203fb893"
},
"downloads": -1,
"filename": "uf3-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "3e42fb18f76f73e7e1689f0087b8b4bf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 99733,
"upload_time": "2023-10-27T16:37:17",
"upload_time_iso_8601": "2023-10-27T16:37:17.784848Z",
"url": "https://files.pythonhosted.org/packages/98/e2/2151c3f9bccaf5412ac1e17f285c0f0dcaee18a5db9d33dfa2769e3b3378/uf3-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-27 16:37:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "uf3",
"github_project": "uf3",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "ase",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "ndsplines",
"specs": []
},
{
"name": "numba",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "plotly",
"specs": []
},
{
"name": "PyYAML",
"specs": []
},
{
"name": "scikit-learn",
"specs": []
},
{
"name": "scipy",
"specs": []
},
{
"name": "tables",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "EXTRAS_REQUIRE",
"specs": []
}
],
"lcname": "uf3"
}