Cannot minimize forces with pair_style eam/alloy

Dear Lammps,

I am trying to minimize a configuration of ZrCu using the pair_style eam/alloy and suitable parameters for Zr and Cu (EAM potentials generated by Howard Sheng at GMU)

I would like that all forces of particles are very small, specifically
I want that the maxforce is < 1e-10.

However there is no way to minimize such configuration, I have tried with different minimization protocols, and procedures: cg, fire, damped dynamics.

Could you please give me an advice on what i am doing wrong?
I paste below my script.
Thank you very much for your kind attention,
kind regards.

###############################################

units metal
atom_style atomic
read_restart glass_50.restart.25502036

Interatomic potential information.

neigh_modify every 1000 delay 0 check no
pair_style eam/alloy
pair_coeff * * …/ZrCuAl.lammps.eam Zr Cu Al
timestep ${dt}

thermo 1000
thermo_style custom step temp pe ke fmax fnorm ndanger press pxx pyy pzz
thermo_modify flush yes format float %10.10g

variable maxforce equal abs(fmax)
fix HALT all halt 1 v_maxforce < 1e-10 error continue

fix ti2 all nve
fix ti1 all langevin 0.0 0.0 1.0 7774
run 100000
unfix ti1
unfix ti2

min_style fire
minimize 0.0 1e-10 1000000 1000000

min_style cg
minimize 0.0 1e-10 1000000 1000000

min_style fire
minimize 0.0 1e-10 1000000 1000000

min_style cg
minimize 0.0 1e-10 1000000 1000000

write_dump all custom final_20000.dump id type x y z fx fy fz modify append no sort id format line ‘%d %d %20.20g %20.20g %20.20g %20.20g %20.20g %20
.20g’
write_data final_20000.dat

I suspect that is due to EAM using tabulated functions with splines.
Those have a tendency to be a bit more noisy than analytical potentials.

Thank you for the prompt reply.

Where the noise should come from?

I would expect the spline to provide smoothness and consistent derivatives.
Is there any workaround?

Thanks again and kind regards.

Spline functions have a tendency to create “wiggles”, specifically when the tabulation was done with single precision floating point math. Also, you can get “jumps” in the force even with the smallest displacements or changes of distance when you have atoms that move from one spline point to the next and then the force can change due to having the interpolation for a different gradient. This is usually not a big deal, but when you look as closely as you do, it can be just enough.

We have only very recently updated the code in the LAMMPS folder tools/eam_database/ from single precision to double precision and also provide a python implementation. If the potential file was created with that tool, it may be worth recreating it with the new version (should produce smoother potentials) or doing the same kind of update to the tool that was used to create the potential file you have.

I just checked and your elements are all supported by the EAM database tool, so it may be worth giving it a try, even though its resulting potentials will generally be inferior, since they are based in simple mixing rules instead of having dedicated inter-element potentials (which are supported by the eam/alloy file format).