frobnicate - Run a sequence of feff8 calculations
frobnicate [options] [template_file]
command line switches:
switch description default ----------------------------------------------------------------- -feff/-nofeff perform feff calculations yes -archive/-noarchive build archive file yes -mail/-nomail mail archive to user yes -test = -nofeff -noarchive -nomail no -q suppress screen messages no -h print short help to STDOUT -help print long help to STDOUT
This tells frobnicate whether to actually run feff8. The default is to do so.
This tells frobnicate whether to actually build an archive from the
driectory tree. The default is to do so. Specifying -noarchive
also toggle the -nomail switch.
This tells frobnicate whether to send the archive by email. The default is to do so.
Specifying this is the same as specifying -nofeff -noarchive
-nomail at the command line.
This causes a short help message to be printed to the screen.
This causes the full help message to be printed to the screen.
The primary motivation for this program is to organize and automate a large sequence of feff8 calculations. This is done in the following steps
Read in the template file and parse the frobnicate instructions. From these make a list of computational chores that need to be done and the order in which to do them. Also make a subdirectory in which all the calculations will be saved.
Step through the list. For each item in the list, make a subdirectory in the directory tree for this run of frobnicate. From the content of the template file and the instructions in it, generate a feff.inp file suitable for the calculation and store in the appropriate subdirectory. Then make a bunch of symbolic links as necessary to use relevant parts of previous calculations. Finally, change directories to the appropriate subdirectory and run the feff calculation.
Once all the items in the list have been done, pack the entire directory structure up into a tarred and gzipped archive.
Mail the archive back to the owner of the process as a MIME attachment.
Most of the template file is just a feff.inp file. In particular, the template file contains the title lines and the potentials and atoms lists. The template file should not contains any of the following cards:
CONTROL POLARIZATION ELLIPTICITY SCF XANES FMS LDOS RPATH EXAFS
These are the cards that are written by frobnicate. If you explicitly specify these in the template file, you may interfere with the proper operation of frobnicate.
Keywords are specified in the template file by lines beginning with
*%%. Each keyword takes arguments, some or all of which may be optional. A
keyword argument always begins with a colon (:) and the argument is followed by its value. White space separates
argumnets and their values. If a value itself contains whitespace, then you
need to quote the value with single quote marks.
The order of the keywords is very important. The ordeer in which keywords are found in the template file is the order in which the calculations are performed. Thus SCF must come before DOS, XANES, or EXAFS. It is not useful to have more than one SCF line because subsequent SCF calculatiosn would just overwrite the previous one. However, it is useful -- in fact the entire point of frobnicate -- to have more than one of the other lines.
This keyword is used to specify operational parameters for this frobnicate
run. Its arguments are :molecule, :id, :email, and :feff.
:molecule takes a value of 0 or 1 depending on whether your material is a solid or a
molecule. The default is 0, a solid.
:id is an identifier string used to describe this frobnicate run. Its most
important function is as the name of the directory tree which will contain
this frobnicate run. For example, a calculation on gallium nitride might
use the :id string GaN. The default is a pseudorandom 5 digit number.
:email takes the email address where you would like the archive sent once the run
is complete.
:feff takes the name by which feff8 is invoked on the remote host. The default is feff8. If feff8 is installed on that machine as something else, then you must
specify this argument.
You may have more than one params line and, unlike the other keywords, its order in the list of keywords does not matter.
This line tells frobnicate to compute self-consistent potentials. This is a
prerequisite to any of the other calculations and should always be the
first item in the list. Its argumnets are :r and
:k and take the maximum values of those parameters in the calculation.
This line is used to compute the density of states functions for each of
potential types. Its arguments are :r, :k, :emin,
:emax, and :eimag. The last three are the arguments for the LDOS card in the feff.inp file.
This line is used to compute a XANES spectrum. Its arguments are
:r, :k, :polarization and :ellipticity. :polarization
can take any of x, y, z, indicating a polarization vector in that direction. It can also take one
of xy, xz, yz, indicating circular polarization averaged over that plane. In the case of
circular polarization the ellipticity will be set appropriately. :polarization can also be set explicitly using quotation marks, as in '1 1 1'. :ellipticity can also be explicitly set in that manner.
A very common use of frobnicate is to make a sequence of XANES calculations
with increasing values for :r in order to study convergence with respect to radial cluster size.
This line is used to compute EXAFS fitting standards. It takes the same arguments as XANES. Please note that you should set the ff2chi flag in the PRINT card to 3 because you may be able to use the feff.bin on your home computer. The PRINT card is not one of the cards controlled by frobnicate and so must be set by you somewhere else in the template file.
The lines in the template file relevant to frobnicate are denoted by
comment strings, i.e. lines which begin with the comment character
recognized by FEFF, *.
Lines starting with this string are interpreted by frobnicate as lines containing frobnicate instructions. These lines will not be written to the output feff.inp files.
The two lines starting with this string denote the boundries of the region where frobnicate will insert FEFF cards appropriate to each calculation. You should have two such lines, no more and no fewer, and they should be contiguous (i.e. no lines should come between them). These lines will be written to the output feff.inp files.
These are frobnicate comment lines. They are ignored by frobnicate and are not written to the output feff.inp files.
All other lines are passed verbatim to the output feff.inp files.
Here is an example of the template file for a sequence of calculations on gallium nitride. The XANES spectrum is calculated at each polarization and at each of four cluster sizes.
* * frobnicate stanza for calculations on gallium nitride * * *%% begin FROBNICATE keywords *%% params :molecule 0 :id 'GaN' *%% params :email 'bruce.ravel@nist.gov' :feff 'feff8' *%% SCF :r 4.0 *%% DOS :r 5.0 :emin -30 :emax 20 :eimag 0.1 *%% XANES :polarization z :r 2.0 *%% XANES :polarization xy :r 2.0 *%% XANES :polarization z :r 3.0 *%% XANES :polarization xy :r 3.0 *%% XANES :polarization z :r 4.0 *%% XANES :polarization xy :r 4.0 *%% XANES :polarization z :r 5.1 *%% XANES :polarization xy :r 5.1 *%% EXAFS :r 5.1 *%% end FROBNICATE keywords
* * The next few lines are just normal feff cards... TITLE GaN * Ga K edge energy = 10367.0 eV EDGE K S02 1.0 * pot xsph fms paths genfmt ff2chi PRINT 1 0 0 0 0 3 * ixc [ Vr Vi ] EXCHANGE 0
*%% --- FROBNICATE: inserted cards start here ------------ *%% --- end of cards inserted by FROBNICATE --------------
This is followed by the potentials and atoms lists which is have left out of this example for the sake of brevity.
Lots of stuff, no doubt...
Bruce Ravel, bruce@phys.washington.edu
http://feff.phys.washington.edu/~ravel/
http://feff.phys.washington.edu/~ravel/frobnicate/