Lammp create map with atom_modify

Hello,

I would like to use neb command with a reaxff in LAMMPS.

units real
atom_style charge
atom_modify map array
dimension 3
boundary p p f
timestep        0.25 

read_restart  neb_initial.restart.800033

... (pair_style/neighbor/fix/)...

fix neb_cal molecules neb 1 parallel ideal
neb 0 0.1 1000 1000 100 final neb_final.data default

I was adding the “atom_modify map array” to create a map, but I still got the error message saying “cannot use neb unless atom map exist”.

I am wondering if anyone have any idea for this?

Cheers,

Catherine

I do.

Here is the problem. This restart was created without an atom map and thus any settings done before will be overridden without a chance of changing it afterwards. This was noticed only rather recently since this is usually only triggered by some significant changes in the system and most people run a minimization with consistent settings before a NEB run or - for better portability - use data files instead of restart files.

The correction is in this commit: make atom_modify map settings in restart file overridable · lammps/lammps@43d1d8c · GitHub
and this commit make atom_modify map settings in restart file overridable · lammps/lammps@4ab82d7 · GitHub
for the stable version.

You have thus two options: upgrade LAMMPS to one of the latest released versions (2 Aug 2023 update 2 or 21 Nov 2023) or use a data file instead of a restart file.

Hello Axel,

Thank you for your clarification, that really makes sense.

I have pre-defined groups for the initial configuration which is hard to redo them through data file, so still need to stick using a restart file.

While I am using a modified lammps code which also limit to upgrade to newer version at the moment. I was trying to override the read_restart command on my src file according to your link. When I compiled it, I got an error message saying that,

../read_restart.cpp: In member function ‘void LAMMPS_NS::ReadRestart::header(int)’:
../read_restart.cpp:920:35: error: ‘MAP_NONE’ is not a member of ‘LAMMPS_NS::Atom’
       if (atom->map_user == Atom::MAP_NONE) atom->map_style = itmp;
                                   ^~~~~~~~

Just would like to check, the Atom::MAP_NONE did not add in older version (before 2023)?

Many thanks,

Catherine

This change goes back to 2020 https://github.com/lammps/lammps/commit/9d0c3bc665a428e0405c5fc1957b8a58fd28eb78

You can probably substitute the enumerators with the corresponding numbers, but there has been significant refactoring of restart handling, that this may not work or not be enough.

We provide some information about which changes to make. For recent/commonly required changes, that is. Please check out 4.10. Notes for updating code written for older LAMMPS versions — LAMMPS documentation
That could help to port the modifications to the current code.

I should probably add a paragraph about the Atom class enumerators…

1 Like

Thank you very much, Axel!

You can save and restore groups with the “group2ndx” and “ndx2group” commands from the COLVARS package: group2ndx command — LAMMPS documentation

Hello Alex,

I was also looking for alternatives to extract groups and then use data file instead. I tried the one you suggested and they works, as well as the neb calculation then!

Many thanks,

Catherine