[EXTERNAL] Curiosity about "tagint"

There's no guarantee that atom->tag will be type int* in the future. In fact, there's pretty much no guarantee that any of the LAMMPS code will remain unchanged in the future. But as far as I know, there's no plan to change atom->tag to anything other than an int*.

LAMMPS has the ability to turn off tagging, which it does when there are too many atoms to fit into a small int:

create_atoms.cpp: if (atom->natoms > MAXSMALLINT) atom->tag_enable = 0;


To add to Paul’s answer, at some point all references
to atom IDs in the code will be changed to tagint, rather
than int, so that 64-bit atom IDs can be used, e.g. for
molecular systems with more than 2 billion atoms.

As Paul said, for models that don’t need atom IDs
(e.g. non-molecular systems), you can already run
with 2^63 atoms ~ 2 billion squared), which is
why natoms is a bigint.