Automatic NEB?

My understanding of the current NEB implementation in LAMMPS is that one need an initial and final configuration files to enable the calculation of the energy barrier and the saddle point. In other words, one need to know that an event has occurred a priori in an MD simulation before doing NEB as an isolated calculation. Please correct me if I am wrong.

The TAD (Temperature Accelerated Dynamics) method was implemented to automatically detect an event and then invoke NEB to estimate barrier on the fly.

Is there anyway I can invoke NEB to automatically detect transition, say a critical value change in bond length of an atom/group of atoms while the simulation continues after the energy barrier computation. This may be useful for large systems with long time dynamic runs. One will have to dump outrageous number of files to see all the transition events in the current NEB implementation (if I am right?).

Suleiman.

My understanding of the current NEB implementation in LAMMPS is that one need an initial and final configuration files to enable the calculation of the energy barrier and the saddle point. In other words, one need to know that an event has occurred a priori in an MD simulation before doing NEB as an isolated calculation. Please correct me if I am wrong.

The TAD (Temperature Accelerated Dynamics) method was implemented to automatically detect an event and then invoke NEB to estimate barrier on the fly.

Is there anyway I can invoke NEB to automatically detect transition, say a critical value change in bond length of an atom/group of atoms while the simulation continues after the energy barrier computation. This may be useful for large systems with long time dynamic runs. One will have to dump outrageous number of files to see all the transition events in the current NEB implementation (if I am right?).

this sounds a lot like you would be better off to use a biased MD method
with some "collective variables", e.g. metadynamics, where rather than
waiting for a rare even, you generate the (free) energy profiles for ensemble
of representative pathways.

cheers,
    axel.

Axel,
Thanks for the suggestion. We are trying to perform a MD simulation without any bias and let the system do whatever it likes while we keep track of various events and calculate energy barriers.

Steve,
I would like to ask if you will be willing to look at the TAD implementation in LAMMPS for a possible fix to do an on the fly NEB calculations. I will volunteer to do it if given the support required in LAMMPS development. Thanks.

Suleiman.

Comments below.

Steve

My understanding of the current NEB implementation in LAMMPS is that one need an initial and >final configuration files to enable the calculation of the energy barrier and the saddle point. In other >words, one need to know that an event has occurred a priori in an MD simulation before doing NEB >as an isolated calculation. Please correct me if I am wrong.

More precisely, the current config (which could be at the end of a run)
is used as the initial state for NEB. The final state is read from a
(previously generated) file.

The TAD (Temperature Accelerated Dynamics) method was implemented to automatically detect an > event and then invoke NEB to estimate barrier on the fly.

TAD does that but also a lot more.

Is there anyway I can invoke NEB to automatically detect transition, say a critical value change in >bond length of an atom/group of atoms while the simulation continues after the energy barrier >computation. This may be useful for large systems with long time dynamic runs. One will have to >dump outrageous number of files to see all the transition events in the current NEB implementation >(if I am right?).

I'm not clear on what you want to do. If you want to run a model that moves
from one event to another, with proper sampling, then you want something
like TAD.

If you want some way to avoid having to know the other endpoint to do
a single NEB calculation, then how do you propose to find what that
endpoint is ("automatically" as you say)?

I could imagine one of these:

a) run a simulation in short stages, where you quench and look for
an event every N timesteps. When you find one write it to a file,
then start a 2nd script that does NEB. All of this might be do-able
with clever input scripts (e.g. that loop, looking for an event).

b) use multiple replicas to look for an event, then when one is found
(on any replica), use all the processors to run multi-replica NEB on it,
then stop. This would probably require a new command like neb/driver to
orchestrate the work.

So one basic question is do you want to look for a single event
with many replicas or just one. And even if you want to do,
that is not TAD, which is more sophisticated.