Defining TIP4P explicitly

Dear LAMMPS developers and user

I’d like to simulate an aqueous system including TIP4P water molecules. So, I should use hybrid pair style for lj/cut/could/long and lj/cut/tip4p/long. I know that building neighbors does not work on GPU. But, that would truly accelerate my runs.

I think of how to circumvent hybrid pair style by only using lj/cut/could/long for TIP4P.

The question is: is it practical (possible) to define TIP4P explicitly in the data file, where a massless particle is near the oxygen atom? If yes, would anybody please explain to me how to define such massless site while having time integration?

Any hint is welcome.

Dear LAMMPS developers and user

I’d like to simulate an aqueous system including TIP4P water molecules. So, I should use hybrid pair style for lj/cut/could/long and lj/cut/tip4p/long. I know that building neighbors does not work on GPU. But, that would truly accelerate my runs.

​you do not need to use a hybrid pair style for this. lj/cut/tip4p/long is doing the computation of the massless site only for the atom types designated at water hydrogen and water oxygen, for the remaining atoms of all other atom types, it functions exactly as lj/cut/coul/long.​

I think of how to circumvent hybrid pair style by only using lj/cut/could/long for TIP4P.

The question is: is it practical (possible) to define TIP4P explicitly in the data file, where a massless particle is near the oxygen atom?

​yes, it is possible. the difficult part here is, that you can no longer use fix shake on the resulting structure, but will have to use fix rigid/small, which in turn requires a significantly shorter time step for stable integration of the rotation part of the rigid body dynamics.

If yes, would anybody please explain to me how to define such massless site while having time integration?

​you can circumvent the test for 0 mass by assigning a very tiny mass, e.g. 1.e-10. for as long as you are using fix rigid or any of its variants, the individual masses do not matter, but only the total masses and moments of inertia of the rigid bodies.​

whether the result of this is going to be faster by using the GPU or when using the CPU is not easy to predict. chances are, that the requirements of rigid body time integration will cancel out the GPU acceleration, even for very powerful GPUs. it all depends on the exact hardware you are using.

​axel.​

I recently did that only. Though no proper scaling and acceleration tests were conducted, I got approximately 1.5-2x speed up using user-intel package:
CPU run - 100 nodes, 2400 cores, haswell, double precision, lj/cut/tip4p/long, 1.5 ns/day of simulation with 200000 water molecules

Xeon phi run - 12 nodes, 768 cores, self hosted KNL nodes, mixed precision, lj/cut/coul/long, 2.3 ns/day of simulation with 200000 water molecules+ 100000 massless sites.
yet to test with statistical rigour, if water behaved properly, However my PMF measurements show valid agreement.

I believe similar shall be observed in GPU as well, specially with mixed precision (yet to test on our consumer end gtx 1080).
(time step was same in both)