WARNING: H matrix size has been exceeded

Dear LAMMPS-users,

I am trying to simulate the kerogen molecule with REAX/C package. But I got the following warning:

WARNING: H matrix size has been exceeded: m_fill=6424 H.m=6237

I build a low density file and try to compress the system with NPT ensemble (400 K, 30 MPa). The input file is as follows:

ReaxFF potential for kerogen system

units real
atom_style full
dimension 3
boundary p p p

read_data data.kerogen_II_D_configuration_1


pair_style reax/c control.reax_c.rdx
pair_coeff * * ffield.reax C H O N S

minimize 1.0e-4 1.0e-6 100 10000

compute reax all pair reax/c

variable eb equal c_reax[1]
variable ea equal c_reax[2]
variable elp equal c_reax[3]
variable emol equal c_reax[4]
variable ev equal c_reax[5]
variable epen equal c_reax[6]
variable ecoa equal c_reax[7]
variable ehb equal c_reax[8]
variable et equal c_reax[9]
variable eco equal c_reax[10]
variable ew equal c_reax[11]
variable ep equal c_reax[12]
variable efi equal c_reax[13]
variable eqeq equal c_reax[14]

velocity all create 400.0 4928459 rot yes dist gaussian
neighbor 2.5 bin
neigh_modify every 10 delay 20 check yes

thermo_style custom step temp epair etotal vol press &
v_eb v_ea v_elp v_emol v_epen v_ecoa v_ehb &
v_et v_eco v_ew v_ep v_efi v_eqeq
thermo 10000

timestep 0.1

fix 1 all npt temp 400.0 400.0 10.0 iso 300.0 300.0 100.0
fix 2 all qeq/reax 10 0.0 10.0 1.0e-6 reax/c
fix 4 all reax/c/bonds 400000 bonds_400_p_30.reaxc

dump 1 all xyz 2000 kerogen_reax_npt_400_p_30.xyz
dump 2 all image 200000 kerogen_reax_npt_400_p_30.*.png type type size 1280 720
dump 3 all custom 200000 kerogen_reax_npt_400_p_30.txt id type mass x y z q

info all out simulation_log.txt
run 4000000 # 400 ps
write_restart kerogen_reax_npt_p_30_t_400.restart
write_data kerogen_reax_npt_p_30_t_400.data

reset_timestep 0
unfix 1
fix 5 all nve
run 4000000 # 400 ps

Please find the data file in the attached. Any help would be appreciated. Thanks in advance.


data.kerogen_II_D_configuration_1 (77.3 KB)

It is not recommended to use a nevery that is not 1 for fix qeq/reax. Have you tried using 1 instead of 10? Can you try incrasing safezone and mincap keywords? This usually occurs when an atom has too many neighbors within the non-bonded cutoff.


Hi Ray,

Thanks for the apply. I changed safezone to 1.6 and mincap to 100. No warning has been reported right now and simulation is running. Does this occurs because I have a bad initial data structure? OR should I change my non-bonded cutoff (current is 4.5) ? Will the change of safezone and mincap affect the simulation result?


No, it is not because of bad structure or bad setup (e.g. cutoff) but simply due to the numbers of atoms’ neighbors changing significantly during a simulation. This can be the case when you have a very reactive system or when box dimensions change significantly. This is a flaw in reax/c’s dynamic memory allocation, and we get pass by it by allocating a larger buffer in advance. Your setup is fine. Please note that non-bonded cutoff is usually around 10-11, while the 4.5 is a short range cutoff.


Hi Ray,

Sorry, I think I misunderstand the meaning of non-bond cutoff with nbrhood_cutoff in control file. I set the nbrhood_cutoff as 4.5 and I didn’t find the place to change this nonbond_cutoff. Is there any option I can set to change the nonbond-cutoff?