# How to implement a new method for determining MEPs?

Hi all, I would like to implement a new method for determining MEPs (Minimum Energy Paths) in LAMMPS.

The new method, as well as the NEB (Nudged Elastic Band) one, is based on using several replicas of the system. For finding the MEP, the NEB method (neb.cpp) computes appropiate forces of each atom (in fix_neb.cpp) and then perform a dumped dynamics. In the new method, instead of a dumped dynamics, I have to make a Fourier transform of the force of each atom over the different replicas.

Alfonso

Hi all, I would like to implement a new method for determining MEPs (Minimum
Energy Paths) in LAMMPS.

The new method, as well as the NEB (Nudged Elastic Band) one, is based on
using several replicas of the system. For finding the MEP, the NEB method
(neb.cpp) computes appropiate forces of each atom (in fix_neb.cpp) and then
perform a dumped dynamics. In the new method, instead of a dumped dynamics,
I have to make a Fourier transform of the force of each atom over the
different replicas.

your question is rather vague. can you be a bit more specific about
what kind of advice you are looking for?

axel.

I am doing some tests modifying the 'fix_neb.cpp' file. At the end of the 'min_post_force' function, I am doing the forces zero, like this:

for (int i = 0; i < nlocal; i++) {
f[i][0] = 0.0;
f[i][1] = 0.0;
f[i][2] = 0.0;
}
}

With this modification, I am carrying out a NEB calculation giving it the positions of the initial and final replicas. The 'neb.cpp' subroutine performs a linear interpolation for the positions of the intermediate replicas. I expected that the final positions of the replicas were the same as the initial ones because there is no any force acting (I made it zero artificially). But after 100 timesteps, the energy of the replicas is different to the initial one. Even the energies of the initial and final replicas changes.

I don't know why this happens.

Alfonso

NEB is using a damped dynamics minimizer. If atoms have velocities

they will move, even if forces are zero. You’d have to look at

the internals of the minimizer (not fix_neb.cpp) to see how that works.

Steve