New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NEB routine to target equal energy difference between knots #3596
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As indicated in individual comments, this needs changes to the code and documentation and some explanation. It would also be an opportunity to do some refactoring beyond your changes, especially for the documentation to make it better aligned with the latest style and conventions that we are trying to establish for better readability and visual appeal.
I have implemented the changes @akohlmey , I added a similar |
To confirm @akohlmey , I will not edit anymore until future notice |
I am done with my changes |
Many thanks for the quick changes @akohlmey |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- I suggest replacing
terse
andverbose
keywords with a single optional keywordverbosity
that is followed by valuesnormal
orterse
orverbose
. This will fully reflect the values ofprint_mode
in the implementation. The doc page should be updated accordingly, including in Default section at the bottom "{verbosity} = {normal}" - The plot included in the PR shows that
EDideal
is different on the left and right sides of the climbing image. This should be reflected in the doc page definition of Fparallel, at least in the form of a comment, but ideally in the form of a mathematical expression.
This is done now. |
Updated doc page to reflect the operation of equal and ideal. During climbing, the ideal style no longer targets equal spacing, but equal spacing each side of the climbing image. The equal style is identical to ideal before climbing, then during climbing the target is equal absolute energy differences each side of the climbing image. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I approve.
|
Summary
NEB 'ideal' aims to give equidistant knots; this PR implements a NEB style 'equal' which aims to give knots equidistant in energy. From the proposed fix_neb.rst:
With a value of ideal, the spring force is computed as suggested in ref
(WeinanE) <WeinanE>
Fnudge_parallel = -Kspring * (RD-RDideal) / (2 * meanDist)
where RD is the "reaction coordinate" see :doc:
neb <neb>
section, and RDideal is the ideal RD for which all the images are equally spaced. I.e. RDideal = (I-1)*meanDist when the climbing replica is off, where I is the replica number). The meanDist is the average distance between replicas. Note that in this case the specified Kspring is in force units.Note that the ideal form of nudging can often be more effective at keeping the replicas equally spaced.
With a value of equal the spring force is computed as for ideal before the climbing stage, then is computed to promote equidistant spacing in energy rather than distance:
Fnudge_parallel = -Kspring * (ED-EDideal) / (2 * meanEDist)
where ED is the cumulative sum of absolute energy differences ED=sum(i<I)|E(Ri+1)-E(Ri)|, EDideal = (I-1)*meanEdist and meanEdist is the average absolute energy difference between replicas. This form of nudging is to aid schemes which integrate forces along NEB pathways such as [:doc:
fix_pafi <fix_pafi>
], by providing optimal quadrature points.Related Issue(s)
Author(s)
Tom D Swinburne, CNRS / Aix-Marseille University, thomas.swinburne at cnrs.fr
Licensing
By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).
Backward Compatibility
no
Implementation Notes
Fully checked in lammps, minimal changes to code
Post Submission Checklist
Further Information, Files, and Links
Test image: