mir-group / pair_allegro

LAMMPS pair style for Allegro deep learning interatomic potentials with parallelization support
https://www.nature.com/articles/s41467-023-36329-y
MIT License
34 stars 8 forks source link

Mix Allegro and LJ type pair styles #24

Closed tgmaxson closed 1 year ago

tgmaxson commented 1 year ago

I expect to be able to mix Allegro and other pair styles as follows in LAMMPS.

# DEFINE ALLEGRO MODEL
pair_style hybrid/overlay allegro lj/cut 2.5
pair_coeff * * MLFF.pth Pt Pd
pair_coeff 1 2 1 1.1 2.8

When I do this I get the following error

ERROR: Pair coeff for hybrid has invalid style (src/KOKKOS/pair_hybrid_overlay_kokkos.cpp:63)

I am guessing this is caused by Allegro not being supported in pair_hybrid with Kokkos? Is this something easy to resolve?

shuhaom commented 1 year ago

Hi, you may change the script to

pair_coeff allegro * * MLFF.pth Pt Pd pair_coeff lj/cut 1 2 1 1.1 2.8

tgmaxson commented 1 year ago

You are correct, you have to specify the pair_style as well, that was my mistake.

Correct code block looks like this for future reference. The atom range has to come first.

pair_style hybrid/overlay allegro lj/cut 2.5
pair_coeff * * allegro MLFF.pth O H
pair_coeff 1 2 lj/cut 1 1.1 2.8
Linux-cpp-lisp commented 1 year ago

Glad this worked, thanks @shuhaom for responding.

Also for future reference there is support inside nequip for adding pair potential terms:

tgmaxson commented 1 year ago

Will this provide the terms to include in LAMMPS or are they included in the model file? An example of how to actually train/run with LAMMPS using this would be very helpful. I am using the stress branch of pair_allegro currently.

Linux-cpp-lisp commented 1 year ago

This will include them in the Allegro .pth file and you will not need to use hybrid/overlay. You will, of course, need to provide in the original Allegro YAML the LJ parameters. (For ZBL no parameters are required; if you are just looking to have a core repulsion term you can try that first; we used it successfully, for example, in https://arxiv.org/abs/2304.10061.)

minimal_pair.yaml linked above is an example of using ZBL and the required model_builders.