COMB3 too slow (compared to Reax/C)

Dear all,

I am experimenting with the COMB3 potential to model a system of Zn/O/H and possibly Ti. I started a simulation with <3000 atoms, and it seems to be running well expect for the fact that it is too slow. When I try simulating the system with Reax/C (which also has the parameters for Zn/O/H) speed up is around ~5-10 times of the COMB3. I am wondering if I am doing anything wrong.

I am using lammps-31Mar17 on NERSC resources, and the code is available as a module.

Here is my input file, and for the qeq/reax I used 1E-6 as the convergence criterion.

    units metal
    atom_style charge
    boundary p p p

    mass 1 1.00
    mass 2 16.0
    mass 3 65.4

    pair_style comb3 polar_off
    pair_coeff * * ffield.comb3 H O Zn
    fix qeq all qeq/comb 10 1E-3 # tried to speed up, was 1 1E-3

    neighbor 2.0 bin
    neigh_modify every 1 delay 0 check yes

    dump 1 all custom 2000 nano.lammpstrj element x y z
    dump_modify 1 sort id element H O Zn append yes

    timestep 2E-4

    thermo_style custom step time temp press vol pe etotal enthalpy
    thermo_modify flush yes
    thermo 2000

    # equilibrate charge first; minimization hangs indefinitely otherwise
    fix 1 all nvt temp 300.0 300.0 0.1
    thermo 1
    run 1
    fix 2 all qeq/comb 1 0.003 file fq.out
    run 5

    # minimize
    unfix 1
    fix 1 all box/relax aniso 0.0 vmax 0.0002
    minimize 1.0E-8 1.0E-10 10000 100000
    unfix 1

    displace_atoms all random 0.08 0.08 0.08 328
    fix nvt all nvt temp 300.0 300.0 20
    run 1000000


Factor of 5-10 seems a bit much. Are you using “real” units and changing timestep appropriately for ReaxFF? If you have a slow disk I/O, then not writing fq.out might help (remove "file fq.out” from fix qeq/comb).


Hi Ray,

Thanks for the answer. Yes I use the real units and the proper timestep value with reax. Also, I don't actually output the fq.out, the second qeq was (and the whole minimization part) was commented out in my tests, as I first did the minimization separately.

I understand that there is nothing obviously wrong in my input file then, right?


Hi Sencer,

No real problem with your script, but please note that the last instance of a command is the effective one, therefore the following line is the effective “fix qeq/comb” for your minimization and long-time production NVT run:

fix 2 all qeq/comb 1 0.003 file fq.out

So you didn’t actually use a larger Nfreq and turn off writing the fq.out file.