Special Bonds _ Multiple 1-4 Scaling Coefficients

To all LAMMPS users,

I have a system where I need to set the 1-2, 1-3 and 1-4 interactions as such: special_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.5.

I also have to include in the system n-alkane molecules that follow the TRAPPE FF where the 1-4 scaling corrections need to be set to zero (not 0.5).

How can I have 1-4 scaling set to 0.5 for my “framework” while setting the 1-4 scaling to 0.0 for my n-alkane molecules?

If I only have 1 n-alkane molecule in my system, I can obviously just turn off the LJ parameters for the n-alkane atom types. This “work around” obviously fails if I want more n-alkane molecules.

I thought there might be a way to accomplish this using the dihedral keyword in special_bonds, but it is not clear to me from the documentation how this might work…

Thank you for your help.

Regards,

Ross

To all LAMMPS users,

I have a system where I need to set the 1-2, 1-3 and 1-4 interactions as
such: special_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.5.

I also have to include in the system n-alkane molecules that follow the
TRAPPE FF where the 1-4 scaling corrections need to be set to zero (not
0.5).

it is generally considered not a good idea to mix and match different
force fields. the exclusion settings are often done to establish a
specific strategy for how to balance different interactions, so there
may be artifacts due to such incompatible choices since the
cross-terms between the different force fields are off.

How can I have 1-4 scaling set to 0.5 for my "framework" while setting the
1-4 scaling to 0.0 for my n-alkane molecules?

you cannot. you have to implement something coming close with a complex hack.

If I only have 1 n-alkane molecule in my system, I can obviously just turn
off the LJ parameters for the n-alkane atom types. This "work around"
obviously fails if I want more n-alkane molecules.

I thought there might be a way to accomplish this using the dihedral keyword
in special_bonds, but it is not clear to me from the documentation how this
might work...

it cannot. the only workaround that i can imagine is something along
the following:

- set special_bonds lj/coul to 0.0 0.0 0.5
- set dihedral_style to hybrid
- write a dihedral_style undo which uses pair->single() to compute the
non-bonded interaction of the 1-4 pair and subtracts forces and energy
(potentially with a scale factor option to allow more than just
subtracting 1-4)
- define *one* additional "undo" style dihedral for each bonded 1-4
pair that should have 0.0 0.0 0.0 exclusion.

axel.