Skip to content

Request: Transition State Optimization in ABACUS itself #4327

Closed

Description

@QuantumMisaka

Background

There is no transition state optimization (or, saddle-point optimization) implementation in ABACUS itself. Although we can use ASE-ABACUS interfaces to use the TS method in ASE or coded by ASE, but:

  1. There are some problem in ASE-ABACUS, with all single-end TS method (e.g. Dimer) used by ASE-ABACUS interfaces cannot give right result and effective process.
  2. It is needed for a DFT calculation program to have (at least on) saddle-point search implementation.

Describe the solution you'd like

ABACUS should have (at least one) TS optimization method. which can be:

  1. NEB
  2. Dimer
  3. TS based on P-RFO (Partitional Rational Function Optimization) method, namely, Sella

The first and second one can be implemented easily, but the last one is the most recommended. Since in PBC, internal coordinates cannot be effectively used, we can only use the PBC part of Sella. ref: https://pubs.acs.org/doi/full/10.1021/acs.jctc.9b00869

Task list only for developers

  • Notice possible changes of behavior
  • Explain the changes of codes in core modules of ESolver, HSolver, ElecState, Hamilt, Operator or Psi

Notice Possible Changes of Behavior (Reminder only for developers)

No response

Notice any changes of core modules (Reminder only for developers)

No response

Notice Possible Changes of Core Modules (Reminder only for developers)

No response

Additional Context

No response

Task list for Issue attackers (only for developers)

  • Review and understand the proposed feature and its importance.
  • Research on the existing solutions and relevant research articles/resources.
  • Discuss with the team to evaluate the feasibility of implementing the feature.
  • Create a design document outlining the proposed solution and implementation details.
  • Get feedback from the team on the design document.
  • Develop the feature following the agreed design.
  • Write unit tests and integration tests for the feature.
  • Update the documentation to include the new feature.
  • Perform code review and address any issues.
  • Merge the feature into the main branch.
  • Monitor for any issues or bugs reported by users after the feature is released.
  • Address any issues or bugs reported by users and continuously improve the feature.

Activity

  1. kirk0830 commented on Jun 8, 2024

    @kirk0830
    Collaborator

    I doubt the robustness of DIMER, even in other softwares I know people will first use NEB then DIMER. If possible, I think who is willing to implement TS searching algo. should only consider 1 and/or 3.

  2. added
    Feature DiscussedThe features will be discussed first but will not be implemented soon
    on Jun 8, 2024
  3. QuantumMisaka commented on Aug 20, 2024

    @QuantumMisaka
    CollaboratorAuthor

    Schemes for NEB can be referred: (notes: NEB here includes CI-NEB)

    Also, the optimizers for NEB are always BFGS or FIRE (FIRE is better for CI-NEB in some cases) , there should be an option for users to use these optimizers.

    Option 2 and 3 are two single-ended TS methods. Also, opt=TS in Gaussian is a high efficient saddle point optimization method, namely Berny. It is recommended to implement one single-end TS for using guessed TS STRU for TS refinement.

    Useful single-ended TS methods as far as I know:

    Any comments @pxlxingliang @kirk0830

  4. QuantumMisaka commented on Aug 20, 2024

    @QuantumMisaka
    CollaboratorAuthor

    Another reference from Tian Lu: http://sobereva.com/44

  5. locked and limited conversation to collaborators on Oct 17, 2024
  6. converted this issue into a discussion #5287 on Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Feature DiscussedThe features will be discussed first but will not be implemented soon

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions