Delete_bonds and special_bond

Dear LAMMPS Developers,

I am currently working on a 2D perovskite simulation that includes inorganic layers made up of Pb-I and organic molecules of Methylammonium, along with spacer molecules of Butylammonium. Although it’s not necessary, I have defined the topological details such as bonds, angles, and dihedrals for Pb and I. However, I don’t want to include the related forces and energies in the simulation and instead, I want to limit the Pb-I interactions to a Buckingham potential only.

Since I am using the special_bond option for the organic molecules, I’m not sure how to prevent LAMMPS from adjusting the weights for Pb-I interactions while also turning off the bonds, angles, and dihedrals for Pb-I. I’ve explored the delete_bond command, but I’m still uncertain if it would be helpful for my concern.

I’ve attached relevant parts of my script below for your reference.

Thank you in advance for your time and assistance.

Best regards,

Reza.

3712 atoms
3264 bonds
6624 angles
6144 dihedrals
16 atom types
13 bond types
22 angle types
14 dihedral types

units real
dimension 3
newton off
boundary p p p
atom_style full

special_bonds amber
pair_style hybrid buck/coul/long 10.0 10.0 lj/cut/coul/long 10.0 10.0
pair_modify shift yes
bond_style harmonic
angle_style harmonic
dihedral_style fourier
kspace_style pppm 1.0e-7
delete_bonds ???

pair_coeff 16 16 buck/coul/long 70359906.62970 0.131258 0.00 #Pb.Pb
pair_coeff 16 13 buck/coul/long 103496.13301 0.321737 0.00 #Pb.I
pair_coeff 13 13 buck/coul/long 22793.33858 0.482217 696.94954 #I.I

bond_coeff 13 0 0 #I-Pb

angle_coeff 21 0 0 0 #I-Pb-I
angle_coeff 22 0 0 0 #Pb-I-Pb

dihedral_coeff 14 1 0 0 0 #Pb-I-Pb-I

I would really appreciate it if someone could take a quick look at my post.

Heyy,

I dont see why you would not be able to use delete_bonds. What made you uncertain? You could define a group containing the atom types corresponding to both Pb and I and then use something like:

delete_bonds Pb-I-group-ID multi

In the manual it says “(…) The default is also to not alter the list of 1–2, 1–3, or 1–4 neighbors computed by the special_bonds command and used to weight pairwise force and energy calculations. This means that pairwise computations will proceed as if the bond (or angle, etc.) were still turned on.”

In this way you would get rid of the bonded forces and still have the special_bonds weights working on Pb-I (so the intra-Pb-I pairwise interactions would still follow the weights) and also in the rest of the system. This is what you want, right? If you want to also make Pb and I interact as if the connectivity never existed, it seems that the options remove + special are a good way to go.

Thank you for your response! The issue you mentioned in the last two sentences is precisely what worries me. Although I prefer to retain the connectivity information for post-processing and visualization purposes, I do not want to disrupt the pairwise Pb-I interaction at all because of nonphysical readjustment of the weights introduced by using special_bond command, as though there is no bonding between them. If I use the “remove” option, I think I will certainly lose the connectivity information in my dump files, am I correct?

I never tried using the remove option myself, but I believe it would indeed remove the Pb-I connectivity from the dump file (although I never saved a dump file with connectivity, so I dont know if the option exists).

If you want the intra-(Pb-I) pairwise interactions to function following the special_bonds command as if the connectivity still existed, you can simply use the “delete_bonds Pb-I-group-ID multi”, without the “remove” keyword. This should simply delete the bonded forces.

No. There is no connectivity information in dump files. It is only available in data files.

1 Like

Thanks Cecilia!

1 Like

Axel, thank you! What I was referring to was the following command:

dump Bond all local {coords_freq} {run}.bond index c_Property[] c_Bond[]

The command will do what its documentation says it does.

In these situations what I often do is to run the simulation using a data file without bonds, and then when it comes time to postprocess the trajectory (analysing or visualising) I use a data file with bonds to get (for example) VMD to “see” the bonds I want it to see.

1 Like