Skip to main content

# 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 is driven by [tox](https://tox.wiki/), a Python automation tool that creates clean, isolated environments to make running tests ad build tasks more reproducible. You can install it with pip install tox). From the repository root, run any of:

` tox -e unit # unit tests tox -e regtests # regression tests (compiles and uses the fortran driver) tox -e examples # smoke-test all input examples `

tox builds a clean environment, installs i-PI plus the required test dependencies, and runs the suite. Run tox list to see all available environments.

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.

Metadata

Release files for ipi 3.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ipi 3.3.1
File Size Uploaded Provenance Actions
ipi-3.3.1.tar.gz 609.0 kB With provenance Details for ipi-3.3.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ipi 3.3.1
File Interpreter ABI Platform Actions
ipi-3.3.1-py3-none-any.whl Python 3 none any Details for ipi-3.3.1-py3-none-any.whl

Total release size: 1.3 MB

Release files / ipi-3.3.1.tar.gz

Download URL ipi-3.3.1.tar.gz
Size 609.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0cea7805841efed7ce177cd2bc14b337966dc05df96afa10a01822b04712a79f
BLAKE2b-256 checksum
How to use checksums
010a37ea49c57ee0d4906106951c1a9225b5d9c83624679d4e0b34aa539443d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / ipi-3.3.1-py3-none-any.whl

Download URL ipi-3.3.1-py3-none-any.whl
Size 702.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0613d06734cc8b0f428652dc6d2fca458478f98e35781b6992b5b8a161d3ff35
BLAKE2b-256 checksum
How to use checksums
736678c2102466f4b086f659e06655df147a7984aa39196020b81d01519b51c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Security for ipi 3.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ipi-3.3.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page