The process of minimizing does not stop

Hello there! I got a question when I want to minimize the energy of the system. I used the command as below:
min_style fire
minimize 0 5e-12 1000000000 100000000000
I just want this process to stop when it meets force criterion so I set etol 0. However, this process just can’t stop. It ran for hours. And it seemed that the force can not reduce less than 5e-12, so it just computed again and again. How to fix it?

Difficult to tell. It may very well depend on the potential functions (= force field / pair style etc.) that you are using. Not all of them are perfectly smooth. On top of that, you are using the “fire” minimizer which is a damped dynamics based minimizer algorithm, that will by construction not reach perfect zero. Why not use the default cg?

I have tried cg, but it always showed “Stopping criterion = linesearch alpha is zero”, and it just computed one step, so the energy does not been reduced at all. Firstly I used min_modify dmax to solve this. But it was useless. Therefore I change to min_style fire and it worked well. It did reduce the energy of system but it just could not stop.

That means that your initial structure is meta-stable and the minimizer could not find a direction in which to move. With a damped dynamics minimizer you assign random initial kinetic energy and that will break any symmetries where forces cancel and the minimizer would get struck. You can achieve the same effect with a CG or SD minimizer by applying a small random displacement to that atoms.

Random displacement and re-minimization is a rather standard procedure to validate that a minimum is a true minimum and not a saddle point or local minimum in a rough potential hypersurface.

Sorry, I did not get that. Do you mean I can use min_style cg or min_style sd to reduce energy as min_style fire that I have used? But I have tried before. What should I use in min_modify with CG or sd to apply a small random displacement?

You are too fixated on finding the “magic switch” to the minimizer command. Your problem is not a problem of the minimizer, but a problem of your initial geometry leading to net zero forces due to symmetry.

Thus to break the symmetry is not a step you have to do in the minimizer. But you have to actually change your initial geometry and displace the atoms.
And low and behold, there is a displace_atoms command in LAMMPS that can do exactly that.

Thanks for your generous advice!
Actually, I do not understand the symmetry you said. My system contains 500 particles and I give them initial velocity to move, then I use minimizer command. So it should be a “random” situation without symmetry.
So could you please give me a detailed description on “symmetry”?

The SD and CG minimizer algorithms disregard velocities.

Please ask your adviser or your colleagues. This is general molecular modeling knowledge and not LAMMPS specific and thus off-topic in this category.

Thanks, I will check the menu.

Alright, thanks!

Hello akohlmey, I have tried the displace_atoms.My simulation is 2d so I first used “rotation”
. Then I tried “ramp”, “move”, there will be serious overlap among particles. When I use “rotation”, there is no overlap. But what is most important is that,whatever key word I used, I still can not reduce the energy of the system with CG .

1 Like

Congratulations, you managed to try all options except for the obvious one.
I give up. Apparently, it is impossible to help you.