About combining quip potential with tersoff potential

Dear All

Recently, I want to use quip potential for silicon for some interest. But I find that quip potential is extremely slow. Therefore, I want to combine quip potential with tersoff potential for silicon. First, I divided the whole simulation sample into two groups. The first group is applied with quip potential and the second group is applied with tersoff potential. But I am wondering which potential should I use for the interaction between the first group and the second group, quip or tersoff since both of them can be applied? Hope someone can give me some instruction on this.

Thanks very much!


Neither. To model interactions between two different atom types in a hybrid potential setup, you can only use a pairwise additive potential. Neither quip nor tersoff is that. This has the negative side effect that each subsystem will behave as if it was isolated since it doesn’t know of the presence of the other part. This kind of “mechanical coupling” is not recommended for a homogeneous substance, but rather only for separate objects. For your use case you would need to have something of an “overlap” region where you compute forces for both pair styles and then use a suitable switching function to smoothly switch from one potential to the other.

Please also note that there would be not much of a speed increase from this kind of approach when you are running in parallel as the slowest subdomain determines how fast the calculation is. So on top of having to implement a very different style of hybrid potential modeling, you would also have to use some clever load balancing to do in order to see a substantial speedup.

QUIP is among the slowest machine learning potentials. Since you are already willing to sacrifice some accuracy for performance, why not choose a different style of ML potential, that is (much) faster for some small sacrifice in accuracy?

Thanks very much, Axel.
I am wondering do you have any switching function so that I can utilize? Maybe the simplest switching function is linear function from domain 1 to domain 2.

By the way, do you have any suggestions for different style of ML potential besides QUIP.

Thanks very much and your help really help me a lot.



This is all pointless without a variant of pair style hybrid that applies this and that in turn is very non-trivial. The only trivial application of a switching function between two potentials is splining between ZBL and Morse (or LJ) via pair style table, or to construct an overlay potential to add ZBL to EAM (see tools/tabulate//pair_zbladd_tabulate.py)

Whatever switching function to choose is a matter of what is most applicable to your problem research. There is plenty of published material available since several potentials use switching functions.

I am not an expert on such potentials. You will have to do your own research on that. There is a comparison of some ML potentials shown by Aidan Thompson in his talk at the LAMMPS workshop three years ago (with a citation added for more information) Virtual LAMMPS Workshop and Symposium - August 10-13, 2021

But the development in ML potentials is still very rapid, so you will have to check on others as well. LAMMPS itself has currently 8 ML potential packages and there are several ML potential packages for LAMMPS provided outside of the LAMMPS distribution and some more that are not based on LAMMPS.

Thanks very much, Axel. Your reply give me a lot of information and I need sometime to check the potential and switching function.
Thanks again and really appreciate your help.