How to switch off (or modify) the LJ interaction between the first few nearest neighbors on a bead-spring chain?

Recent MD simulations on polymer crystallization get polymer chains folded by enhancing the local flexibility of chains by modifying the LJ interaction parameters for the first few neighbors across the backbone (e.g. by reducing sigma - PRL 118, 217802, 2017- they use LAMMPS).
Although it seems somewhat physically questionable to do this, I am curious to know how to do that in LAMMPS. Thank you so much for your help.
Best regards,

Hi Sabin,
You can give a weight to Lennard-Jones parameters between atoms that are part of the same backbone using the pair_modify command:

pair_modify special lj 0.0 0.0 0.0 # no LJ interactions between first neighbors

pair_modify special lj 1.0 1.0 1.0 # full LJ interactions between first neighbors

You can give weight in between 0 and 1, and choose to give different weight to first neighbor, second neighbor, etc. Is it what you had in mind?

Actually it is quite reasonable. When you parameterize bonded interactions, it is much easier to do so (for example from vibrational analysis) if you don’t have to take the Lennard-Jones term into consideration, but use the derived force constant directly and then exclude the Lennard-Jones term for the bonded pair to avoid double counting the force contribution.

Mind you, the special_bonds command only affects the epsilon parameter, not sigma. For changing that you probably have to modify the source code. But the only place to get an authoritative answer on this is to ask the authors of said paper.

Hi Simon,
Thank you for your suggestion! Yes, I was looking for something like this.
When I try the following commands
pair_modify pair lj/cut special lj 0.5 0.5 0.5 or pair_modify special lj 0.5 0.5 0.5
it says ‘Ilegal pair_modify command’.
I could not figure out why from the documentation.
Do you have any idea why could it be?
Thank you again.

Hi Axel,
Thank you so much for explaining things, it helps a lot.

Hi Sabin,

My first guess would be that you have some “pair_coeff” statements in your input script that are incompatible with these commands.
Please check in the docs if that is the case.


Hi all, I am still struggling to figure it out and would really appreciate your help. The relevant lines in my script are:
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0 2.5
pair_modify special lj 0.5 0.5 0.5

The error msg I get is ‘Illegal pair_modify command’.

Thank you so much. I have attached my input script as well if that helps.

Best regards,
Sabin (1.6 KB)

The error message is correct. Please see the documentation of the pair_modify command.