How to model a TIP5P water molecule?

Hi everyone,

I am trying to simulate a TIP5P water molecule using LAMMPS. However, since it has two charged sites in addition to its three atoms, I am unsure how to model these sites. I am using this paper (Cookie Absent) to model the water, and I know the charge of each atom and site, as well as the potential parameters of its atoms. However, I am stuck on how to model the two sites. Should I model them as two massless atoms?

I have simulated many water models before, such as SPC, SPC/e, TIP3P, and TIP4P. For example, in the case of TIP4P, there is a specific pair style in LAMMPS, and there are also many sample codes available on the internet for other models. Unfortunately, I have not found any sample code for simulating TIP5P. Therefore, I would appreciate any assistance you can provide on this issue.

You can define TIP5P molecules with a molecule file and then populate your simulation box with them using create_atoms. You can then simulate the water molecules as rigid objects using fix rigid or fix rigid/small (or their thermostatted/barostatted variants). To avoid LAMMPS erroring out, you need to assign a tiny mass to the “massless” sites, but if those masses are small enough, they won’t make a difference (thanks to the truncation of floating point math).

TIP4P is a special case, since one can use the same neighbor list entry for both the oxygen atom and the massless charge point M and thus gain a significant speed advantage. For TIP5P something similar could be done, but it would be a significant amount of coding. TIP4P has the big benefit that it is flat, which simplifies the vector algebra significantly.

1 Like

Thanks for your reply,
yes, assigning a small mass to the sites would greatly simplify their modeling. However, I am uncertain what you consider to be ‘a tiny mass.’ Could you please advise on the appropriate magnitude to ensure the mass of the sites has no significant impact? For example, would assigning a mass equivalent to 1% of hydrogen’s mass (approximately 0.01 g/mol) be a suitable choice?

Much smaller is sufficient, like 1.0e-100


Thank you. I got it.

FYI, I am in the process of revising and expanding the LAMMPS documentation on how to set up simulations for several water models. This also includes a TIP5P example.

in.tip5p (599 Bytes)
tip5p.mol (426 Bytes)


Thanks so much for sharing your code. It was very helpful.