Implementing TIP4P/2005

Hello all,

I’m trying to prepare the forcefield for cementitious systems using the following thesis:
https://infoscience.epfl.ch/record/186587

Here’s the forcefield part of my input:

bond_style morse/omp
angle_style harmonic
kspace_style pppm/tip4p 1e-5
pair_style hybrid/overlay buck/omp 8.5 lj/cut/omp 8.5 tip4p/long 4 5 1 1 0.1546 8.5 nm/cut 8.5

pair_coeff * * tip4p/long
pair_coeff 4 4 lj/cut/omp 0.1852084366 3.1589 #Ow-Ow
pair_coeff 4 7 nm/cut 0.0299793 4.63 9 6 #Ow-Oh
… … .
pair_coeff 2 4 buck/omp 2.7364e+04 .297 0 #ca-ow
pair_coeff 2 7 buck/omp 5.1911e+04 .297 0 #ca-oh
. . . …

My question is: Is there any issues with the way I’ve introduced TIP4P here?
I use pppm/tip4p for long range to add the charge to the extra site. Also I define tip4p/long among all atoms to add the extra site.

I’m also attaching the full files

Thanks,
Jamal

cemff_runfile.in (2.52 KB)

data.dat (62.8 KB)

The handling of coulomb is correct in your input for a system containing TIP4P water and other coulomb interactions.

Whether this input will give the correct results is something that you need to figure out by yourself.
This is usually most easily done by trying to reproduce results from the individual subsystems independently first and then try to reproduce reference results, where available, for combined subsystems.

Axel.

Thanks Axel,
For testing, I have kept only two water molecules in the box. In the attached files, “run_manual” is when I put the tip4p charge as a speparate type manually at OM=0.1546 away from O in water and “run_auto” is when I let lammps handle Coulomb with pppm/tip4p and tip4p/long. However, the ecoul and elong I get are not the same. Do you happen to know why this happens?
I have added 2*OM to cutoff in run_manual case as well.

run_auto:
pe=127.71100099400530326 ecoul=387.91870621711859712 elong=-260.20770522311329387

run_manual:
pe=127.73260165723374371 ecoul=375.58414487702032147 elong=-247.85154321978657777

Best,
Jamal

data_auto.dat (1.16 KB)

data_manual.dat (1.57 KB)

run_auto (950 Bytes)

run_manual (977 Bytes)

Thanks Axel,
For testing, I have kept only two water molecules in the box. In the attached files, “run_manual” is when I put the tip4p charge as a speparate type manually at OM=0.1546 away from O in water and “run_auto” is when I let lammps handle Coulomb with pppm/tip4p and tip4p/long. However, the ecoul and elong I get are not the same. Do you happen to know why this happens?

this is because you are not fully converging both real space and kspace and due to the approximation of using FFTs with PPPM.
if you compare the output carefully, you will see, that the automated estimates based on your kspace convergence and cutoffs are slightly different resulting in a different g vector cutoff different interpolation grids and FFT discretizations. using a small tilted cell makes this more complex and subject to additional numerical noise. the differences are small.

axel.