Welcome to i-PI’s documentation!¶
i-PI is a interface for advanced molecular simulations written in Python, designed to be used together with an ab initio evaluation of the interactions between the atoms. The main goal is to decouple the problem of evolving the ionic positions to sample the appropriate thermodynamic ensemble and the problem of computing the inter-atomic forces. i-PI was initially developed for Path Integral Molecular Dynamics (PIMD) simulations, and contains probably the most comprehensive array of PIMD techniques. Since v2.0, however, it also contains several general-purpose methods for molecular simulations, ranging from phonon calculators to replica exchange molecular dynamics.
The implementation is based on a client-server paradigm, where i-PI acts as the server and deals with the propagation of the nuclear dynamics, whereas the calculation of the potential energy, forces and the potential energy part of the pressure virial is delegated to one or more instances of an external code, acting as clients. Since the main focus is on performing ab initio PIMD – where the cost of the force evaluation is overwhelming relative to the ionic dynamics – clarity has been privileged over speed. Still, the implementation of i-PI is efficient enough that, by tuning the socket parameters and avoiding excessive I/O it can be used to run empirical forcefields with tens of thousands of atoms with only a small overhead.
This documentation is structured as follows:
- Introduction
- Core features
- Bosonic and Fermionic Path Integral Molecular Dynamics
- Cavity Molecular Dynamics for Polaritonics
- Committee models
- Replica Exchange MD
- Thermodynamic integrations
- Finite-differences Suzuki-Chin PIMD
- Reweighting-based high-order PIMD
- Perturbed Path Integrals
- Open Path Integrals
- Geometry Optimization
- Finite-differences Vibrational Analysis
- Multiple Time Step integrators
- Ring-polymer instantons
- Thermostatted RPMD
- Fast-Forward Langevin Thermostat
- Ring-Polymer Contraction
- Direct Estimators for Isotope Fractionation
- Free-energy Perturbation Estimators for Isotope Fractionation
- Quantum Alchemical Transformation
- Langevin Sampling for Noisy or Dissipative Forces
- Path Integral GLEs
- Generalized Langevin Equation Thermostats
- Path-Integral Langevin Equation Thermostats
- Path Integrals at Constant Pressure
- Path Integral Molecular Dynamics
- Getting started
- Internal units and conventions
- Input files
- Input file tags
- al6xxx_kmc
- alchemy
- atoms
- atomswap
- barostat
- beads
- bias
- bosons
- cell
- checkpoint
- constrained_dynamics
- constraint
- csolver
- dmd
- dynamics
- ensemble
- ffcavphsocket
- ffcommittee
- ffdebye
- ffdmd
- fflj
- ffplumed
- ffsgdml
- ffsocket
- ffyaff
- file
- force
- forcefield
- forces
- frequencies
- gle
- h0
- init_cell
- initialize
- instanton
- labels
- masses
- metad
- momenta
- motion
- neb_optimizer
- normal_modes
- normalmodes
- optimizer
- output
- p_ramp
- planetary
- positions
- prng
- properties
- remd
- scp
- simulation
- smotion
- string_optimizer
- system
- system_template
- t_ramp
- thermostat
- trajectory
- velocities
- vibrations
- Output files
- Output file tags
- Distributed execution
- A simple tutorial
- Frequently asked questions
- Troubleshooting
- Contributing
- Bibliography