[lammps-users] CMAP cross-term / rRESPA combination

Dear developers,

I’ve got the following error when the CMAP cross term is present in the lammps data file, and the run_style is set to rRESPA.

Setting up r-RESPA run …

Unit style : real

Current step : 0

Time steps : 1:2 2:4

r-RESPA fixes :

[IdeaPad:3798158] *** Process received signal ***

[IdeaPad:3798158] Signal: Segmentation fault (11)

[IdeaPad:3798158] Signal code: Address not mapped (1)

[IdeaPad:3798158] Failing at address: 0x4c0011

[IdeaPad:3798158] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7f30bcabe3c0]

[IdeaPad:3798158] [ 1] /home/Programs/mylammps/src/lmp_mpi(+0xa5814c)[0x55b989c5c14c]

[IdeaPad:3798158] [ 2] /home/Programs/mylammps/src/lmp_mpi(+0x3b9bc5)[0x55b9895bdbc5]

[IdeaPad:3798158] [ 3] /home/Programs/mylammps/src/lmp_mpi(+0x3222b8)[0x55b9895262b8]

[IdeaPad:3798158] [ 4] /home/Programs/mylammps/src/lmp_mpi(+0xa59614)[0x55b989c5d614]

[IdeaPad:3798158] [ 5] /home/Programs/mylammps/src/lmp_mpi(+0x618f9f)[0x55b98981cf9f]

[IdeaPad:3798158] [ 6] /home/Programs/mylammps/src/lmp_mpi(+0x142223)[0x55b989346223]

[IdeaPad:3798158] [ 7] /home/Programs/mylammps/src/lmp_mpi(+0x140144)[0x55b989344144]

[IdeaPad:3798158] [ 8] /home/Programs/mylammps/src/lmp_mpi(+0x140b05)[0x55b989344b05]

[IdeaPad:3798158] [ 9] /home/Programs/mylammps/src/lmp_mpi(+0x10541d)[0x55b98930941d]

[IdeaPad:3798158] [10] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f30bc8dc0b3]

[IdeaPad:3798158] [11] /home/Programs/mylammps/src/lmp_mpi(+0x105c3e)[0x55b989309c3e]

[IdeaPad:3798158] *** End of error message ***

Segmentation fault (core dumped)

I’ve carried out a test using the same simulation setup (keeping the CMAP cross term section in the lammps data) but using the run_style verlet instead, and the simulation runs smoothly. Furthermore, I’ve carried out another test using the run_style respa, although in the absence of the CMAP cross-term section in the lammps data file. The simulation runs smoothly too.

Thank you all in advance!

I am using LAMMPS (3 Mar 2020) compiled on Linux 5.4.0-70-generic using the Makefile.mpi settings. You can find the lammps simulation setup utilized below.

newton off

pair_style lj/charmmfsw/coul/long 10 12

atom_style full

bond_style harmonic

angle_style charmm

dihedral_style charmmfsw

improper_style harmonic

special_bonds charmm

fix cmap all cmap charmmc36.cmap

fix_modify cmap energy yes

read_data ${inputname}.data fix cmap crossterm CMAP

timestep 4.0

run_style respa 2 2 bond 1 angle 1 dihedral 2 pair 2 kspace 2

r-RESPA support in fix cmap was apparently not tested and has been implemented incompletely.
you can work around the crash by adding the following two lines at the end of the FixCMAP::init() function in src/MOLECULE/fix_cmap.cpp

if (utils::strmatch(update->integrate_style,"^respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;

that, however, does not add full r-RESPA support but will call fix cmap always on the outermost r-RESPA level (which should be fine in your case since you have only two levels and have dihedrals on the outer level as well.

full r-RESPA support which includes setting the r-RESPA level with fix_modify respa will be implemented in an upcoming patch release of LAMMPS.