Using "fix adapt" for Stillinger Weber potential (openKIM)

Hi Lammps users,

I have a sort of specific question: Does anyone have experience with using the “fix adapt” command for a openKIM Stillinger Weber potential? (DRIVER: )

I want to create a heterostructure of two materials, where the sigma in one of the materials changes with time. Normally, I would use the “fix adapt” command to change the pair parameter, but the fix adapt command does not work on the built-in SW potential in lammps.
However, it does work with KIM models, if the parameter is a “free parameter”, and KIM have a model for Stilinger Weber.

I have look through the information on and they don’t seem to use the term “free parameter” and the example shown in the manual ( ) does not seem to exist any longer.

So my question is: how do I know if I can use the fix adapt for a KIM model? And does anyone have experience with using fix adapt for a SW potential?

Anders V

The fix adapt doc page lists all the pair styles that
have been setup to work with fix adapt. If one
is not listed there, it currently cannot. But it may be
a simple addition to the pair style (and fix adapt)
to enable it. For KIM pair styles, there would
have to be small additions to pair_kim.cpp. More
importantly the KIM library would have to support
in its API the ability to work with dynamic params.
You should talk to Ryan Elliott, one of the KIM
PIs, about that (CCd).



At one point, during the kim-api-v1 era, pair_kim had minimal support for fix adapt. However, this was lost during the recent upgrade to kim-api-v2.

In principle, it should be do-able to create support for this within the current kim-api-v2 framework, but it would require some careful design of the interface and implementation within the pair_kim code.

This is not currently a high priority for us, but we would be happy to interact with the any developer(s) who would like to look into the design and implementation.



no sure, if playing around with individual parameters for pairs of atom types is such a good idea to do with a manybody potential. how are these changes reflected on the 3-body terms? at any rate, since LAMMPS stores manybody parameters in special data structures, that are not compatible with fix adapt, there is little hope to hook those up directly by adding access to them to the ::extract() method.
but wouldn’t it be cleaner (and much simpler) to do what is done for coulomb where an additional 2-d array “scale” between types of atoms is set up and then all contributions to these two pairs of types are multiplied with the corresponding scale factor (which would range from 1.0 to 0.0 or 0.0 to 1.0).

just my $0.00,