TABLE OF CONTENTS
::pwtk::vc-relax
SYNOPSIS
proc ::pwtk::vc-relax {engine args} {
PURPOSE
Perform a 'vc-relax' pw.x or cp.x calculation:
- engine = pw.x or cp.x (or pw or cp)
- args = ?-npass N? head ?unit? ?coor?
USAGE
vc-relax engine ?-npass NUMBER? head vc-relax engine ?-npass NUMBER? head coor vc-relax engine ?-npass NUMBER? head unit coor
OPTIONS
- -npass NUMBER ... number of consecutive vc-relax calculations on a given structure
ARGUMENTS
- engine -- pw.x or cp.x (or pw or cp)
- head -- the rootname for the I/O files (beware that CONTROL's "prefix" and "outdir_postfix" are set to $head)
- unit -- (optional) unit for ATOMIC_POSITIONS
- coor -- (optional) coordinates for ATOMIC_POSITIONS
RETURN VALUE
The name of the output file, i.e., vc-relax.$head.out
SIDE EFFECTS
"calculation", "prefix", "outdir_postfix", and "nat" are set to appropriate values.
SOURCE
# check the engine argument engine_ # parse the ?-npass value? option set options { {npass.arg 1 "number of consecutive vc-relax runs for a given case"} } set nargmin 1 set nargmax 3 set usage "engine ?-npass npass? head ?unit? ?coor?" parseOpt_ checkOTypeStrict_ -npass $opt(npass) {number posint} "positive integer" # parse head ?unit? ?coor? xrelaxArgs_ # printout for npass > 1 vc-relaxPrintout_ # run the 1st calc set out [xrelax_ vc-relax $runCmd $head] # run subsequent calcs vc-relaxSubsequent_ return $out }