Bond Atom Missing Error in SWM4-NDP Water Simulation on Graphene Surface

Subject: Bond Atom Missing Error in SWM4-NDP Water Simulation on Graphene Surface

Dear LAMMPS Community,

I am simulating a water nanodrop placed at the center on a graphene surface and want to evaluate the contact angle. I am using the polarizable SWM4-NDP water model (5000 molecules), with the graphene sheets (14.9 nm × 14.9 nm) modeled as fixed and non-polarizable. The simulation box is periodic in the x, y, and z dimensions, with sufficient vacuum space provided in the z-dimension (perpendicular to the graphene surface). The z-dimension box length is 20nm.

However, I am encountering the following error at step 175580: “Bond atoms *** *** missing on proc ** (…/ntopo_bond_partial.cpp:60).” The bond in question is between the Drude core (oxygen) and the Drude particle. After searching the archives, I understand that potential causes for this error could be a large cutoff (1.5 nm), large timestep (1 fs), or bad dynamics.

For reference:

  • The cutoff value and timestep are based on the original SWM4-NDP paper (Lamoureux et al., 2006) and a more recent publication (Misra et al., JPCC 2017).
  • I have also tried a smaller timestep of 0.5 fs but still encounter the error at the different step (after ~0.1 ns).

The error consistently occurs at varying steps depending on the number of processors and the use of GPUs. For instance, I’ve used proc = 8, 16, and 18 with the command ‘-sf gpu -pk gpu 0,’ and the error still occurs at different steps. Up to the point of error the total energy, water temperature are approximately constant with time. I did not encounter the error when the number of water molecules was 2000,4000.

I am currently using the LAMMPS version from August 2, 2023 on ubuntu 2020.04.6. I would appreciate any insights into the possible source of this error or suggestions on how to resolve it. Below is the input I am using

package gpu 0 pair/only on 
units real
boundary p p p

atom_style full
bond_style harmonic
angle_style harmonic
special_bonds lj/coul 0.0 0.0 0.5

pair_style lj/cut/coul/long 15.0 
kspace_style 		pppm 1.0e-4

log		WCA-0.log
read_data data-p.lmp 
#######################################################
pair_coeff    *    *      0     0
pair_coeff    2    2      0.210939     3.183950  # ODw ODw SWM4-NDP	
pair_coeff    2    4      0.107200     3.3215    # CA1 ODw (Misra et.al 2017)
pair_coeff    2    5      0.107200     3.3215    # CA2 ODw (Misra et.al 2017)
###########################################################
group ATOMS type 1 2 3 
group CORES type 2
group DRUDES type 6
group SOL type 1 2 3 6
group GRA type 4 5

variable TK equal 298.0
variable TDK equal 1.0

fix DRUDE all drude N C N N N D

delete_bonds ATOMS multi
comm_modify vel yes

velocity ATOMS create ${TK} 12345

velocity DRUDES  create ${TDK} 12345
variable		posx equal -xcm(SOL,x)
variable		posy equal -xcm(SOL,y)

compute TEMP SOL temp/drude

dump  dmp all dcd 1000 WCA-0.dcd
fix     TEMP SOL langevin/drude ${TK}   100.  1256  ${TDK}  20. 13977 zero yes
fix     RIGID ATOMS rigid/nve/small molecule
fix      NVE DRUDES nve
fix	  hold SOL spring tether 1000 0.0 0.0 NULL 0.0

thermo_style custom step etotal ke pe ebond evdwl ecoul elong press c_TEMP[1] c_TEMP[2] v_posx v_posy
thermo 1000

run    1000000

Best regards,
Binu Varghese
PhD scholar
IIT Madras

Hi Binu,

This sounds like a typical “polarisation catastrophe”: if one Drude shell particle gets too close to another Drude core their energy will diverge.

I can see that you do not have any Thole damping – is that correct for the force field?

Dear Dr. Tee,
Thank you for the reply. I did not use the thole damp as it is employed when you have two types of drude molecules. In my case, I have modeled water as polarizable while carbon atoms are not. As I understand, thole damping is not there in the original paper. This is because Thole damping is specifically used to regulate interactions between induced dipoles from different polarizable species.

Best regards
Binu

The polarization catastrophe happens when any Drude shell comes close enough to any Drude core (except its directly bonded core, and any other cores with excluded pair interactions). Nothing prevents this from happening between two water molecules’ Drude particles.

I note that the original SWM4 / SWM4-NDP papers are almost 20 years old, and their sampling periods were much shorter (pushing into a few ns), understandable given the computational power of their time. I also note that Misra et al. didn’t use Thole damping between water molecules – no idea if they encountered any issues (which often aren’t reported in papers :frowning: )

The only additional suggestion I have is to try removing the velocity create commands, especially for the Drude shell particles – since the shell velocities in the “box frame” will be very different compared to in the bond-center-of-mass frame (which is why specialized thermostats are needed). There’s also a “heavy-shell polarizable” water model, OPC3-pol (https://pubs.acs.org/doi/full/10.1021/acs.jctc.2c00378). Finally, you can analytically calculate linear Thole damping parameters and add them to the SWM4-NDP model (Development of Polarizable Models for Molecular Mechanical Calculations III: Polarizable Water Models Conforming to Thole Polarization Screening Schemes - PMC, eq 18).

All the best!

Dear Dr. Tee,
Thank you for your valuable suggestions and for the reference papers. I will redo my simulations.

Best regards
Binu