Skip to main content

A Python interface for ab initio path integral molecular dynamics simulations

Project description

# i-PI: a Universal Force Engine

A Python interface for ab initio path integral molecular dynamics simulations (and more). i-PI is a Python server (that does not need to be compiled and only requires a relatively recent version of Python and Numpy) that applies an algorithm to update the positions of the nuclei. One of many compatible external codes acts as client, and computes the electronic energy and forces.

This is typically a patched version of an electronic structure code, but a simple self-contained Fortran driver that implements several simple interatomic potentials is included for test purposes.

i-PI was originally developed to simulate the quantum mechanical nature of light nuclei by performing path integral molecular dynamics simulations, and it implements most of the state-of-the-art methods to accelerate this kind of calculations. It has since grown to also provide all sorts of simulation strategies, from replica exchange to geometry optimization.

If you use i-PI in your research, please cite the accompanying publication: for version 3, the relevant paper is [Litman et al., _J. Chem. Phys._ 161, 062504 (2024)](https://doi.org/10.1063/5.0215869)

` @article{litman2024ipi, title={i-PI 3.0: a flexible and efficient framework for advanced atomistic simulations}, author={Yair Litman and Venkat Kapil and Yotam M. Y. Feldman and Davide Tisi and Tomislav Begušić and Karen Fidanyan and Guillaume Fraux and Jacob Higer and Matthias Kellner and Tao E. Li and Eszter S. Pós and Elia Stocco and George Trenins and Barak Hirshberg and Mariana Rossi and Michele Ceriotti}, journal = {J. Chem. Phys.}, pages = {062505}, volume = {161}, year = {2024} } `

## Quick Setup

To use i-PI with an existing driver, install and update using pip:

Last version:

`bash python -m pip install git+https://github.com/i-pi/i-pi.git `

Last Release:

`bash pip install -U ipi `

## Documentation

You can find the online documentation at [https://docs.ipi-code.org](https://docs.ipi-code.org/). Alternatively, you can build it locally by following instructions in the docs/README.md file.

## Source installation

To develop i-PI or test it with the self-contained driver, follow these instructions. It is assumed that i-PI will be run from a Linux environment, with a recent version of Python, Numpy and gfortran, and that the terminal is initially in the i-pi package directory (the directory containing this file), which you can obtain by cloning the repository

`bash git clone https://github.com/i-pi/i-pi.git `

Source the environment settings file env.sh as source env.sh or . env.sh. It is useful to put this in your .bashrc or other settings file if you always want to have i-PI available.

## Compile the driver code

The built-in driver requires a FORTRAN compiler, and can be built as

`bash cd drivers/f90 make cd ../.. `

There is also a Python driver available in drivers/py, which however has limited functionalities.

## Examples and demos

The examples and demos folders contain inputs for many different types of calculations based on i-PI. Examples are typically minimal use-cases of specific features, while demos are more structured, tutorial-like examples that show how to realize more complex setups, and also provide a brief discussion of the underlying algorithms.

To run these examples, you should typically start i-PI, redirecting the output to a log file, and then run a couple of instances of the driver code. The progress of the wrapper is followed by monitoring the log file with the tail Linux command.

Optionally, you can make a copy of the directory with the example somewhere else if you want to keep the i-PI directory clean. For example, after sourcing the env.sh file,

`bash cd demos/para-h2-tutorial/tutorial-1/ i-pi tutorial-1.xml > log & i-pi-driver -a localhost -p 31415 -m sg -o 15 & i-pi-driver -a localhost -p 31415 -m sg -o 15 & tail -f log `

The monitoring can be interrupted with CTRL+C when the run has finished (5000 steps).

## Tutorials and online resources

The i-PI [documentation](https://docs.ipi-code.org/onlinereso.html) has a list of available tutorials, recipes and other useful online resources.

## Run the automatic test suite

The automatic test suite can be run by calling the i-pi-tests script. You need to have the pytest package installed

` i-pi-tests `

You may also need to install some dependencies, listed in requirements.txt.

See more details in the README file inside the ipi_tests folder.

## Contributing

If you have new features you want to implement into i-PI, your contributions are much welcome. See CONTRIBUTING.md for a brief set of style guidelines and best practices. Before embarking into a substantial project, it might be good to get in touch with the developers, e.g. by opening a wishlist issue.

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

ipi-3.1.11.tar.gz (16.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ipi-3.1.11-py3-none-any.whl (657.0 kB view details)

Uploaded Python 3

File details

Details for the file ipi-3.1.11.tar.gz.

File metadata

  • Download URL: ipi-3.1.11.tar.gz
  • Upload date:
  • Size: 16.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ipi-3.1.11.tar.gz
Algorithm Hash digest
SHA256 686d846c4a2cc048b0a05ee6b47ffc14cf02f7f9b560017c4ab5c5ab15909b8a
MD5 b4db1406dc3574b17b4ffb6fe4fe35e6
BLAKE2b-256 7f3ebca158f4af441918f8706f331d4655f9917d6111f578c4aafd979c5a49d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ipi-3.1.11.tar.gz:

Publisher: release-pypi.yml on i-pi/i-pi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ipi-3.1.11-py3-none-any.whl.

File metadata

  • Download URL: ipi-3.1.11-py3-none-any.whl
  • Upload date:
  • Size: 657.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ipi-3.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 95f32a25826f626eeec6967acc6a3df1ab5e0c19a5831a2e9d79a1fb6eeac11e
MD5 e84225250be82851d63ff2c5e2932400
BLAKE2b-256 0adec2067081644b0a937c9ac57f5bb00add382e54c804df77c1c90a74655f42

See more details on using hashes here.

Provenance

The following attestation bundles were made for ipi-3.1.11-py3-none-any.whl:

Publisher: release-pypi.yml on i-pi/i-pi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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