[lammps-users] Multiple Pair Potentials

I am looking to set my system up as follows, and am wanting to confirm that LAMMPS can do this.

I have 2 parts to my system - a surface layer and a fluid layer, and wish to have the following interactions:

  1. A pairwise potential between the surface atoms only described by equation 1 - below
  2. A LJ 12-6 pairwise potential between all atoms excluding surface-surface interactions (but including surface-fluid interactions)
  3. Coulombic interaction between ALL atoms in system.

Eqn: 1

A,B,C,f are numerical values, dependent on atom type.

Can anyone confirm that I can do this in LAMMPS and also give me some hints on how incorporate the above potential (1) into LAMMPS, as I’m not sure on how to add a new pairwise potential. If anyone has modified any on the exist pairwise code for a similar type of interaction it would be useful to see how they did it.

Michael Doig.

Hello, Michael:

I don’t think you need to invent a new potential here, if you’re willing to make your script/input files a little more complicated.

Basically, you’re looking at a hybrid/overlay system. You can use the lj/cut/coul/long to handle types (2) and (3), and turn off the LJ parameters (by setting them to zero) for the pair styles that don’t interact via LJ. Note that this will include the Coulombic portion of Eq 1 for you.

Then, you can use the Buckingham potential (buck) to get the remaining parts of Eq 1. The f(B_i + B_j) * exp(A_i + A_j) / (B_i + B_j) would become the prefactor for the exp(-r) term, and the coefficient would just be 1. You would have to precalculate it for every i and j type that interacts, though.

I don’t think you want to use a buck/coul/long here, though, because it’s already being captured by the LJ style.



Thanks for the reply. I think I understand how to go about setting that up for my most of my system, but this will include an additional LJ interaction in my surface.
For surface-surface interactions I only require a r^-6 contribution, but if I am using the lj/cut/coul/long style, I can turn off surface-surface interactions completely by setting epsilon,sigma values, but in doing so I lose the r^-6 term required in potential 1 - there is no way of just turning off the r^-12 term , when dealing with surface-surface interactions. Is there any way around this?

Michael Doig


The r^-6 term is also available in the Buckingham potential (buck/coul/cut) as well. So you can pick and choose where to include the r^-6 terms are needed. (Or you could always rewrite the LJ code to read in A and C directly instead of epsilon and sigma.



I think I should have said “buck,” not buck/coul/cut. You end up double-counting the short-range interactions if you use lj/cut/cou/long with buck/coul/cut or buck/coul/long.

Sorry if this causes any confusion.


You can also use pair table with pair hybrid to tabulate any portion you
can’t match with an existing LAMMPS pair style.