Issues with pair_style hybrid for many-body potentials


I would like to use Reax and Tersoff in different regions in silica model (please see the attached Figure) to make the simulation faster (with Tersoff) having better damage modes in the critical regions (with Reax). In LAMMPS documentation and email archive, there are some examples on pair_style hybrid with many body potentials for Silicon-CNT and Graphene-Water systems where two parts of the system are made of completely different types of atoms (i.e., Si in Silicon and C in CNT in the silicon-CNT system).

I am wondering how I could implement Reax and Tersoff in silica model using pair_style hybrid or hybrid/overlay where both potentials need to describe interactions associated with Si and O atoms. I could rename the Si and O atoms as A and B in Tersoff potential file (if LAMMPS allows this change) but then the question is how I would model interactions across the interface between two regions where Si, O, A, B will interact.

I would appreciate your suggestions.

Thank you.


Silica Model.pptx (31 KB)

Hi Sanjib,

To do so you have to look into the hybrid method developed by Markus Buehler et al: The problem with your system depicted by the cartoon image is the transitioning from one potential to the other – neither pair_style hybrid or hybrid/overlay can handle this scenario. Other examples typically use a LJ potential to couple the two regions, but this approach is not appropriate for your system.

Aidan and I have implemented a pair_style hybrid/spatial that provides a smooth transitioning from one potential to another – but I am not sure if it is available yet. So the short answer is: do what Markus Buehler did or wait for the release of pair_style hybrid/spatial.

Dear Ray,

I know about the Markus’ work. I am interest to use LAMMPS. It is not possible to implement Markus’s approach in LAMMPS.

Nice to hear about pair_style hybrid/spatial. I don’t see this one in LAMMPS. How long will it take to be available in LAMMPS?

Thank you.


Dear Ray,

I know about the Markus’ work. I am interest to use LAMMPS. It is not
possible to implement Markus’s approach in LAMMPS.

you should probably be more careful in your wording here. "implement"
is usually associated with "add to the functionality via C++
programming" and thus i think it is quite possible to _implement_ this
method into LAMMPS. however, it has not yet been implemented, so you
cannot _use_ it with a current version of LAMMPS.

a possibly simpler approach would be to implement this via an ONIOM
style formulation, e.g. via a variant of the QM/MM library and package
in LAMMPS. essentially you set up a multi-partition run with 3
different partitions:
1) the section you want to treat with ReaxFF as a separate calculation
with fixed or shrinkwrap boundary conditions where you want to couple
it to Tersoff.
2) the same section, but this time with Tersoff
3) the whole system with Tersoff

now the total forces are those of system 3) minus those of 2) plus those of 1)

the only tricky part here is, like with QM/MM setups, that you don't
have electrostatic embedding of system 1), which will lead to
different partial charges at the boundaries.
you can either a) ignore it to do a strictly mechanical coupling and
have a larger error at the ReaxFF/Tersoff boundary, or b) do an
embedding region, where you extend the ReaxFF system 1) to follow the
positions of the corresponding Tersoff system 3) and discard the
forces or c) make the small subsystems periodic, or d) tweak the QEQ
part of ReaxFF, that the parts at the two boundaries are initialized
from charges of a periodic calculations, but not allowed to
equilibrate during the coupled run.


Thanks, Axel. It is a very nice analysis of the ONIOM approach.

Best regards,