Form of Screening Function using MEAM in LAMMPS


I have a question about the form of the screening function implemented in LAMMPS using pair_style MEAM.
In the documentation, the form of the screening function is given as,
Sikj(x) = 1 x >=1
Sikj(x) = [1-(1-x)^(4)]^(2) 0<x<1
Sikj(x) = 0 x<=0

where x = (Cikj - Cmin,ikj)/(Cmax,ikj - Cmin,ikj)

However, I’ve noticed in some other publications, they use a screening function of the following form
(developed in Baskes, M.I. et al. “Atomistic calculations of composite interfaces” Modelling Simul. Sci. Eng. 2 (1994))

Sikj(x) = 1 C >=Cmax
Sikj(x) = exp(-[(Cmax-C)/(C-Cmin)]^(2)) Cmin<C<Cmax
Sikj(x) = 0 C <= Cmin

I was wondering if this alternative form has been implemented in LAMMPS?
If not, should I expect a larger difference in results if I just choose to use the form already implemented in LAMMPS?
Or would it be easier to to add this new form?

Joseph R. Vella
PhD Candidate
Department of Chemical & Biological Engineering
Princeton University

Greg Wagner (CCd) might be able to answer this.


Hi Joseph,

Do you know of other references besides that early Baskes reference that you cite for the exponential form? I do see that in that paper, but every other reference I have uses the form that’s implemented in LAMMPS.

I can’t really say how big a difference this makes; I plotted the two functions together and was surprised that they’re not as similar as I expected. Mike Baskes might be able to tell you why that change was made and whether there are large ramifications. I don’t really have a feel for this.

I would hesitate to add this as an option in the code, for at least 3 reasons. First is that I think it really would take quite a bit of time, especially to make sure the derivatives are right; I wouldn’t want to release this before doing extensive testing. Second is that the form of that exponential formulation looks tricky numerically with C-Cmin in the denominator; I think the function itself is smooth, but it would take some care to evaluate properly. The third reason is philosophical: there are a lot of little variations on the MEAM potential out there like this, and there’s just no way to support all of them in the code.

If you do want to attempt to make a change locally, you’ll want to focus on some of the calls to fcut() and dfcut() in the meam code. Be careful, because that same function also gets used for the cutoff function at the cutoff radius.


Greg Wagner
Sandia National Laboratories, Livermore, CA
Tel: (925) 294-2180 Fax: (925) 294-3410
Email: gjwagne@…3…