6. Scripts
6.1. phsh.py
6.1.1. Command line usage
The phsh.py script is placed into the system PATH
during installation of the
phaseshifts package. It can then be used from the command line, e.g. phsh.py --help
will produce a list of command line options:
usage: phsh.py [-h] -b <bulk_file> -i <slab_file> [-t <temp_dir>] [-l <lmax>]
[-r <start_energy> <final_energy> <step>] [-f <format>]
[-S <subdir>] [-v] [-V]
phsh - quickly generate phase shifts
Created by Liam Deacon on 2013-11-15.
Copyright 2013-2014 Liam Deacon. All rights reserved.
Licensed under the MIT license (see LICENSE file for details)
Please send your feedback, including bugs notifications
and fixes, to: liam.deacon@diamond.ac.uk
usage:-
optional arguments:
-h, --help show this help message and exit
-b <bulk_file>, --bulk <bulk_file>
path to MTZ bulk or CLEED *.bul input file
-i <slab_file>, --slab <slab_file>
path to MTZ slab or CLEED *.inp input file
-t <temp_dir>, --tmpdir <temp_dir>
temporary directory for intermediate file generation
-l <lmax>, --lmax <lmax>
Maximum angular momentum quantum number. [default: 10]
-f <format>, --format <format>
Use specific phase shift format i.e. 'cleed', 'curve'
or 'none'. Choose 'curve' if you wish to produce
XYY... data for easy plotting. <format> is case
in-sensitive. [default: 'cleed']
-r <energy> [<energy> ...], --range <energy> [<energy> ...]
Energy range in eV with the format:
'<start> <stop> [<step>]', where the <step> value is
optional. Valid for relativistic calculations
only. [default: (20, 600, 5)]
-S <subdir>, --store <subdir>
Keep intermediate files in subdir when done
-v, --verbose set verbosity level [default: None].
-V, --version show program's version number and exit
6.1.2. CLEED compatibility
It is possible to use this script to generate phase shift files iteratively during a geometry search for the CLEED package. In this manner phase shifts will be generated at the beginning of each cycle of the search.
For this to work, the environment variable CSEARCH_LEED
must point to the
phsh.py
script, which will invoke the LEED program in PHASESHIFT_LEED
after execution. When operating in this mode, the following assumptions are made:
-b <bulk_file> option is not needed and the filename is assumed by changing the file extension of <slab_file> to ‘.bul’
-f CLEED format is implied.
The generated phase shifts are stored in the directory set by the
CLEED_PHASE
environment variable, however a named copy with the iteration number (read from the matching ‘.log’ file) will be placed in the same directory as the <slab_file>.<lmax> is equal to 10, unless additional parameter syntax is given in the CLEED *.inp file. To use phase shift specific lmax values, then add a new line with:
lmax: <phase_shift> <lmax>for each phase shift you wish to have a different lmax to that of the default.
The element and oxidation of each atom in a model is guessed by reading the phase shift tag from the CLEED input file. For example:
po: O_2-_COOH ...will be interpreted as a Oxygen with a -2 oxidation state and with a unique name tag of “O_2-_COOH” to show it is in a carboxylic group. Note the ‘-’ may be at the beginning or the end of the oxidation sub-string. If no oxidation state is given then the atom is assumed to have zero charge.
The muffin-tin radius of the phase shift species is guessed from lines with:
rm: <phase_shift> <radius>However, if no value is found the radius is guessed from the ELEMENTS dictionary within
phaseshifts.elements
depending on the valency of the given phase shift element.
A full list of additional syntax to customise the generation of the phase shifts
when using CLEED input files can be found in
phaseshifts.leed.Converter.import_CLEED()
.
Note
If the PHASESHIFT_LEED
environment variable is not found, but
CLEED_PHASE
is, however, found then the program will place the generated
files in this directory unless a specific -S <subdir>
is provided.