plumed / plumed2

Development version of plumed 2
https://www.plumed.org
GNU Lesser General Public License v3.0
364 stars 289 forks source link

Possible bugs in SPECIES keyword of Multicolvars functions #971

Open davidfir3 opened 1 year ago

davidfir3 commented 1 year ago

I want to calculate the coordination number of molecules within a specific range along the z-axis. Initially, ZDISTANCES is used to calculate the COM of molecules (mol81,...) with respect to a virtual atom (dummy) positioned at (0,0,0). Subsequently, the MFLITER_BETWEEN action is employed to filter out the molecules of interest. Finally, the COORDINATIONNUMBER action uses the label of MFLITER_BETWEEN as input for the SPECIES keyword. Below is part of the input file:

dummy: FIXEDATOM AT=0,0,0
mol81: COM ATOMS=5786-5807
......
d: ZDISTANCES GROUPA=dummy GROUPB=mol81,mol82,mol83,...... NOPBC
d1: MFILTER_BETWEEN DATA=d LOWER=1.900000 UPPER=2.600000 SMEAR=0.1
c: COORDINATIONNUMBER SPECIES=d1 R_0=0.700000 NN=15 MORE_THAN={RATIONAL R_0=4.000000 NN=15}

restraint: METAD ...
    ARG=c.morethan
    SIGMA=0.5 HEIGHT=5 PACE=100 BIASFACTOR=20 TEMP=298
    GRID_MIN=0 GRID_MAX=20 GRID_WFILE=GRIDS GRID_WSTRIDE=1000000
...
lwall: LOWER_WALLS ...
    ARG=c.morethan AT=0.5 KAPPA=400
...
uwall: UPPER_WALLS ...
    ARG=c.morethan AT=10 KAPPA=25
...
DUMPMULTICOLVAR DATA=c STRIDE=1000 FILE=cn.xyz
PRINT ARG=c.morethan STRIDE=1000 FILE=cv.log

And I ran metadynamic with LAMMPS. However, the simulation was always crashed at random moments with random errors. Something like below:

lmp:392497 terminated with signal 11 at PC=7fbc7653cb9e SP=7fff08a502b0.  Backtrace:
/usr/local/lib/libplumedKernel.so(_ZNK4PLMD8GridBase10getIndicesERKSt6vectorIdSaIdEERS1_IjSaIjEE+0x7e)[0x7fbc7653cb9e]
/usr/local/lib/libplumedKernel.so(_ZNK4PLMD8GridBase22getValueAndDerivativesERKSt6vectorIdSaIdEERS3_+0x1cd)[0x7fbc765428bd]
/usr/local/lib/libplumedKernel.so(_ZN4PLMD4bias5MetaD21getBiasAndDerivativesERKSt6vectorIdSaIdEERS4_+0x31e)[0x7fbc7615cd9e]
/usr/local/lib/libplumedKernel.so(_ZN4PLMD4bias5MetaD9calculateEv+0x37a)[0x7fbc7616228a]
/usr/local/lib/libplumedKernel.so(_ZN4PLMD10PlumedMain13justCalculateEv+0x96e)[0x7fbc762968de]
/usr/local/lib/libplumedKernel.so(_ZN4PLMD10PlumedMain11performCalcEv+0x15)[0x7fbc762975a5]
/usr/local/lib/libplumedKernel.so(_ZN4PLMD10PlumedMain3cmdERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11TypesafePtrE+0x1fd8)[0x7fbc7629b088]
/usr/local/lib/libplumedKernel.so(+0x49f750)[0x7fbc7629f750]
lmp(+0x36198c)[0x55d5c865498c]
lmp(+0x1db2d8)[0x55d5c84ce2d8]
lmp(+0x2ebdc7)[0x55d5c85dedc7]
lmp(+0x2880d4)[0x55d5c857b0d4]
lmp(+0x188a3c)[0x55d5c847ba3c]
lmp(+0x1891ce)[0x55d5c847c1ce]
lmp(+0x174c0c)[0x55d5c8467c0c]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x7fbc76829d90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x7fbc76829e40]
lmp(+0x17b4b5)[0x55d5c846e4b5]
Cuda driver error 4 in call at file '/home/ksf/lammps/lib/gpu/geryon/nvd_device.h' in line 429.
Abort(-1) on node 2 (rank 2 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, -1) - process 2

But no error found in PLUMED's log file. I have tried multiple versions of PLUMED (2.6-2.8) and LAMMPS, which did not fix the problem. So I am wondering the compatibility of using the SPECIES keyword in the COORDINATIONNUMBER action with MFILTER_BETWEEN filtered ZDISTANCES as input. Can anyone tell what is the problem?