Skip to main content

Ab-Initio Molecular Dynamics Potential Development

Project description


DFTFIT is a python code that used Ab Initio data from DFT calculations such as VASP, Quantum Espresso, and Siesta to develop molecular dynamic potentials. Our package differs from other similar codes in that we leverage LAMMPS as a calculator enabling a wide variety of potentials. The potentials include custom python functions and a wide variety or three-body interactions including the Tersoff, Stillinger-Weber, Gao-Weber, Vashishta, and COMB Potentials. All of which can be combined to have for example a Buckingham + Coulomb + ZBL potential. We also have an extensive set of multi-objective and single-objective optimizersthat can evaluate a potential for many properties including energy, forces, stress, lattice constants, elastic constants, bulk modulus, and shear modulus.

In general three things are required from the user.

  • Ab-Initio Training Data includes VASP, Siesta, and Quantum Espresso Calculations. Additionally the user may supply measured properties such as lattice constants, elastic constants, bulk modulus, and shear modulus.
  • configuration: specifies optimization algorithm and number of steps, sqlite database to store results, and MD calculator to use.
  • Potential among a rich set of two and three body potentials. Including a custom python function.
Latest Release latest release
Package Status status
License license
Build Status travis ci pipeline status
Documentation documentation



Any combination of the following potentials is a valid potential in DFTFIT.

Two-Body Potentials

  • custom python function
  • ZBL
  • Buckingham
  • Beck
  • coulombic interaction
  • Lennard Jones

Three-Body Potentials

  • Tersoff
  • Stillinger Weber
  • Gao Weber
  • Vashishta

Measured Properties

  • energy
  • stress
  • forces
  • lattice constants (lengths)
  • elastic constants (voigt)
  • bulk modulus
  • shear modulus


We use generalized least squares method for finding the optimal parameters for a proposed potential. DFTFIT integrates with existing MD software as a potential calculator. Currently only LAMMPS is supported. This means the user has the freedom to use any of the potentials available in LAMMPS.

Our algorithm follows a highly cited publication that proposes a method for determining a new potential for Silicon using the force matching of DFT calcultions.

Optimization Equation


  • n_c: number of system configurations
  • N number of atoms in each configuration
  • α, β: tensor with 3D dimensions [x, y, z]
  • cl: classical results from molecular dynamics potential
  • ai: ab initio results from dft simulation
  • w_f, w_s, w_e: weights to assign respectively for force, stress, energy
  • F, S, E: force, stress, and energy respectively.



For pypi installation. Note that installation of lammps-cython may fail and is required. You will need to install LAMMPS as documented here. You may have to do pip install numpy cython.

pip install dftfit

For conda installation

conda install -c costrouc -c matsci -c conda-forge dftfit

For docker installation

docker pull costrouc/dftfit


The official documentation is hosted on github pages:


DFTFIT provides a command line interface. Of course the package can be used as a standard python package.

Tutorial and Documentation


All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome. These should be submitted at the Github repository.



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

dftfit-0.5.1.tar.gz (46.1 kB view hashes)

Uploaded source

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