TABLE OF CONTENTS


::pwtk::auto_neb

SYNOPSIS

proc ::pwtk::auto_neb {args} {

USAGE

   ::pwtk::auto_neb ?-noCI_thr THRESHOLD?  ?-CI_thr THRESHOLD?  ?-onlyCI?  ?-artn?  HEAD

PURPOSE

Perform no-CI + auto-CI NEB calculations, and plot the resulting energy profile along MEP (minimum-energy path).

First, the "no-CI" NEB is performed up to a reduced threshold to stabilize the minimum-energy path and then CI-NEB is restarted with CI_scheme = 'auto' using a full-precision threshold.

After the NEB calculations are finished, the activation energy can be refined with the ARTn plugin by specifying the -artn option (it requires QE compiled with the ARTn plugin enabled). For ARTn, if the ARTN_PARAMETERS namelist is undefined or empty, PWTK uses its default (stored in $::pwtk::default_ARTN_PARAMETERS).

OPTIONS

ARGUMENTS

SIDE EFFECTS

"prefix" and outdir_postfix are set to HEAD, whereas all other modifications are popped away after complition because both calculations are performed with input_pushpop.

SOURCE

    variable noCI_path_thr
    variable neb_options

    print NEB "no-CI + auto-CI NEB calculation\n"
    
    set narg 1
    set options $neb_options
    set usage "?-noCI_thr threshold?  ?-CI_thr threshold?  ?-onlyCI?  ?-artn?  HEAD"
    ::pwtk::parseOpt_
    ::pwtk::checkOType_ -noCI_thr $opt(noCI_thr) {number posreal} "positive real number"
    ::pwtk::checkOType_ -CI_thr   $opt(CI_thr)   {number posreal} "positive real number"
    set head [::pwtk::headname $args]
    
    ifset opt(noCI_thr) $noCI_path_thr

    outdir_postfix $head
    CONTROL " prefix = '$head' "

    ::pwtk::input::pushpop {
        # 1. run no-CI NEB
        if { ! $opt(onlyCI) } {
            ::pwtk::input::pushpop {
                PATH "
                   CI_scheme = 'no-CI'
                   path_thr  = $opt(noCI_thr)
                "
                runNEB neb.$head.no-CI
            }
            PATH {
                restart_mode = 'restart'
            }         
        } 

        # 2. run auto CI-NEB
        PATH {
            CI_scheme  = 'auto'
        }
        ifnotempty opt(CI_thr) {
            PATH " path_thr = $opt(CI_thr) "
        }
        runNEB neb.$head.auto

        # 3. plot MEP
        neb_plot $head

        # 4. ARTn refinement of the activation energy
        if { $opt(artn) } {
            neb_refine_artn $head
        }
    }
}