TABLE OF CONTENTS


::pwtk::neb_refine_artn

SYNOPSIS

proc ::pwtk::neb_refine_artn {args} {

USAGE

   ::pwtk::neb_refine_artn ?-nebi NEBI?  ?HEAD?

WARNING

This command requires QE compiled with the ARTn plugin enabled.

PURPOSE

Refine the neb.x calculated activation energy and TS structure with the ARTn plugin.

If the ARTN_PARAMETERS namelist is undefined or empty, PWTK uses its default (stored in $::pwtk::default_ARTN_PARAMETERS).

This command reads the neb.x energies and structures from the PREFIX.path and PREFIX.crd files, respectively. For the TS, the image with the highest energy is used and this image is refined with the ARTn plugin.

The PREFIX is obtained from the value of the CONTROL 'prefix' variable (if the -nebi option was given, then 'prefix' is taken from the provided input).

OPTION

ARGUMENT

RETURN VALUE

SOURCE

    print ARTn "Refining the neb.x calculated TS with the ARTn plugin\n"
    
    set nargmin 0
    set nargmax 1
    set usage "?-nebi NEBI?  ?HEAD?"
    set options {
        {nebi.arg  {} "neb.x input file"}
    }
    parseOpt_
    lassign $args head

    ::pwtk::input::pushpop {
        if { $opt(nebi) ne {} } {
            load_fromNEBI $opt(nebi)
        }

        set nstep  [::pwtk::input::namelistGetVarValue CONTROL nstep]
        set prefix [::pwtk::input::namelistGetVarValue CONTROL prefix trim]
        ifset prefix pwscf
        ifset head $prefix        
        
        ::pwtk::fileMustExist $prefix.crd  "neb.x CRD"
        ::pwtk::fileMustExist $prefix.path "neb.x PATH"

        # path info
        foreach {var value} [::pwtk::path::energies $prefix.path] { set $var $value }

        set Eact_fwd_neb [expr $::pwtk::ha2ev*($E($iTS) - $E(1))]
        set Eact_bck_neb [expr $::pwtk::ha2ev*($E($iTS) - $E($nImages))]

        # input data for ARTn
        
        CONTROL " calculation = 'relax'  prefix = 'artn.$prefix' "
        if { $nstep eq {} } {
            infoMsg "increasing CONTROL's nstep to 400"
            CONTROL { nstep = 400 }
        }
        ATOMIC_POSITIONS_fromCRD $prefix.crd $iTS

        # if the ARTN_PARAMETERS namelist is empty, use the default            
        if { [::pwtk::input::namelistVars_ ARTN_PARAMETERS] eq {} } {
            ARTN_PARAMETERS $::pwtk::default_ARTN_PARAMETERS
        }
        
        # run the ARTn pw.x calculation and extract the energy
        artn on
        set E(artn.TS) [pwo_totene [runPW artn-relax.$head]]
        artn off
    }

    # N.B. NEB path energies are in Hartrees, hence the factor 2.0
        
    set Eact_fwd_artn [format %.3f [expr $::pwtk::ry2ev*($E(artn.TS) - 2.0*$E(1))]]
    set Eact_bck_artn [format %.3f [expr $::pwtk::ry2ev*($E(artn.TS) - 2.0*$E($nImages))]]

    # printout
        
    print "Data from the neb.x calculation ($prefix.path):\n\nimage        energy (eV)\n"
    for {set i 1} {$i <= $nImages} {incr i} {
        print [format "%5i    %15.6f" $i [expr $::pwtk::ha2ev*$E($i)]]
    }
    print "
climbing image = $iTS

NEB activation energy (->) = E(TS) - E(IS) = [format %7.3f $Eact_fwd_neb] eV
NEB activation energy (<-) = E(TS) - E(FS) = [format %7.3f $Eact_bck_neb] eV


Refined values from the ARTNn pw.x calculation:

ARTn activation energy (->) = E(TS) - E(IS) = [format %7.3f $Eact_fwd_artn] eV
ARTn activation energy (<-) = E(TS) - E(FS) = [format %7.3f $Eact_bck_artn] eV
"

    # plot
    
    neb_plot -artn $Eact_fwd_artn artn.$head

    return $Eact_fwd_artn
}