[lammps-users] best way to go about using a hybrid potential

Hi All,

I am working on a problem where I will need to take the Tersoff Potential (and possibly another similar potential that isn’t implemented in LAMMPS - the Erhart-Albe potential) and make the small-separation behavior ‘stiffer’ by using the Ziegler-Biersack-Littmark (ZBL) potential.

The way this has been done before is by smoothly connecting the two potentials using a Fermi function-like function (using the Tersoff potential as an example):

U_combined (r_ij) = (1 - F_f) U_ZBL(r_ij) + F_f U_Tersoff(r_ij)

where F_f is the fermi like function.

I have looked at the documentation for the hybrid and hybrid/overlay pair styles - but these don’t really seem to fit the bill (assuming I implemented the ZBL potential and the E-A potential). However, rather than implementing the whole thing, perhaps setting up a table type may be easier - but it appears this is only intended for ‘real’ 2-body potentials (i.e. not a bond order potential like Tersoff).

Any thoughts on how would be best to proceed? Seems like the best option is to implement the hybrid potential directly.



David E. Farrell

Graduate Student

Mechanical Engineering

Northwestern University

email: d-farrell2@…435…

Yes, pair_style table will only work for 2-body potentials. Since
the ZBL looks from your formula like it is not a superposition
of existing potentials, I'd say it's best just to write a new pair_style zbl.
You could use pieces of existing potentials. Or if it is
similar in structure to Tersoff - i.e. a 2-body term and a 3-body
term, you could just derive a new class from Tersoff and overwrite
the 2-body and 3-body routines with your new ones.