What are the basic steps and methodologies used in creating inter-atomic potential (specially EAM, MEAM potentials) for metals with the help of DFT? Is there any tool available where specific results of DFT can be put to generate inter-atomic potentials like EAM/MEAM for LAMMPS?


2 Answers 2


The following are three important aspects of any force-field fitting workflow,

Training Data: There should be DFT/experimental values that define structure, energetics, elastics or any other properties of the desired system.

Optimizer: This is the heart of any force-field fitting tool/software. The parameters of force-field can be optimized against the training data using any of the available techniques like evolutionary search algorithms, reinforcement learning etc.

Atomistic Simulator: In order to guide the optimizer based on the calculated/heuristic guesses, the same properties which are a part of training data can be computed through a simple atomistic simulation via LAMMPS or any other similar tool. The errors act as a feedback for the optimizer's next step.

For much more details, you could refer to the following work,

Chan, H., Sasikumar, K., Srinivasan, S., Cherukara, M., Narayanan, B. and Sankaranarayanan, S.K., 2019. Machine learning a bond order potential model to study thermal transport in WSe 2 nanostructures. Nanoscale, 11(21), pp.10381-10392.

Also, I am aware of one latest tool called BLAST which is capable of fitting force-fields across different interatomic models,

Chan, H., Narayanan, B., Cherukara, M., Loeffler, T.D., Sternberg, M.G., Avarca, A. and Sankaranarayanan, S.K., 2021. BLAST: bridging length/timescales via atomistic simulation toolkit. MRS Advances, 6(2), pp.21-31.

  • $\begingroup$ +10! Welcome to our new community, and what a great first answer! We appreciate your contributions, and hope to see much more of you in the future!! By the way, how did you come across this site / this question? $\endgroup$ Jun 21, 2021 at 22:05
  • $\begingroup$ That's great! If you're comfortable saying who it is, perhaps I could offer them a +50 bounty! $\endgroup$ Jun 22, 2021 at 3:16
  • $\begingroup$ Sure! @Adupa Vasista $\endgroup$ Jun 22, 2021 at 3:36

Developing a potential requires three steps, and then iteration over these steps, as described:

(i) Training data

Density functional theory (DFT) training data, often in the form of MD NPT simulations, to generate energies, forces and stress tensors (EFS) for different atomic configurations. Procedural generation (I.e. using random numbers) is an alternative approach, as is coarse-graining the DFT parameters and recomputing uncorrelated snapshots with higher accuracy. Other training data might include elastic constants and E-V curves at T = 0 K.

(ii) Optimization of potential

EFS of uncorrelated snapshots, as well as additional data such as elastic constants and E-V curves, can then be used to train an interatomic potential. Depending on the type of potential you will need to use different software. For EAM and RF-MEAM (not 2NN-MEAM) you can use MEAMfit, which fits to VASP, CASTEP and PWscf data to generate LAMMPS-usable potentials ( https://gitlab.com/AndyDuff123/meamfit ). MEAMfit uses BFGS for local minimization and multiple parameter starting points with a genetic algorithm to get closer to the global 'best' potential.

Note that if multiple different types of data are being optimized (e.g. snapshots from NPT runs and calculations on elastically distorted supercells) then one will also have to consider the weight factor between these two types of data. Other considerations include tuning hyper-parameters such as the cutoff radius, which defines the maximum radius at which pair-wise interactions between atoms exist.

(iii) Validation runs using MD

Using the potential use, e.g. LAMMPS, to perform MD runs to: i) check stability of runs (I.e. no 'explosions' as atoms enter territory uncharted in the DFT-MD runs); ii) performance of potential in predicting the DFT EFS.


Perhaps using active-learning (e.g. query by committee, QbC), analyze if there are atomic configurations from step iii) that need to be recomputed using DFT. If so, compute these (I.e. return to step 1), and include them in the training set for step 2. In this way steps 1-3 may need to be repeated multiple times.

Classical vs machine learning potentials

For classical potentials your variational freedom is more limited and you typically will not fit direct to the EFS but instead to particular material properties, or properties of the EFS. For machine-learning (ML) potentials the goal is usually to fit direct to the EFS. Active-learning is a key step in ML potential optimization, while for classical potential the iteration described above is often (but not always - see below) performed in a more manual way.

Methodologies for automating steps 1-3

The automated potential development (APD) workflow developed by myself ( https://gitlab.com/AndyDuff123/automated-potential-development , https://www.sciencedirect.com/science/article/abs/pii/S0010465523002412 ) automates the whole process, including QbC active-learning, and is designed as a black-box solution. However: i) it is only an alpha release so far (though is being actively developed) so there will be many refinements and bug fixes along the way; ii) works so far only for RF-MEAM.

APD interfaces either with VASP or CASTEP, so you will need a license for one of these, and uses MEAMfit and LAMMPS for optimization and classical MD. It currently generates potentials for the following properties: phonon DOS, rdf, relaxed geometry, E-V curves, elastic constants (0 K) and thermal expansion.

  • 3
    $\begingroup$ Is it possible for you to go into more detail, for example by showing an example of your code's usage? At present, this answer is short enough to be a comment: "See the 'top' answer for a full description of basic steps and methodology. However regarding a code to fit EAM and MEAM potentials (specifically RF-MEAM potentials) to DFT data (VASP, CASTEP and PWscf) to generate LAMMPS-usable potentials, you can use my code, MEAMfit: gitlab.com/AndyDuff123/meamfit" [I still have 100+ characters remaining to make the comment even longer]. $\endgroup$ Oct 12 at 1:27
  • $\begingroup$ Hope the update is okay $\endgroup$
    – Andy Duff
    Oct 13 at 7:56
  • $\begingroup$ @NikeDattani updated $\endgroup$
    – uhoh
    Oct 13 at 10:07
  • 1
    $\begingroup$ @AndyDuff How do comment @replies work? (found in FAQ) explains how to be sure the person you're replying to receives a notification that you've replied. $\endgroup$
    – uhoh
    Oct 13 at 10:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .