Hello,

I am trying to understand what values are being input into e_coul and e_long. I understand that e_coul is the standard real space which can be found in pair_col_long.cpp, for example. What I am particularly confused about, and maybe my understanding of what lammps is doing is wrong, is how 1-2 1-3 1-3 interactions are handled, and in what variable these energies are included. In the OPLS forcefield, we scale 1-2 and 1-3 interactions by 0.0, and 1-4 interaction by 0.5. I believe the k_space.cpp code calculates interactions between all atoms, not excluding bonded pairs. In this reference,

Essmann, U., Perera, L., Berkowitz, M. L., Darden, T., Lee, H., & Pedersen, L. G. (1995). A smooth particle mesh Ewald method. The Journal of Chemical Physics, 103(19), 8577. doi:10.1063/1.470117

The author describes a sum over “masks pairs” where these 1-2, 1-3, 1-4 interactions calculated in the FFT portion of the algorithm are subtracted off. Does this energy term fall into e_coul or e_long? Could someone direct me to the portion of code in lammps that performs this subtraction? Am I correct in saying the self energy is included in the long range term?

Hello,

I am trying to understand what values are being input into e_coul and

e_long. I understand that e_coul is the standard real space which can be

found in pair_col_long.cpp, for example. What I am particularly confused

about, and maybe my understanding of what lammps is doing is wrong, is how

1-2 1-3 1-3 interactions are handled, and in what variable these energies

are included. In the OPLS forcefield, we scale 1-2 and 1-3 interactions by

0.0, and 1-4 interaction by 0.5. I believe the k_space.cpp code calculates

interactions between all atoms, not excluding bonded pairs. In this

reference,

Essmann, U., Perera, L., Berkowitz, M. L., Darden, T., Lee, H., & Pedersen,

L. G. (1995). A smooth particle mesh Ewald method. The Journal of Chemical

Physics, 103(19), 8577. doi:10.1063/1.470117

The author describes a sum over "masks pairs" where these 1-2, 1-3, 1-4

interactions calculated in the FFT portion of the algorithm are subtracted

off. Does this energy term fall into e_coul or e_long? Could someone direct

me to the portion of code in lammps that performs this subtraction? Am I

correct in saying the self energy is included in the long range term?

the way this is done in LAMMPS is the following:

- the kspace part doesn't need to care about anything and does the

long-range for all charges with all other charges.

- when computing the corresponding short range interactions, excluded

pairs are *not* removed from the neighbor list, but their *full* (not

screened) coulomb interaction is removed (from energy and force).

- self energy correction is included in the kspace part.

HTH,

axel.

Thank you very much, axel! So let me make sure I am fully understanding. If I look at pair_coul_long.cpp, the line

if(factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor

is where you are saying the full qi*qj/r interaction is being subtracted, correct? The subtracted terms therefore would fall in the e_coul variable. Why do we subtract the full interaction for 1-4 neighbors? Am I incorrect in thinking the 1-4 scaling factor of 0.5 for the vdw energy applies to the electrostatics, in the case of OPLS?

Thank you very much, axel! So let me make sure I am fully understanding. If

I look at pair_coul_long.cpp, the line

if(factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor

is where you are saying the full qi*qj/r interaction is being subtracted,

by "full" i mean unscreened. the special bond factors are properly

handled. hence the (1.0-factor_coul) term.

correct? The subtracted terms therefore would fall in the e_coul variable.

Why do we subtract the full interaction for 1-4 neighbors? Am I incorrect in

thinking the 1-4 scaling factor of 0.5 for the vdw energy applies to the

electrostatics, in the case of OPLS?

the exclusion scaling is correctly honored, but it is applied to the

unscreened (=full) coulomb. just look at the code. it is really

obvious when you write out each term in full on a piece of paper.

axel.