Hi all,
I am doing a lot of simulations right now and like 99.9% of my runs are just fine except for that 0.1% that fail with “non-numeric pressure”. I did not really estimate the percentages but I got 3 “non-numeric pressure” fails in like a month of running ~400 cores. I got the 3rd one this night so I am writing this now. Fails seem to be random in time - my runs are usually 24h and fails happened at ~2:59, ~7:40, and something like that. I included Fmax
in my thermo_style
in hopes of catching anything but I see no irregularities before a fail. I looked at existing “non-numeric pressure” threads but they all seem to have some systematic problem that occurs regularly, which does not seem to be the case here.
The only potential source of this I could think of was
- I have
pair_style hybrid/overlay lj/cut R1 gauss R2
, but not all pairs should physically have LJ repulsion so I set corresponding \epsilon_{i,j} = 0 and arbitrary \sigma_{i,j}=1. r_{c,i,j}=2^{1/6} \sigma_{i,j} for all pairs. - The same pairs that do not have real LJ walls have strong and short-range Gauss attraction, so it is extra likely their centers would be close for a long time (this is supposed to mimic binding).
I am not sure how lammps works internally, so my question is:
Can an exact overlap of 2 atoms (float(r1) == float(r2)
) which formally have an LJ potential but also have \epsilon=0 cause a “non-numeric pressure” crash or interactions with \epsilon=0 are excluded from evaluation?
This would explain very rare fails and no visible precursors to them.
If \epsilon=0 are not excluded, is there a way to tell lammps not to evaluate specific pair_style-s (from a hybrid style) for specific type-pairs?
This is not a terrible issue since I can just relaunch the failed ones but I need to check every time if all runs finished fine.