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.



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.

Files for dftfit, version 0.5.1
Filename, size File type Python version Upload date Hashes
Filename, size dftfit-0.5.1.tar.gz (46.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page