Hello,
I am performing an energy minimization, I find 1e-4 doesn't work as well as 0.0001.
"minimize 1e-4 1e-4 1e5 1e5" gives the results:
Stopping criterion = max force evaluations
Energy initial, next-to-last, final =
57.1773311841 57.1773311841 46.7784078493
Force two-norm initial, final = 334.897 240.262
Force max component initial, final = 159.148 133.29
Final line search alpha, max atom move = 0.000157086 0.0209381
Iterations, force evaluations = 1 3
..................................................
While, "minimize 0.0001 0.0001 100000 100000" seems to work well,
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
57.1773311841 11.9268834228 11.9267974207
Force two-norm initial, final = 334.897 1.97889
Force max component initial, final = 159.148 0.592499
Final line search alpha, max atom move = 1.02401e-05 6.06725e-06
Iterations, force evaluations = 580 4267
.............................................................
Best wishes,
Wei
Hello,
I am performing an energy minimization, I find 1e-4 doesn't work as well as 0.0001.
sorry, but it *does* work.
"minimize 1e-4 1e-4 1e5 1e5" gives the results:
Stopping criterion = max force evaluations
Energy initial, next-to-last, final =
57.1773311841 57.1773311841 46.7784078493
Force two-norm initial, final = 334.897 240.262
Force max component initial, final = 159.148 133.29
Final line search alpha, max atom move = 0.000157086 0.0209381
Iterations, force evaluations = 1 3
..................................................
While, "minimize 0.0001 0.0001 100000 100000" seems to work well,
the problem is not the 1e-4, but the 1e5.
while the first two numbers are floating point numbers,
the second two numbers are expected to be integers,
hence the minimizer will read 1e5 as 1
and only do 1 step of minimization.
please check the line starting with Loop in your output.
cheers,
axel.
Numerical parameters in LAMMPS are parsed using the atof standard
library function [1]. This should support scientific notation, but(!)
it may be locale dependent. What system are you compiling and running
LAMMPS under?
[1] http://www.cplusplus.com/reference/cstdlib/atof/
Numerical parameters in LAMMPS are parsed using the atof standard
library function [1]. This should support scientific notation, but(!)
sorry, but that is not correct.
from minimize.cpp:
void Minimize::command(int narg, char **arg)
{
if (narg != 4) error->all(FLERR,"Illegal minimize command");
if (domain->box_exist == 0)
error->all(FLERR,"Minimize command before simulation box is defined");
update->etol = atof(arg[0]);
update->ftol = atof(arg[1]);
update->nsteps = atoi(arg[2]);
update->max_eval = atoi(arg[3]);
so the first two arguments are parsed with atof(3) alright,
but the third and the fourth with atoi(3) and hence the
exponents are ignored.
axel.