Ab-Initio Molecular Dynamics Potential Development
Project description
DFTFIT
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 | |
Package Status | |
License | |
Build Status | |
Documentation | documentation |
Presentations:
Potentials
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
- COMB/COMB3
Measured Properties
- energy
- stress
- forces
- lattice constants (lengths)
- elastic constants (voigt)
- bulk modulus
- shear modulus
Algorithm
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.
Parameters
- 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.
Dependencies
- MD Calculator: LAMMPS
- pagmo2
- pymatgen
- Ab Initio data from either VASP or Quantum Espresso
Installation
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
Documentation
The official documentation is hosted on github pages: https://chrisostrouchov.com/dftfit/
Running
DFTFIT provides a command line interface. Of course the package can be used as a standard python package.
Tutorial and Documentation
Contributing
All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome. These should be submitted at the Github repository.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.