Getting segmentation faults from ReaxFF

Hi,

I’m running a reaxff simulation of some acid molecules on silica surfaces. two surfaces creating a nano channel. And I’m “flowing” water through them, using addforce, to see how the acid molecules get removed from the surface.
Since the bonding between acids and surface is important I decided to use ReaxFF, and also because I’m very comfortable with it.
However, I’m observing that the water molecules are not stable, and the hydrogens are detaching from the oxygen creating hydrogen molecules.
The forcefield seem not to be the problem because I’ve tried different parameter sets and got the same results.
Anyhow after just a few thousand steps, I get segmentation fault which I believe is due to bad dynamics.

Here are my questions:
1- when I run water only, (see attached) the water molecules seem to be fine, but when I have water in the silica model they become unstable, that doesn’t make sense to me.
2- Even in the “water only” simulation (files attached) the temperature is nonphysical even though the dump file looks fine. The temperature goes to 1000 and then stays at 400-500 for a while but the molecules don’t explode, they are just fine. I even tried to make the box huge to give enough space to molecule to explode but they just stick together.

======================================================
I feel like I’m doing something wrong but I can’t figure out what.

in.input (3.2 KB)
substrate_molecules.lmpdat (228.6 KB)
in.test (934 Bytes)
water_x500_modified2.lmpdat (234.5 KB)
SiOHCN.reax_kulkami (19.7 KB)

Since I could only upload 5 files. Here are the rest:
log.lammps (7.9 KB)
dump.relaxation_water (4.7 MB)
water_x500.lmpdat (46.3 KB)
log.lammps_water (14.2 KB)

That is no proof. They may be all unsuitable for your use case.

Also, you are ignoring the warning:

WARNING: Non-zero image flags with growing box can produce bad coordinates (src/lammps/v29Aug2024/lammps-29Aug2024/src/read_data.cpp:675)

multiple times. Have you checked that the coordinates of the final system are exactly what you would expect?

Beyond that I don’t see anything specific that is LAMMPS-related. So you would need to discuss your simulation with someone that has experience simulating the same kind of system, and you are not likely to find that kind of person among those that regularly respond to questions here.

Thank you.

Yes, I have visualized the system and it looks just fine. It throws out the segmentation fault when the water reaches the SiO2 slabs.
The parameters set that I used are very common with water system. I actually looked at a few different papers which had water in their model and most of them used the same values for O-H bond and O/H/O angles. I’m thinking these are values which were trained back in 2010 by Dr. Van Duin’s group.

I guess my only question is that why would water behave differently when it is simulated separately vs when it is in the SiO2 system but too far to have any bonds or meaningful van der Walls interactions? and why would the water molecules break into their atomic constituents?
Have you ever seen this before?

That may not be sufficient to determine the kind of error that can happen when changing the box dimensions. The composition of a system from multiple data files with “read_data add” has a very high risk factor associated with it. I personally would never use it except for cases where I have manipulated the individual data files beforehand with change_box and displace_atoms to have the exact same box dimensions for all data files. And more general, there is much less risk with external tools or custom scripts. Since for ReaxFF you don’t need to preserve any topology information, this is not very complicated (unlike for classical force fields).

I cannot answer these questions. They are really questions about ReaxFF and not about LAMMPS. If you believe the ReaxFF implementation in LAMMPS is faulty, you need to provide something more tangible than what you have done so far. Like proof that the same geometries and settings produce the expected trajectories with a different ReaxFF implementation.

It’s possible that there’s an interaction between two elements in your application that has parameters that weren’t trained in the reaxff potential you’re using.

Please read: