ELECTRON DIFFRACTION IN ATOMIC CLUSTERS (EDAC)  
for the simulation of Photoelectron Diffraction (PD)  
REFERENCE MANUAL 

Note: click on the hyperlinks to navigate throughout the manual 

For questions or suggestions, please contact F. Javier García de Abajo 
INTRODUCTION 
EDAC is a multipurpose code that implements multiple scattering (MS) of electrons in atomic clusters. This manual describes its capabilities
concerning corelevel photoelectron diffraction (PD) in solids
and atomic clusters, including
relativistic effects (i.e., spinflip during scattering and spinorbit
coupling in the initial states), magnetic exchange effects
(the program is able to deal with two spin components separately),
and nonspherical atoms (this requires special input from the user
related to the atomic scattering matrices). Angular and energy scans can be performed with flexibility.
EDAC is written in C++ and it is rather machine independent.
It can be run in many platforms, including Unix, Linux, and
Windows, and it can be compiled with GNU g++ and SUN C++
compilers.
The cluster approach followed in this code consists in
representing the solid by a finite number of atoms N surrounding the emitter atom.
The finite inelastic mean free path limits the range of distances up to which the photoelectron
can travel within the solid without suffering inelastic collisions,
and this defines a finite volume which justifies the use of
an atomic cluster.
The muffintin model is assumed here, so that the atoms are
represented by their scattering matrices and they are considered
to be embedded in an homogeneous region of constant
potential. The atomic scattering matrices are completely
determined by the scattering phase shifts for spherical
atoms, but EDAC can deal with both spherical and nonspherical
atoms. In particular, the code can calculate scattering
phaseshifts internally for spherical atoms, provided
their socalled muffintin potentials are given in the input.
Also, it can calculate approximate muffintin potentials (and therefore atomic phase shifts and scattering matrices as well)
for specific cluster arrangements using information of freeatom
potentials (stored internally) and standard averaging procedures.
The MS expansion is performed up to an order n specified by
the user. Different iteration techniques are available in the code.
Overall, the computation time is proportional to
the number of complex multiplications that have to be performed,
and this in turn is T_{iter} ~ nN^{2}(l_{max}+1)^{3},
where l_{max} is the maximum value of the
orbital angular momentum number.
Alternatively, an exact solution of the selfconsistent MS equations can be performed
in a time proportional to T_{exact} ~ N^{3}(l_{max}+1)^{6} (this is computationally very demanding and can be performed only
for small cluster sizes and small values of l_{max}).
The value of l_{max} is adjusted dynamically
during the calculation for each atom and each photoelectron
energy, so that negligible matrix elements or scattering
phase shifts are not used in order to avoid investing
computation time to calculate zeros.
For more details on the theory underlying these issues,
the user is referred to García de Abajo, Van Hove, and
Fadley, Phys. Rev. B 63, 75404 (2001).
Once the code has been compiled and an executable file named edac has been created, EDAC can be run simply by typing edac filename1 filename2 ... where filename1, filename2, ...
are input files containing commands to
be performed sequentially (normally, only one input file will be used).
EDAC input files are preferably given the extension .ms
(for multiple scattering),
so that both edac sample.ms and edac sample will use file sample.ms as input, although the latter option will use file sample is file sample.ms does not exist.
If no file is specified, the program starts in inline mode and the instructions are directly
read from the keyboard (this can be used within Unix systems in
combination with echo or as cat sample.ms  edac;
to exit this mode you simply have to type end).
The format of EDAC instructions is relatively flexible.
A detailed description is given below.
The input file has to contain information on the following
topics:
Atomic cluster. The cluster atomic coordinates and the type of atoms (i.e., their chemical nature or alternatively the type of scattering properties).
Mobility of beam and analyzer. How the sample moves with respect to the beam and the analyzer.
Energies and angles of emission. The range of energies and angles of emission of the photoelectrons.
Incident beam. The angle of incidence and polarization of the incoming light.
Emitters. The atoms that are emitters and their scattering properties when they are ionized (if various emitters are selected, the program calculates the sum of photoelectron intensities from each of them).
Initial core level. The initial core level from which the photoelectron is emitted. Also, whether the sum over sublevels is required.
Atomic scattering parameters. The scattering properties of the different atoms in the form of input files with scattering phase shifts, muffintin potentials, or scattering matrices. Alternatively, the muffintin potentials of the cluster atoms can be calculated internally (provided the atomic numbers or atomic symbols of those atoms have been specified) using the command muffintin.
Multiple scattering parameters. l_{max}, the type of iteration method, the orders of iteration, the muffintin zero, the temperature, and the electron inelastic mean free path.
Actual PD calculation. Invoke the command scan pd ... that performs the PD calculation.
The order of the different commands is to some extent arbitrary,
although many restrictions apply (e.g., a cluster must be defined
before invoking a PD calculation). Therefore, the structure
of the input file suggested by the above list is recommended.
The calculated farfield photoelectron emission intensities correspond
to the triplydifferential energysolidangle distribution probability
per unit time in a.u., assuming that the external electric field has
an strength of 1 a.u.
The units of the rest of the input and output
magnitudes are explained below.
Finally, the MS calculation is performed for an atomic cluster
surrounded by an infinite space of constant potential. The value of the
potential outside the cluster is just the muffintin zero.
The effect of the surface is taken into account by introducing
a transmission factor (obtained from the transmission of an electron
through a step barrier of height equal to the muffintin zero)
and by transforming the directions of emission from/to the vacuum to/from
inside the solid via the corresponding refraction at the surface
barrier. A shift in energy corresponding the the potential step is also
incorporated.
Here are some examples of input files along with their
respective output (click on the chosen example for more details):
General sample of input file. This contains most of the common features of the program and all of the commands that are mandatory to run a PD calculation. It contains comments that indicate what can be changed to the convenience of the user.
A full list of commands in alphabetical order is included at the end of this document with links to more detailed
explanations and discussions.
ATOMIC CLUSTER SPECIFICATION 
EDAC evaluates the MS series for a photoelectron in
the presence of an atomic cluster. The latter can be specified
either in an external output file or by means of commands that add/remove individual atoms, rows
of atoms, planes of atoms, or an entire semiinfinite crystal
to/from the cluster. These commands are explained below in detail.
The number of atoms that are stored in the program is controlled
by the parameter R_{max} (see below). When an atom, row of atoms,
layer of atoms, or semiinfinite crystal
is added to the cluster, only the coordinates of those atoms that are
closer than R_{max} to a given reference point
(x_{r}, y_{r}, z_{r}) are actually stored in the cluster.
When running a photoelectron diffraction calculation, not all
the atoms stored in the cluster are actually used, but just those
whose distance to the emitter is less than the current
value of R_{max} (the user may change this several
times during the execution of the program).
Furthermore, the maximum number of atoms used in
photoelectron diffraction calculations is also limited
by the command cluster natoms N.
Besides its coordinates, each atom is characterized by a label that
identifies the kind of scatterer that it represents. The meaning
and format of this label are discussed below.
Cluster commands 
Adding and removing atoms, layers of atoms, and
semiinfinite crystals
Note: the parameters θ_{magnet} and φ_{magnet} are only required
when the flag orientation on has been invoked (it is off by default).
add cluster atom i units2 x y z [θ_{magnet} φ_{magnet}]
Add an atom of scatterer type i to the cluster at the position (x,y,z), where the coordinates are
given in units of units2.
If an atom already exists at that position, this
command just changes the atom type to i.
If the distance from (x, y, z) to the reference point
(x_{r}, y_{r}, z_{r}) is larger than R_{max},
this command is ignored.
The parameters θ_{magnet} and φ_{magnet} specify the
orientation of the magnetic moment of the atom and they
have to be given if and only if the flag orientation on has been invoked. Only scatterers with nonnegative i can be defined; negative i's refer to virtual atoms,
which do not scatter the electron: this can be used to
create sources of photoelectrons at places where there is
no physical atom.
add cluster layer i units2 x y z a b α_{1} α_{2} [θ_{magnet} φ_{magnet}]
Add a layer of periodically ordered atoms of scatterer type i to the cluster. The layer is perpendicular
to the zaxis and the 2D unit cell is defined by two
vectors a and b of lengths a and b,
respectively (see figure).
The angle between the xaxis and
the first unitcell vector (a) is α_{1}.
The angle between the first vector a and the
second one b is α_{2}.
The coordinates of the layer atoms are given by
(x +n acos(α_{1})
+m bcos(α_{1}+ α_{2}), y +n asin(α_{1})
+m bsin(α_{1}+ α_{2}), z)
in units of units2,
where n and m are integers.
All atoms of the (infinite) layer whose distance to the reference point
(x_{r}, y_{r}, z_{r}) is less than R_{max} will be added to the cluster.
If no value of R_{max} has
been specified, the program stops.
The parameters θ_{magnet} and φ_{magnet} specify the
orientation of the magnetic moment of the atoms and they
have to be given if and only if the flag orientation on has been invoked.
add cluster halflayer i units2 x y z a b α_{1} α_{2} φ [θ_{magnet} φ_{magnet}]
Add a half layer to the cluster.
The parameters of this command are the same as in add cluster layer ....
Only those atoms of the layer with coordinates
(x_{a}, y_{a}, z_{a}) that satisfy the condition
(xx_{a}) cos(φ)+
(yy_{a}) sin(φ)>=0
are added to the cluster.
Here, φ is the angle between the
half layer boundary and the x direction.
This command is useful to define clusters that represent
stepped surfaces.
add cluster row i units2 x y z a θ_{row} φ_{row} [θ_{magnet} φ_{magnet}]
Add a row of periodically arranged
atoms of scatterer type i.
The row is parallel to the polar
direction (θ_{row}, φ_{row}), with an atom at
(x, y, z)
and spacing a, both in units of units2.
All atoms of the (infinite) row whose distance to the reference point
(x_{r}, y_{r}, z_{r}) is less than R_{max} will be added to the cluster.
If no value of R_{max} has
been specified, the program stops.
The parameters θ_{magnet} and φ_{magnet} specify the
orientation of the magnetic moment of the atoms and they
have to be given if and only if the flag orientation on has been invoked.
add cluster surface i units2 x y z a surfacetype [c] [θ_{magnet} φ_{magnet}]
Add a semiinfinite crystal of atoms of scatterer type i.
One of the outermost surface atoms is located at
(x, y, z)
and the lattice constant is a, both in units of units2, for sc, bcc, and fcc crystals,
in which case the parameter c does not have to be given.
For hcp crystals (see below) the parameter c has to be
given, and it refers to the distance between (111) planes, whereas a refers to the distance between nearest neighbors within
(111) planes rather than to the lattice constant.
The crystal extends towards the negative z region.
All atoms of the semiinfinite crystal whose distance to the reference point
(x_{r}, y_{r}, z_{r}) is less than R_{max} will be added to the cluster.
If no value of R_{max} has
been specified, the program stops.
The surface is of type surfacetype, which can take one of
the following values:
sc100, bcc100, fcc100: in this case x  [100], y  [010], and z  [001]
sc110, bcc110, fcc110: in this case x  [110], y  [001], and z  [110]
sc111, bcc111, fcc111, hcp0001: in this case x  [112], y  [110], and z  [111]
The crystal structure is of type simple cubic (sc), bcc, or fcc in each case (click on these words for graphical details). The special case of hcp(0001) surfaces is also included. The parameters θ_{magnet} and φ_{magnet} specify the orientation of the magnetic moment of the atoms and they have to be given if and only if the flag orientation on has been invoked. Diamond, NaCl, and other types of lattices can be built as a superposition of sc, bcc, and fcc lattices.
remove cluster atom units2 x y z
Remove an atom from the cluster at the position
(x, y, z)
(this has no effect if there is no atom at that position).
If (x, y, z)
(x_{r}, y_{r}, z_{r})
is larger than the current value of R_{max}, this command
is ignored.
remove cluster layer units2 x y z a b α_{1} α_{2}
Remove atoms from a cluster layer. The sites of
the layer atoms selected by this command are the same as in the command add cluster layer ... with the same parameters.
If no value of R_{max} has
been specified, the program stops.
remove cluster row units2 x y z a α_{1} α_{2}
Remove the atoms that are at the position of those included by cluster add row ... with the same parameters.
If no value of R_{max} has
been specified, the program stops.
clear cluster
Remove cluster coordinates and list of emitters.
Limiting the number of atoms
cluster natoms N
Set the maximum number of atoms N that can be included
in actual calculations. If this is smaller than the
number of currently stored cluster atoms,
the program selects N atoms chosen as close as possible
to the emitter(s) or the reference point when running the commands scan pd ... or cluster output ...,
respectively. The flag cluster surface on/off can be relevant here.
Use N=all to include all stored atoms. Caution: Limiting the number of atoms using this command
can break the symmetry of the cluster, and therefore, also
the symmetry of the diffraction pattern. Default: cluster natoms all.
cluster referencepoint units2 x_{r} y_{r} z_{r}
Set the values of the coordinates of the reference point
(x_{r}, y_{r}, z_{r}).
This is not required to coincide with any cluster atom. Default:
(x_{r}, y_{r}, z_{r})=
(0,0,0).
cluster Rmax units2 R_{max}
Set the maximum distance R_{max} from the emitter (while running a PD calculation)
or from the reference point (while writing the cluster to a file or while running add cluster ... or remove cluster ... commands)
up to which atoms are considered to belong to the cluster.
Atoms further away are ignored.
The command cluster surface on/off determines the actual shape of the selected cluster (see figure
below, where the red atom acts as the reference point). Default: R_{max}=infinity.
cluster surface on/off
Either the keyword on or off must be used.
When this flag is off, the definition of distance between
atoms i and j used to compare with R_{max} has the usual geometrical meaning
r_{i}r_{j}.
However, when this flag is on that distance is redefined as
r_{i}r_{0}
+ (z_{surf}z_{i}),
where z_{surf} is the position of the surface
defined by the command cluster surface z_{surf} and r_{0} is either the reference point or an emitter.
When the number of atoms is restricted by either cluster Rmax units2 R_{max} or cluster natoms N and
this flag is on, the shape of the atomic cluster actually
selected has a parabolic shape with its focus at the position
of the emitter atom (in PD calculations)
or at the reference point (rest). Default: off.
cluster surface units2 z_{surf}
The surface is taken at z=z_{surf} in units
of units2.
This controls the inelastic attenuation
of the photoelectrons before escaping from the sample. See also cluster surface on/off. Default: z_{surf}=0.
Displacing and rotating the cluster
displace cluster units2 x y z
Displace all the atomic coordinates of the cluster by adding to them
the vector (x, y, z).
rotate cluster x/y/z φ
Perform a rotation around the axis x, y, or z (the axis of rotation passes by the origin (0,0,0) in all cases).
The angle of rotation is φ.
For φ>0, the rotation is
counterclockwise as observed from the positive direction
of the corresponding axis. Example of use: rotate cluster z 30. This rotates
the cluster 30 degrees around the z axis
in the counterclockwise direction.
Reading/writing cluster from/to a file
cluster input filename
Discard any previous information on the
cluster coordinates and read new cluster
coordinates from file filename with a specific format.
cluster output units2 filename
Print out the coordinates of the first N atoms
selected by the command cluster natoms N (i.e., those that are closer than R_{max} to the reference point
(x_{r}, y_{r}, z_{r}))
in file filename (if no value of N has been specified, it prints out all
stored atoms).
They are written in units of units2.
The format of this file is the same as in cluster input file,
so that it can be used as input with that command.
Miscellaneous
report natoms
Print current value of N selected by the command cluster natoms N fixed either by the user
(if no calculation has been performed after using
the commands cluster natoms N or cluster Rmax units2 R_{max})
or by the last PD calculation (otherwise).
This shows the total number of atoms stored in the cluster as well.
Cluster datafile format 
The file read by cluster input filename or written by cluster output filename has the following structure:
N units2 
L_{1} T_{1} x_{1} y_{1} z_{1} [θ_{1} φ_{1}] 
L_{2} T_{2} x_{2} y_{2} z_{2} [θ_{2} φ_{2}] 
... 
L_{N} T_{N} x_{N} y_{N} z_{N} [θ_{N} φ_{N}] 
where N is the number of atoms in the cluster,
the coordinates
(x_{j}, y_{j}, z_{j})
are given in units of units2, L_{j} are atomic
labels (1 through N without repetition),
and T_{j} is the type of scatterer i that atom j represents.
The parameters θ_{j} and φ_{j} specify the
orientation of atomic magnetic moments (if the atom
in question has a magnetic moment at all) and they
have to be given if and only if the flag orientation on has been invoked (it is off by default).
The actual scattering properties of each atom are specified by the command scatterer T_{j} ... and properties for all T_{j}'s must be defined before a PD
calculation is performed.
Alternatively, T_{j} can be either an atomic number
or an atomic symbol, and this must be done in combination with
the command muffintin (click here for further details).
The labels L_{j} change when performing calculations
or when writing the cluster to a file. However, they can
be used immediately after reading a cluster file to
specify the list of emitters via the command emitters n i_{1} L_{1} ...
Example of cluster file (for nonoriented atoms): oxygen (blue atoms)
on top of tungsten (red atoms):

The yellow atom (tungsten) is at the position (0,0,0).
The scatterer type labels (74 and 8 in the example) are changed when the command muffintin is
invoked to construct the muffintin potentials.
The command cluster output ... can be used after that to see what the new labels are.
DESCRIPTION OF THE BEAM AND THE ANALYZER 
The angles of incidence of the incoming photon beam and the angles
of emission of the photoelectron are represented in the following figure:
Besides the mode of mobility, the input
file has to specify the electron energy range
and angular range of emission and the beam incidence direction and polarization.
Next, a description of the modes of angular scans that are supported by
the code is given, along with an explanation of the relevant commands.
Mobility of beam and analyzer 
Various different general modes of motion of detector and sample are supported by this code. In all of them, the polar emission angle θ refers to the polar direction of the detector with respect to the surface normal (the zaxis of the cluster), and the azimuthal emission angle φ refers to the azimuthal direction of the detector with respect to the x axis (all atomic positions are expressed in terms of their Cartesian coordinates (x, y, z)). A detailed description of each mode of motion follows:
Move only the sample: In this mode, the angle between
the incoming beam and the analyzer is kept constant and equal
to the input parameter β.
The incidence angles θ_{i} and φ_{i} (defined by incidence ... commands) are ignored. The sample moves in such a way
that the surface normal is always contained in the plane determined
by the incidence and emission directions, and the polar angles of
emission are θ=β and φ=0 for normal incidence.
The azimuthal angle is measured with respect to the x axis.
This mode is selected with the command movable cluster (see figure below).
Move only the analyzer (the cluster is fixed): In this mode, the incoming beam is fixed
with respect to the sample, so that by varying the angles of emission θ and φ, only
the analyzer moves.
The incidence direction is kept constant with respect to the sample,
so that the parameter β is ignored.
This mode is selected with the command fixed cluster (see figure below).
Move both the sample and the analyzer: In this mode, the sample moves with the azimuthal angle of emission φ, while the analyzer moves with
the polar angle of emission θ.
The direction of incidence
(i.e., from where the photon beam is coming)
with respect to the surface normal
is (θ_{i}, φ+π)
when the direction of emission
is (θ,φ).
The azimuthal angle of incidence φ_{i} and the angle β are ignored.
This mode is selected with the command semimovable cluster (see figure below).
Moreover, some specific geometries for particular beamlines have been implemented (beamline geometries that are not contained in this list can be implemented upon request):
Beamline 7.0.1 of the ALS synchrotron (Berkeley).
The polar angle of emission θ is referred to the surface normal (i.e., the z axis) and the
azimuthal angle of emission φ is relative to the x axis. The polar axis of rotation
is the y axis. Positive azimuthal rotations
(i.e., positive φ's)
are clockwise as observed from the surface normal.
Positive polar rotations are also clockwise when observed from
the direction opposite to the beam.
(See ALS web site for further details.)
This mode is selected by using the command beamline ALS7.0.1.
Aebi's set up. This is similar to the movable cluster mode, but the beam, the analyzer,
and the surface normal will not be in the same plane.
See the following sketch for more details:
The emission angles selected
in the input file will correspond to rotations of the
manipulator as indicated in the figure. These angles are
therefore the polar direction with respect to the surface
normal. However, angles of incidence must be given
with this command that specify the polar direction of the photon
beam with respect to the electron analyzer,
(θ_{p}, φ_{p}).
This mode is selected by using the command beamline Aebi θ_{p} φ_{p} (p stands for photon).
The following schematic representation can help to visualize this.
Azimuthal/polar rotations are represented by brown/pink double arrows.
The sample and the analyzer move when these arrows are sitting on the
analyzer (blue arrow) and near the surface normal (black line),
respectively.
The commands that control the mobility of the beam and the
analyzer during angular scans are:
beta β
Set the angle between the direction
of the incoming light and the direction
of scattering/emission β (see figure above).
This parameter is only effective when the movable cluster option has been selected, and it is ignored otherwise. Default: β=0.
fixed/movable cluster
The cluster does not/does move when changing the
direction of emission
(θ, φ).
See the command beta β and
the schematic figure above.
With movable the angle between incident beam
and analyzer is kept constant
and equal to β;
everything happens as though only the target
moved when changing the direction of emission;
the polar angles of emission for normal incidence are
(β,0)
with respect to the surface normal (i.e., the positive zaxis).
With fixed, only the analyzer moves and the target is fixed
with respect to the incident beam. Default: fixed cluster.
semimovable cluster
The angle between incoming beam and analyzer
is not kept constant, and θ refers to
the analyzer angle with respect to the surface
normal (positive zaxis). (See figure above.) The cluster rotates around z with φ, and φ=0
stands for the analyzer lying in the xz plane
toward x>0. Default: fixed cluster.
beamline ALS7.0.1
Uses the geometry of beamline 7.0.1 of the ALS (Berkeley). See above for further details.
beamline Aebi θ_{i} φ_{i}
Uses the geometry of Aebi's set up. See above for further details.
The last mode from this list that has been given at a certain point in the input file is the one that is active after that point.
Energy and angle scanning parameters 
The energy range of the photoelectron and the angles of emission are specified by means of the following commands:
emission angle normal
Set the polar and azimuthal angles of emission to θ=φ=0.
emission angle phi φ_{i} φ_{f} n_{φ}
Specify the azimuthal angle of emission φ, which takes values between φ_{i} and φ_{f}, and n_{φ} is
the total number of equallyspaced φ angles. Default: n_{φ}=0.
emission angle theta θ_{i} θ_{f} n_{θ}
Specify the polar angle of emission θ, which takes values between θ_{i} and θ_{f}, and n_{θ} is
the total number of equallyspaced θ angles. Default: n_{θ}=0.
emission angle window Δ
This can be used to simulate a finite acceptance angle in
the photoelectron detector. The halfwidth angle of the
acceptance cone is given by Δ. Default: Δ=0.
emission energy units1 k_{i} k_{f} n_{k}
Specify the range of photoelectron energy scanned by the analyzer, where k_{i} and k_{f} are the initial and final
energy (or momentum) in units of units1, n_{k} is the total number of equallyspaced
energies (if units1 is energy) or
momenta (if units1 is momentum).
The energy (momentum) is given relative to vacuum, and this
differs from the value inside the solid if a muffintin zero potential has been specified. Default n_{k}=0.
Incident beam characterization 
By default, the incidence is normal to the surface and the polarization
is linear along the x axis. This can be changed to any direction
of incidence and light polarization using the commands described below.
The polarization can be any of those represented in the following figure:
Here are the commands that can be used to specify the direction of
incidence of the light and its polarization:
incidence θ_{i} φ_{i}
Set the values of the polar direction
(θ_{i}, φ_{i})
of the beam (i.e., from where the photons are coming). Default: θ_{i}= φ_{i}=0. (See figure above.)
polarization α δ
Choose arbitrary polarization of the incident light
described by angles α and δ.
The light polarization vector is given by
[e_{θ} cosα +e_{φ} sinα exp(iδ)],
where e_{θ} and e_{φ} are unit vectors normal to the direction of
propagation of the light and parallel to the
polar and azimuthal polar directions, respectively. Default: α=δ=0.
polarization direction θ_{ε} φ_{ε}
Choose incoming linearlypolarized light defined by a
real polarization vector parallel
to the polar direction
(θ_{ε},φ_{ε}).
polarization LCP/RCP
Chose left/right circularlypolarized light
(α=π/4, δ=π/2 for LCP
and δ=π/2 for RCP). (See figure above.)
polarization LPx/LPy
Choose linear polarization with the polarization
vector parallel/perpendicular to the plane of scattering, which is
determined by the direction of the light and the surface normal
(i.e., δ=0, α=0 for LPx and α=π/2 for LPy). LPx and LPy correspond to p and s polarization,
respectively (see figure above).
Spinpolarized detector 
The calculations performed by the program are done for unpolarized electrons when the scatterers and emitters do not include any electronspin information. However, when any of the scatterers incorporates magnetic exchange effects or spinorbit coupling, or when any of them is defined by an externally introduced tmatrix with two electronspin components, or when the initial core sublevels include information on electron spin (that is, by selecting a given spin using initial ms0 ... or initial mj0 ...), then the PD calculations performed by the program are done for the two spin components separately. The resulting photoelectron intensity is the sum of the two spin intensities, unless a spinpolarized detector is simulated using the following commands:
spin θ_{spin} φ_{spin}
Specify the polar angles of the direction on which the
detector projects the photoelectron spin.
This requires a previous call to spin on. Default: θ_{spin}= φ_{spin}=0.
spin on/off
Use spin on to make the detector project the electron
spin on the direction specified by the command spin ....
This command has no effect for nonpolarized
PD calculations. Default: spin off.
EMITTER ATOMS AND INITIAL CORE LEVELS 
The atoms that act as emitters must be specified
(they must all have the same chemical identity).
Then, the photoelectron intensities calculated in this code
represent the incoherent sum of the emission from all of
the selected emitters, with those closer to the surface
contributing more because of the smaller attenuation originating in
inelastic scattering.
An arbitrary number of emitters can be specified
(see incompatibilities with the keyword amplitude in the command scan pd ...). Each emitter is
characterized both by its coordinates and by
a label that specifies the type of scatterer
that represents it when it is ionized (different in general from
the nonionized atom). When muffintin is invoked to calculate
the scattering properties of the cluster atoms internally (that is,
without the help of external data files) or when the atomic scattering
properties are given in terms of a muffintin potential, the latter label
is disregarded and a screened Coulomb hole is added to
the muffintin potential in order to calculate the scattering
properties of the ionized atom. The length of screening of the hole
is 1 Å by default, but it can be changed using the command screeninglength ...
Next, the initial core levels and sublevels have to be specified.
This can be done in two different ways: either by selecting
the initial state (e.g., 1s, 2p, etc.),
so that the emission matrix elements are calculated internally
within the program, or by reading radial matrix elements from an external data file. In both cases,
a finer selection of sublevels can be achieved
by specifying further initialstate quantum numbers.
List of emitters 
The following commands can be used to specify which atoms are emitters:
emitters all t_{1} t_{2}
Make all atoms of type t_{1} to be emitters,
with scattering properties of type t_{2} when they are ionized.
The parameter t_{2} is ignored
when t_{1} refers to a scatterer that
is defined by its muffintin potential
(that is, when the command muffintin has been used or when a muffintin potential data file has been read to define it),
in which case the scattering properties of the
ionized atom are obtained from the muffintin
potential plus a screened Coulomb hole, as
explained above.
Moreover, t_{1} and t_{2} must be any of the labels introduced by scatterer t_{1} ...,
or alternatively, any of the scatterertype labels created
when invoking the command muffintin (in this latter case, these labels can be obtained by writing the cluster to a file after muffintin has been invoked). Default: no emitters.
emitters n i_{1} t_{1} ... i_{n} t_{n}
Add n emitter atoms to the list of emitters, where i_{1} ... i_{n} are the atomic labels of these new emitters and t_{1} ... t_{n} are the corresponding type of
scatterers when they are ionized.
This command can only be invoked when (and immediately after)
the cluster is read from a file using the command cluster input ... The atomic labels i_{1} ... i_{n} are the same as those of the first column of
the cluster data file.
The scatterertype labels t_{1} ... t_{n} must be any of the ones introduced by scatterer t_{1} ... Default: no emitters.
emitters n units2 x_{1} y_{1} z_{1} t_{1} ... x_{n} y_{n} z_{n} t_{n}
Add n emitter atoms to the list of emitters. These
atoms are specified by their coordinates
(x_{1},y_{1},z_{1}) ...
(x_{n},y_{n},z_{n})
in units of units2.
The program will stop if there are no atoms defined in the cluster
at all of these positions
(the tolerance in the input coordinates of the emitters is 0.05 Å).
The labels t_{1} ... t_{n} are the corresponding type of
scatterers when the atoms are ionized, and they
must be any of the ones introduced by scatterer t_{1} ...,
or alternatively, any of the scatterertype labels created
when invoking the command muffintin (in this latter case, these labels can be obtained by writing the cluster to a file after muffintin has been invoked). Default: no emitters.
report emitters
Print out current list of selected emitters.
This can be particularly useful to find the scatterertype labels assigned by the command muffintin,
so that these labels can be used later to
extract phase shifts, muffintin potentials, etc.
Sometimes it is convenient to run the code a first time
in order to obtain those labels using report emitters and then end to stop the execution of the program,
and a second time (after utilizing those labels)
commenting out the end command.
Initial core levels: n_{0} and l_{0} 
The following commands permit selecting the initial corelevel
quantum numbers and calculating or inputting from external data
files the corresponding emission radial matrix elements.
Emission matrix elements calculated internally for a specific level
The emission matrix elements are calculated internally by default,
provided the emitter under consideration has been
defined by its muffintin potential (e.g., by invoking
the command muffintin).
The following commands can be used to specify the desired emission
level.
initial n0/l0 ν
Initial corelevel principal and orbital quantum numbers.
Either the keyword n0 or l0 must be used
and the actual value is specified by ν
When using initial l0 1, for instance, both
2p_{1/2} and 2p_{3/2} components
(if the orbital momentum representation has been selected
using the command initial ljmj;
here, ljmj is a keyword and not a set of numbers)
or 2p^{spinup} and 2p^{spindown} components
(if the spin representation has been selected
using the command initial lmms)
are included.
The sublevel can be further specified by
using initial j0/mj0 ν or initial m0/ms0 ν,
respectively. Default: n_{0}=1 and l_{0}=0.
initial state label
This is an alternative to initial n0/l0 ν Labels such as label= 1s, 2s, 2p, etc.,
switch on the flag initial lmms and assign the corresponding value to n_{0} and l_{0}.
Labels such as label= 2p1/2, 2p3/2, 3d3/2, etc.,
switch on the flag initial ljmj and assign the corresponding value to n_{0}, l_{0}, and j_{0} (previous calls to initial j0 ν are ignored). Default: 1s.
initial state CR nt n_{1} X_{1} C_{1} n_{2} X_{2} C_{2} ...
Use the tabulation of Clementi and Roetti
(E. Clementi and C. Roetti, Atomic Data and Nucl. Data Tables 14, 177478 (1974))
for the initial state.
When using this command, the radial matrix elements are calculated
using the coefficients given in the parameter list, where nt is the number of terms, n are the main quantum
numbers of the Slater functions, X are the coefficients
inside the exponentials (they dictate how far the wave function
extends), and C are the coefficients of each term in the
wave function. Notice that the initial quantum number l_{0} (and possibly m_{0}) has
to be introduced separately.
Emission matrix elements defined via radial matrix elements
As an alternative to initial state ... or initial n0/l0 ...,
the emission matrix elements can be introduced via an external
data file whose format is specified below.
Here are the relevant commands in that case:
rmat filename
Read radial matrix elements from file filename.
The principal quantum number n_{0} becomes
unnecessary in this case, and the number l_{0} is specified inside the data file.
By default, the radial matrix elements are calculated internally
inside the code, except when this command is invoked, after
which they are simply read from the file filename.
clear rmat
Remove stored information on radial matrix elements.
Radial matrix elements are thereafter calculated internally
inside the code.
Initial core sublevels: spin and m_{j0} 
The following commands permit selecting the initial core sublevel
quantum numbers and the kind of representation that is used.
Two different representations can be used to specify
further the sublevel of emission. The first one
(default)
is the (lmm_{s}) or spin representation,
in which m_{s} is the electron spin.
This can be selected by using the following commands:
initial lmms
Use the spin (lmm_{s})
representation in the definition of the emission matrix
elements. lmms is a keyword and not a set of numbers.
Also, this deactivates initial ljmj. This is the default representation.
initial m0/ms0 ν
Initial core sublevel of emission.
This requires a previous call to initial lmms.
One has m_{0}=ν for m0
and m_{s0}=ν/2
for ms0 (i.e., ν=1 for spin up and ν=1 for spin down).
Each sublevel involves a different initial state, and therefore
a separate MS calculation.
The resulting emission intensities
are simply added up. The input parameter ν can take the value all,
indicating that the full range
is selected (e.g., initial m0 all makes the selection m_{0}=l_{0}, ..., l_{0}). Default: m_{0}=all and m_{s0}=1/2.
A second representation available within this code is the (ljm_{j}) or orbital momentum representation, which can be selected using the following commands:
initial ljmj
Use the angular momentum (ljm_{j})
representation in the definition of the emission matrix elements. ljmj is a keyword and not a set of numbers.
Also, this deactivates initial lmms. Default: initial lmms.
initial j0/mj0 ν
Initial core level and sublevel of emission.
This requires a previous call to initial ljmj.
One has j_{0}=ν/2 for j0 and m_{j0}=ν/2 for mj0.
Each sublevel involves a different initial state, and therefore
a separate MS calculation.
The resulting emission intensities
are simply added up. The input parameter ν can take the value all,
indicating that the full range
is selected (e.g., initial mj0 all makes the selection m_{j0}=j_{0}, ..., j_{0}). Default: all.
Radialmatrixelements datafile format 
The general form of the file that contains the radial matrix elements of a given emitter is:
n_{k} units1 index l_{0} 
k_{1} a_{1}^{1} a_{1}^{2} a_{1}^{3} ... 
k_{2} a_{2}^{1} a_{2}^{2} a_{2}^{3} ... 
... 
k_{nk} a_{nk}^{1} a_{nk}^{2} a_{nk}^{3} ... 
where n_{k} is the number of energies (or momenta), for which the radial matrix elements are given, units1 are the units in which the energies (or momenta) are given, k_{1}, k_{2}, ... are the respective energies (or momenta), either in decreasing or decreasing order (linear of cubic spline interpolation is used latter on for values lying in between), and a_{2}^{1}, a_{2}^{2}, ... are the data necessary to specify the radial matrix elements, which depend on the parameter index. The latter can be one of the following:
regular1. Each line for each energy (or momentum) k_{j} contains:
R_{l0+1} δ _{l0+1} R_{l01} δ _{l01}
(i.e., this is the information denoted a_{j}^{1}, a_{j}^{2}, ... above).
The radial matrix elements are R_{l0+1} exp(iδ_{l0+1})
for the l=l_{0}+1 channel and R_{l01} exp(iδ_{l01})
for the l=l_{0}1 channel.
The commands initial m0 ... and initial ms0 ... can be used to select the initial quantum number m and the spin of the photoelectron (before MS) in the
(lmm_{s}) representation
(notice that these two commands require a previous call to initial lmms).
Also, the commands initial j0 ... and initial mj0 ... can be used to select an initial state that takes into
account spinorbit coupling in the
(ljm_{j}) representation
(notice that these two commands require a previous call to initial ljmj).
regular2. This is like regular1, but with the format:
Re{R_{l0+1}} Im{R_{l0+1}} Re{R_{l01}} Im{R_{l01}}
ex1. This can be used to incorporate magnetic exchange effects in the excitation matrix elements. Now each line for each energy (or momentum) contains:
R^{u}_{l0+1} δ^{u} _{l0+1} R^{u}_{l01} δ^{u} _{l01} R^{d}_{l0+1} δ^{d} _{l0+1} R^{d}_{l01} δ^{d} _{l01}
where u and d refer to spin up and spin down
components, respectively.
In this case, previous calls to commands initial ... are ignored,
except initial m0 ... (initial ms0 ... is also ignored).
The option initial lmms is automatically selected when reading the file.
ex2. The same as ex1, but with the format of regular2.
An important part of the input data file is
the orbital angular momentum number l_{0} of the initial core level. Previous calls to commands initial n0 ... and initial l0 ... are ignored.
Here is an example (for l_{0}=1, that is, emission
from a p state):
6 k(au) regular1 1 4 0.38 0.31 0.18 0.01 5 0.30 0.40 0.16 0.08 6 0.21 0.65 0.12 0.09 7 0.16 0.73 0.10 0.15 8 0.12 0.69 0.11 0.26 9 0.10 0.52 0.09 0.32 
This is another example: 1 regular1 0 0.1 0.3 0 0.
The latter illustrates the special case n_{k}=1, for which units1 and k_{1} do not have to be given.
Moreover, the l=l_{0}1 channel does not contribute
when l_{0}=0.
Notice that 2π jumps in the phase of the
radial matrix elements are automatically eliminated while
they are read in order to avoid possible interpolation anomalies.
ATOMIC SCATTERING 
Each of the atoms included in the atomic cluster must have a label that indicates the type of scatterer under consideration.
These labels can be given either as the atomic numbers
of the atoms or as their atomic symbols.
Then, the command muffintin can be invoked
after defining the cluster.
This command asks the program to calculate the muffintin potential
associated to each different kind of atom (identified by its atomic
symbol or atomic number, as specified in the definition of the cluster)
within the cluster (with the limitation imposed by R_{max}).
The resulting muffintin potentials are stored
at that particular moment, so that they
are available to be used to obtain scattering phase shifts when these
are needed during the execution of an
actual PD calculation, performed later on using the command scan pd ... The muffintin potentials are automatically
calculated by the code using a muffin tin construction based upon
the Mattheiss prescription (Mattheiss Phys. Rev. 133, A1399 (1964)).
Atoms with different atomic number or
with the same atomic number but with different atomic environment (e.g.,
surface atoms versus bulk atoms) will have different muffintin potentials.
The cluster should include atoms that surround the
actual cluster used in the MS calculations that might follow, so that clusterboundary
effects do not affect the actual cluster.
Notice that the scatterer properties of an emitter atom
are different when it is ionized as compared to the nonionized atom,
since the former contains the photoelectron hole. This is incorporated
in the calculation by adding to the muffintin potential of the emitter
atom a pointlike Coulomb hole which is screened with an exponential screeninglength prescribed by the user
(1 Å by default).
While the procedure just described is convenient and reduces drastically
the input that the user must provide, one can still define the
scattering properties using external files (this is recommended only
for expert users that want to deal with special cases).
This is done by giving integral numbers (unconnected to the
atomic numbers) as input for the atomic labels
that refer to the type of scatterer under consideration.
Then the scattering properties for each kind of scatterer must be
read from external data files using commands that will be
explained below. In this case,
the effect of the photoelectron hole can be included
by defining scatterer properties for the ionized atom (different
from those describing the nonionized atom) during the
selection of the emitters.
The screening length defined by the user does not apply here,
since the scattering properties of the ionized atoms are obtained
from an external data file.
Basic commands 
At any given point in the input, the general properties of a given scatterer can be obtained using the following command:
Calculating the scattering properties inside the code
muffintin
Calculate muffintin potentials and muffintin radii
for the atoms of the cluster.
This command removes all information previously stored by means of scatterer ... The muffintin potentials are calculated only for the N atoms selected by the command cluster natoms N that are closest to the reference point.
The cluster should include atoms that surround the
actual cluster used in the MS calculations that might follow, so that clusterboundary
effects do not affect the actual cluster.
The calculated muffintin potentials are
referred to the vacuum level. Later on, the
phase shifts corresponding to these potentials are calculated
whenever they are needed.
When using this command, atomic labels in the input of the
cluster definition will be interpreted as atomic numbers (e.g.,
29 or Cu).
After muffintin has been invoked, those labels
are changed to refer to the different muffintin potentials
that have been created. The new labels can still be
obtained by writing the cluster to a file using cluster output ...
screeninglength units2 λ_{scr}
Set the value of the screening length
(λ_{scr} in units of units2) used to screen the photoelectron
core hole.
This command has an effect only when the scatterer
properties of the emitter are defined via its muffintin potential.
A screenedhole potential given by
exp(r/λ_{scr})/r
is added to the emitter atom (the minus sign means that the hole
attracts the photoelectron). This represents in a
approximate way the presence of the localized core hole,
screened by the rest of the solid with the specified
screening length. Default: λ_{scr}=1 Å.
scatterer i sphere units2 a units1 V
Set scatterer i to represent a homogeneous sphere of radius a and constant potential V below the muffintin zero (the potential inside the sphere is V with
respect to the muffintin zero).
Reading/writing scattering properties from/to external data files
scan scatterer i filename
Calculate the total (angleintegrated) elastic
scattering cross section (and the Sherman function
for relativistic phase shifts)
corresponding to scatterers of type i for the energies and angles previously specified by emission energy ... and emission angle ...,
respectively. This gives the angular dependent elastic
cross section, not
the total cross section.
The last three columns of the output correspond to
f^{2} (squared
modulus of the scattering amplitude f),
Re{f}, and Im{f}, respectively
(for relativistic phase shifts, the last three columns
correspond to f^{2}, the Sherman function S, and f^{2}S,
respectively).
The results are written in filename.
This command has no effect on scatterers defined
by an external tmatrix.
scan scatterer i phaseshifts filename
Calculate scattering phase shifts up to l=l_{max} for scatterers of type i within the energy range specified by emission energy ....
The results are written in filename,
which has a format compatible to be used as input of scatterer i filename (no results are written to the standard output).
This command has no effect if the scatterer is defined
via its scattering tmatrix,
but it is specially designed for
scatterers defined via their muffintin potentials, either by reading
them from a data file or by invoking the
command muffintin.
These are "temperaturedependent" phase shifts that
include the effect of the DebyeWaller factor: they
are calculated at the temperature
specified by temperature ... The potential stored for this scatterer is assumed to be referred
to the muffintin zero.
scan scatterer i potential filename
Write scattering muffintin potential of
scatterers of type i to file filename,
which has a format compatible to be used as input of scatterer i filename.
This command has no effect if the scatterer is not defined by
its muffintin potential, either by reading
it from a data file or by invoking the
command muffintin (no results are written to the standard output).
scatterer i filename
Read the phase shifts, the muffintin potential,
or the scattering matrix corresponding to scatterers of type i from file filename.
The kind of scatterer i is in correspondence with the labels
used to define the cluster atoms
(see add cluster atom ...).
The format of the input file is described below.
clear scatterer i
Remove scattering data from scatterer type i (phase shifts, etc.).
Notice that scatterer i ... must have been invoked before.
clear scatterers
Remove scattering data from all scatterers.
Spinorbit coupling
Spinorbit coupling during atomic scattering may cause spinflip
of the photoelectron (Mott scattering). This
relativistic effect can be very important for heavy
atoms and/or high photoelectron energies.
A way to account for this is by reading relativistic scattering phase shifts using the command scatterer i ... Also, for atoms whose scattering properties are defined via their
muffintin potentials (either because these potentials have been read
from external data files or because the command muffintin has been invoked), the scattering phase shifts are calculated inside
the code, and these phase shifts are relativistic or nonrelativistic
depending on the status of the flag scatteringso, which
can be set using the following command:
scatteringso on/off
Scattering phase shifts calculated internally within the code
are relativistic/nonrelativistic after this command
is invoked with the on/off option. The relativistic
phase shifts account for spinflip processes (Mott scattering). Default: scatteringso off.
Effects of atomic magnetic moments
When the atom has a magnetic moment, the exchange and correlation
for electrons with their spin parallel or antiparallel with respect
to the direction of that moment is different, and therefore, they
are scattered differently (i.e., their scattering must be described
by a different set of phase shifts). The orientation of the atomic
magnetic moments can be specified during the definition of the cluster
using the commands add cluster ....
The following commands can also be used:
orientation θ_{magnet} φ_{magnet}
Reset the orientation of the magnetic moments of
all atoms, so that they will point to the polar
direction (θ_{magnet}, φ_{magnet}). The flag orientation on/off is not affected by this command.
orientation on/off
Enable/disable orientation of target atoms, to be used
for magnetic moments or nonspherical scattering matrices in general.
If on is selected for the first time and
a cluster is already defined, the orientation of
all atoms is set to θ_{magnet}=0 by default
(that is, all atomic magnetic moments point to the positive z direction). Default: orientation off.
Notice that orientation on has to be invoked to activate the orientation of magnetic moments.
Atomic scattering datafile format 
The external data file that contains the atomic scattering properties of a given atom can contain data of three different kinds:
The scattering phase shifts, which define completely the scattering properties of spherical atoms. These have to be given for an energy range that contains the photoelectron energies that will be eventually used.
The scattering muffintin potential for a particular atom. The scattering phase shifts for that atom are calculated only whenever they are needed. The muffintin potential is referred to the muffintin zero.
The full scattering tmatrix, which can represent nonspherical atoms. Again, this has to be given within a sufficient energy range.
These kinds of data files are considered separately in what follows,
but any of them can be used as input of scatterer i filename.
Atomic scattering phase shifts
The phaseshift data files explained here
represent atoms described by sphericallysymmetric
potentials. These can be nonrelativistic
phase shifts, relativistic phase shifts, or
even separate sets of phase shifts for spinup
and spindown electrons (in that case the
atomic potential including spin interaction is not
really spherical). The general form of these files
is:
n_{k} units1 l_{max} regular/ex/so real/complex/tl 
k_{1} ps_{1}^{0} ps_{1}^{1} ... 
k_{2} ps_{2}^{0} ps_{2}^{1} ... 
... 
k_{nk} ps_{nk}^{0} ps_{nk}^{1} ... 
(keywords are given in different color). Here, ps_{j}^{0} ... are phaseshift values (the actual order depends on whether regular, ex, or so is chosen; see below) at the energy (or momentum) k_{j}. The phase shifts are given in radians and any 2π jumps are automatically eliminated while they are read so as to avoid possible interpolation problems (caution: widely separated k_{j}'s can be problematic in this respect). n_{k} is the number of energies (or momenta) and their values k_{j} are given in units of units1, either in decreasing or decreasing order. When the keyword real is specified, the phase shifts are assumed to be real, so that ps_{j}^{l} is just a real number. However, some absorption during the atomic scattering process can be introduced by using complex phase shifts. This is done by selecting the keyword complex, and then the entry for each phase shift ps_{j}^{l} is actually two real numbers: the real part and the imaginary part in that order. If the keyword tl is used instead, each entry is the real part and the imaginary part of the tmatrix element sinδ exp(i δ), where δ is the corresponding phase shift (only the diagonal elements of the scattering matrix are entered). Finally, either regular, or ex, or so must be chosen, meaning:
regular: regular phase shifts; each line contains: δ_{0} δ_{1} ... δ_{lmax}; if spinpolarized calculations are performed, both electron spin components are scattered using the same set of phase shifts.
ex: the effect of an atomic magnetic moment on the atomic scattering is incorporated by assigning different phase shifts to spin up and spin down electron wave function components; each input line contains: δ_{0}^{u} δ_{1}^{u} ... δ_{lmax}^{u} δ_{0}^{d} δ_{1}^{d} ... δ_{lmax}^{d}, where the superindices u and d refer to spin up and spin down components, respectively.
so: spinflip processes during photoelectron scattering are incorporated; this is done by using relativistic phase shifts in a twocomponent spinor representation; then, each line contains: δ_{l=0,j=1/2} δ_{l=1,j=3/2} δ_{l=2,j=5/2} ... 0 δ_{l=1,j=1/2} δ_{l=2,j=3/2} ... Notice that instead of δ_{l=0,j=1/2}, which does not exist, we include a zero.
Here is an example of a phaseshift data file:
7 k(A) 4 regular real 3.2382 0.1018 1.0211 1.3299 0.1949 0.0227 3.4346 0.0149 0.9595 1.3810 0.2583 0.0345 3.6204 0.0613 0.9060 1.4159 0.3244 0.0494 3.7971 0.1290 0.8594 1.4431 0.3891 0.0676 3.9659 0.1900 0.8188 1.4672 0.4493 0.0888 4.1279 0.2457 0.7831 1.4908 0.5028 0.1129 4.2837 0.2974 0.7513 1.5147 0.5486 0.1393 
This is another example for n_{k}=1 (then the units
and value of the energy or momentum are not necessary; caution: this
means that these phase shifts are assumed to be appropriate for the
current kinetic energy): 1 3 regular real 0.8 0.6 0.2 0.1.
Atomic muffintin potential
The muffintin potential can be input to define the
scattering properties of a given atom, which is
considered to be spherically symmetric. Then,
the scattering phase shifts are calculated whenever they
are needed. For an emitter, a screened Coulomb hole
is added to this potential to calculate the
scattering phase shifts of the ionized atom in the solid.
Here is the format of the potential data files:
potential/potential2 
n_{r} Z units2 units1 rV/V 
r_{1} a_{1} [b_{1}] 
r_{2} a_{2} [b_{2}] 
... 
r_{nr} a_{nr} [b_{nr}] 
(keywords are given in different color)
where n_{r} is the number of radial points, Z is the atomic number of the atom under consideration, r_{j} is the distance to the atomic nucleus in units
of units2 (given in increasing order),
the potential V(r_{j})
is expressed in units of units1,
and a_{j} represents
either r_{j}V(r_{j}) (if the label rV is used)
or simply V(r_{j}) (if the label V is used).
If potential2 is used rather than potential2, the values just
explained for the potential stand for spinup components of the electron
wave function, whereas spindown components see a different potential
obtained from b_{j} rather than a_{j}.
The potential is assumed to be given with respect to
the muffintin zero. A logarithmic radial grid,
denser near the origin, is recommended. The r=0 point must
not be included in the grid.
Atomic scattering tmatrix
The tmatrix contains a full
description of the atomic scattering process.
Two different kinds of scattering tmatrix
files can be read by the program, appropriate
for axially symmetric atoms (axial) and for arbitrarily
shaped atoms (full), respectively. The general format is:
n_{k} units1 l_{max} axial/full n_{s} 
k_{1} block_{1} 
k_{2} block_{2} 
... 
k_{nk} block_{nk} 
(keywords are given in different color). As in the case of the scattering phase shifts, units1 and k_{1} must be omitted when n_{k}=1. The meaning of l_{max} is the same here. Furthermore, n_{s} specifies the number of components of the electron wave function: 2 if the electron spin is taken into consideration and 1 otherwise. The elements of the t matrix are given in the lmm_{s} representation. The information contained within each block (for each given energy/momentum) depends on whether axial or full is chosen. More precisely, each block contains the blue lines generated by the following loops:
axial:
for s = 1 to n_{s} 
for l = 0 to l_{max} 
for m = l to l 
for s'= 1 to n_{s} 
for l'=m to l_{max} 
[s] l m [s'] l' m Re{t_{slm,s'l'm}} Im{t_{slm,s'l'm}} 
full:
for s = 1 to n_{s} 
for l = 0 to l_{max} 
for m = l to l 
for s'= 1 to n_{s} 
for l'= 0 to l_{max} 
for m'= l' to l' 
[s] l m [s'] l' m' Re{t_{slm,s'l'm'}} Im{t_{slm,s'l'm'}} 
where the notation [s] and [s'] means that s and s' are only written if n_{s}>1.
The components with s different from s' for n_{s}=2 represent spinflip processes.
In that case, s=1 refers to the spinup component
with respect to the quantization direction (m_{s}=1/2),
and s=2 refers to the spindown component
(m_{s}=1/2).
The quantization direction is the z axis by default,
but it can be changed to an arbitrary direction using the commands orientation ... (see also add cluster ...). Caution: use oriented atoms with axial only (not with full).
MULTIPLE SCATTERING 
The way multiple scattering is performed has to be specified
by choosing the iteration method and the number of iterations
(see orders ...);
the value of the maximum angular momentum in the multipole
expansion of the wave function around each atomic center of scattering
(see lmax ...);
the value of the muffintin zero relative to vacuum
(see V0 ...);
the inelastic mean free path of the photoelectrons;
and the temperature.
The relevant commands are described within this section.
Multiple scattering parameters 
dmax units2 d_{max}
Assign the value d_{max} to the maximum allowed hop distance between cluster atoms
for which the propagation is followed between two successive
scatterings during the MS process. In other words,
the propagation of the electron between one scattering event at
one atom and the next scattering event at another atom is disregarded
when they are separated by a distance larger than d_{max}.
When the flag cluster surface on has been selected, the distance is redefined in a way similar
to what is described in cluster surface on/off,
so that d_{max} is compared to the length of the
path followed by
the photoelectron to the atom to which it is propagated
(same as above) plus the distance from the latter to the solid surface. Default: d_{max}=infinity.
iteration method [η]
Specify the kind of iteration method used to solve
selfconsistently the MS equations.
Here, the real parameter η needs to be given only when
the SR method is selected.
The parameter method can be one of the following: Jacobi, SR, recursion, and exact.
(See García de Abajo, Van Hove, and
Fadley, Phys. Rev. B 63, 75404 (2001) for further
details.)
All of these methods take approximately
the same time per iteration,
except the exact method, which takes much longer, since
it performs a direct inversion of the secular MS matrix.
The Jacobi method corresponds to the regular MS series, whereas
the recursion method is much more robust and is guaranteed to
convege (unlike the Jacobi method). Default: Jacobi.
giantmatrixoutput filename
Select the exact inversion method (see iteration exact)
and writes the inverted giant matrix to file filename (in consecutive order as it is calculated, only in the next scan ... command). For each energy/momentum,
it writes a first line with the number of atoms N,
the number of wave function components n_{c}, l_{max}, and the electron (internal) energy (in eV); then,
the cartesian coordinates (x,y,z) of each cluster atom are given
in consecutive order (in a.u.); and finally,
one line with the real and imaginary part of the inverse of the
giant matrix
(the external loop runs over rows, and the internal loop over columns).
The matrix index is i=(l_{max}+1)^{2} (a n_{c} + c)
+l^{2}+l+m,
where a, c, l, and m run over atoms, wave function components,
orbital quantum numbers, and azimuthal quantum numbers, respectively.
lmax l_{max}
Set the maximum (global) effective orbital angular momentum number l_{max} to be used in scan ... commands,
including scan pd ... for PD calculations. Default: l_{max}=15.
orders n o_{1} ... o_{n}
Specify orders of iteration to be printed out when invoking scan pd ... (this command is ignored if the exact inversion method is chosen).
The number of orders is n,
and they are given in the list o_{1} ... o_{n}.
Order 0 corresponds to the direct photoelectron wave function,
in the absence of scattering.
Our experience is that
relatively good convergence is typically achieved for
orders in the 1020 range.
This command has to be invoked with n>0 before
using scan pd ... Default: n=0.
V0 units1 V_{0}
Specify the energy of the vacuum level with respect
to the muffintin zero (V_{0}>0) in units given by units1. This determines the
energy of the photoelectrons
inside the solid (i.e., E+V_{0},
where E is the emission energy relative to vacuum) and
the photoelectron refraction at the surface. Default: V_{0}=0.
Electron inelastic mean free path 
Defining commands
imfp filename
Read inelastic mean free path from file filename (see format below).
When this command is invoked, all previous information given by
the command Vi ... is lost.
Then, given a certain value of the inelastic mean free path λ_{inel}, the program
defines the imaginary part of
the momentum of the photoelectron inside the solid as k_{i}=1/(2 λ_{inel}),
where the factor of 2 comes about because k_{i} enters the electron wave function rather than the intensity.
The real part of that momentum is obtained as k_{r}=[2 (E + V_{0})]^{1/2} in atomic units,
where E is the photoelectron kinetic energy in the vacuum
and V_{0} is the socalled muffintin zero. Default: infinity.
imfp TPP2M ρ N_{v} E_{p} E_{g}
Calculate the electron inelastic mean free path using
the approximate TPP2M formula (see Tanuma, Powell, and Penn, Surf.
Interface Anal. 21, 165 (1994)),
where ρ is the solid density
(in g/cm^{3}), N_{v} is the number of valence electrons per atom,
E_{p} is the plasmon frequency in eV, and E_{g} is the bandgap energy (in eV;
set E_{g}=0 for metals).
Tabulated values of these parameters for many materials
can be found in Tanuma, Powell, and Penn, Surf. and Interface
Anal. 17, 927 (1991) (see also
Powell and Jablonski, Surf. and Interface Anal. 29, 108 (2000),
and references therein). Default: infinity.
Vi units1 Σ_{i}
This is an alternative to the imfp command just described.
It sets the value of the imaginary part of the photoelectron
self energy inside the solid in units of units1.
When this command is given, all previous information introduced
by the commands Vi ... or imfp ... is lost.
Then, the complex momentum of the photoelectron inside
the solid is calculated as k=[2 (E + V_{0} + i Σ_{i})]^{1/2} in atomic units,
where E is the photoelectron kinetic energy in the vacuum
and V_{0} is the muffintin zero
relative to vacuum. Default: infinity.
scan imfp filename
Print out electron inelastic mean free path (in Å)
to file filename within the range specified by emission energy ...
clear imfp
Remove stored information on inelastic mean free path.
attenuationtype 0/1
Set to 0 to use h_{l}^{(+)}(kd) inside the freeelectron
Green functions or 1 to use h_{l}^{(+)}(k_{r}d) exp(k_{i}d) instead,
where k=k_{r}+i k_{i} is the
photoelectron momentum inside the cluster and d is an interatomic distance.
The imaginary part of k is determined by
the electron inelastic mean free path,
or alternatively, by defining an imaginary part
of the inner potential. Default: attenuationtype 0.
Inelastic mean free path datafile format
The general form of the file that contains the
inelastic mean free path (read with the
command imfp filename) is:
n_{k} units1 units2 
k_{1} imfp_{1} 
k_{2} imfp_{2} 
... 
k_{nk} imfp_{nk} 
where imfp_{1} ... are the values of the
inelastic mean free path, given in units of units2,
at the n_{k} energies (or momenta) k_{1} ..., given
in units of units1 in either increasing or decreasing order.
Here is an example:
7 E(eV) l(A) 50 7.0 60 6.5 70 6.0 80 5.5 90 6.0 100 6.5 110 7.0 
This is another example to illustrate the n_{k}=1 case
(the units and values of the energy or momentum are not necessary): 1 l(A) 5 (imfp equal to 5 Å).
Setting the temperature 
Thermal vibrations create some diffuse scattering, that is, some loss of coherence in the electron wave function. Here, this is accounted for by using temperaturedependent phase shifts (calculated inside the code), which contain a finite imaginary part. A Debye temperature must be also selected, which roughly indicates how rigid is the solid. The temperature is selected using the following commands:
temperature T T_{Debye}
Set the temperature equal to T and the Debye
temperature equal to T_{Debye}, both in Kelvin.
This causes the scattering phase shifts to be changed with
respect to those for T=0, so that the new phase shifts
represent an atom that vibrates isotropically. Pendry's
procedure is used (see Pendry, Low Energy Electron Diffraction,
Academic Press, 1974).
Temperature effects are not implemented for scatterers defined
via their scattering tmatrices. Default: T=0, T_{Debye}=100.
temperatureT T
Set the temperature equal to T in Kelvin. Default: T=0.
Debyetemperature i T_{Debye}
Set the Debye temperature of element i (either an atomic
symbol or an atomic number) to T_{Debye} Kelvin. Each chemical element can have
a different Debye temperature. Notice that the command temperature ... reselts all Debye temperatures. Default: T_{Debye}=100.
The averaging procedure to produce temperaturedependent phase shifts requires to know the atomic mass of the scatterers. The mass is already stored inside the code for cluster atoms that are identified by their atomic numbers of symbols. However, when the scattering properties are defined via external data files using the command scatterer i ..., the mass needs to be introduced by the user via the following command (if no mass is specified, it is assumed to be infinite):
scatterer i mass M
Set the mass of scatterer i,
previously defined using scatterer i ... M can be either a numerical value (the mass itself
in atomic units)
or an atomic symbol. In the latter case, the mass is taken
as that of the most abundant isotope of that particular atomic
species. Default: M=infinite.
UNITS, COMMENTS, AND MISCELLANEOUS 
In this section, we describe some extra commands and features of
the code.
It is very important in particular to end the execution of the program
after the calculation is performed; this is done by invoking the command end. Also important are the physical units that are used to input and output data.
Physical units 
All external data are converted into atomic units (a.u.)
inside the program. However, the energy/momentum in the output
of scan ... is given in the
same units as specified in the command emission energy ... Angular magnitudes are in degrees both in input and in output files
(except phase shifts, which are always given in radians).
Two different labels are used throughout this manual to refer
to units used in the input files. Namely:
units1: this refers to energies/momenta input data; also, it determines whether the number to which it applies is an energy or a momentum; it can take one of the following values:
E(eV): energy in eV
E(au): energy in a.u. (Hartrees)
E(Ry): energy in Rydbergs
k(A): momentum in Å^{1}
k(au): momentum in a.u.
units2: this refers to lengths and can take one of the following values:
l(A): length in Å
l(au): length in a.u.
l(nm): length in nm
Finally, the calculated angledependent emission probability is given in
atomic units per steradian and the electric field of the external light is
considered to have a strength of 1 a.u. in magnitude (just for
normalization purposes).
Comments 
Internal comments
It is possible to incorporate comments which are not printed out in
the output file(s). There are two types of internal comments:
Oneline comments, which start with // and finish at the end of the current line.
Those that start with /* and end with */ (they can be multiline).
External comments
These are comments that are directly printed out in the
output file(s). They start with " and end with " too.
Special characters can be printed using \: \\ to print \, \" to print ", \n to print a line skip.
These comments must be given in between
commands, that is, they cannot be inserted in between
the keywords or parameters of a single command.
Wave function input/output 
The photoelectron wave function φ(r)
is expressed in a basis set of
spherical harmonics attached to each atom of the cluster:
φ(r) = Σ_{α,lms} φ_{α,lms} i^{l} h_{l}^{(+)}(krR_{α}) Y_{lm}(Ω_{rRα}) s,
where s=1 and s=2 stand for spin up and spin down
components.
The wave function is thus completely determined by
the (complex) electron momentum k,
the atomic positions R_{α},
and the coefficients φ_{α,lms}.
This information can be input and output using the commands explained
below.
Setting the direct wave function for emitter atoms
The code allows one to manually define the direct wave function (i.e., the
excited electron wave function before scattering takes place)
for the emitter atoms, in order to represent arbitrary
emission processes from localized atoms (e.g., PD and Auger emission).
wf manual n_{s} l_{max} Re{wf_{1}} Im{wf_{1}}
Re{wf_{2}} Im{wf_{2}} ...
Specify the direct wave of the emitters when
the flag wf manual on has been
selected. Nonemitter atoms do not contribute to the direct wave.
For emitter atoms α_{e},
the coefficients φ_{αe,lms} at zeroth order of iteration are assigned
using this command.
These coefficients are represented by the
parameters Re{wf_{1}}, Im{wf_{1}}
Re{wf_{2}}, Im{wf_{2}}, ...
The order in which they are given is the same
as in the blue lines generated by the following loops:
for s = 1 to n_{s} 
for l = 0 to l_{max} 
for m = l to l 
Re{φ_{αe,lms}} Im{φ_{αe,lms}} 
where n_{s}=2 for spinpolarized calculations and n_{s}=1 otherwise. Notice that l_{max} can differ from the value selected by the command lmax l_{max}: the latter refers to MS and can take relatively large values in the 420 range, whereas the former is dictated by the selection rules for the excitation process under consideration, (e.g., 2 for photoemission from p states). It is convenient to stress that the emission of different emitter atoms is added up incoherently.
wf manual on/off
Enable/Disable the manual definition of the direct wave function.
When this flag is on, the atoms selected as emitters contribute with a direct wave function (i.e., at zero order of scattering)
specified using the command wf manual n_{s} l_{max} ... This allows one to consider any kind of electron emission
coming from localized atoms (e.g., Auger emission) by
just introducing by hand the appropriate coefficients. Default: wf manual off.
Reading and writing an entire direct wave function
The entire wave function, along with the cluster,
can also be input and output using the following commands:
wf input n_{s} filename
Read the electron momentum, l_{max},
the cluster coordinates,
and the wave function coefficients from file filename.
The number of spin components of the wave function is
given by n_{s}.
This has to be used in combination with the
command scan ms ....
When this latter command is invoked,
all information previously stored on
the cluster,
the list of emitters, and l_{max} is lost.
The maximum order of iteration introduced by means of the command orders ... must be at least equal to the maximum order
of the stored wave function (see o_{max} below).
The command scan ms ... will evaluate
amplitudes or intensities according to the specifications
given by emission angle ... and orders ....
MS is only calculated for iteration
orders larger than the maximum one of the stored wave
function.
One has to set filename=none in order to
run scan pd ..., in which case scan ms ... cannot be used.
The format of the generated file is explained below; it is compatible with the output
of wf output ... Note: the value of l_{max} assigned by
a call to the
command lmax l_{max} before the command scan ms ... is invoked has to be at
least equal to the maximum l_{max} inside the wave
function data file. Default: filename=none.
wf output filename
Append the (complex) electron momentum k, l_{max},
the atomic positions R_{α},
and the coefficients φ_{α,lms} to file filename.
For filename=none, the wave function is not written to any file.
Otherwise, the electron momentum, the cluster coordinates,
and the wave function are written to the specified file
whenever a MS calculation is performed. This is done for the
complete different combinations of
every electron energy,
every emitter, and
every initial core level and sublevel.
The format of the generated file is explained below; it is compatible to be used as input
of wf input ... Default: filename=none.
The format of the wave function file used as input in this commands
corresponds to the blue lines generated by the following algorithmic
structure (the underlined words are just comments included in the file):
Momentum (a.u.) Re{k}
Im{k} Maximum order o_{max} lmax_eff l_{max} Cluster cluster block Coefficients 
for o = 0 to o_{max} 
for α = 1 to N 
order o atom α ns n_{s} lmax l'_{max} 
for s = 1 to n_{s} 
for l = 0 to l'_{max} 
for m = l to l 
s l m Re{φ_{αe,lms}} Im{φ_{αe,lms}} 
Here, l'_{max} refers to the inner loops and can
be different for each atom α;
also l'_{max} cannot be larger than l_{max}.
The number of atoms N is fixed inside the cluster block; the latter has exactly the
same structure as an atomic cluster data file.
The full wave function data file can contain several wave functions
for different electron momenta or even different atomic clusters.
Each of the wave function data has the structure just specified,
and the entire data file is just a concatenation of all of them.
Other commands 
Redirecting input and output
include filename
The instructions contained in file filename are
included in the input file currently being interpreted.
The last sentence in that file has to be end,
after which control is returned to the main input file. Synonym: insert.
output filename
Redirect the output to file filename. After this command is
encountered, the remainder of the output is appended
to file filename until the program
ends or the output is redirected again.
If filename=terminal, the
output is sent to the standard output device. Default: filename=terminal.
Finishing the execution of the program
end
Terminate the execution of the program. The remainder of
the input file is ignored. Synonyms: exit, quit.
Type of interpolation and tolerance
interpolation linear/spline
Use linear/spline interpolation to interpolate in
momentum/energy when reading phase shifts, etc.
The interpolation mode affects all input data
(phase shifts, etc) both at the moment when they are read and
when they are evaluated (i.e., if some data are read
with the linear interpolation flag then they
will always be evaluated with linear interpolation).
If spline interpolation is selected,
the number of points (i.e., the number of energies or momenta)
must be either 1 (this represents a constant value) or larger than 3.
This limitation does not apply to linear interpolation. Default: spline.
tolerance angles/distances ε
Two angles/distances that differ by less
than ε degrees/a.u. are considered
to be equal inside the code.
This has an effect on the internal evaluation of Green functions
and rotation matrices: if one of those elements is requested
for a given value of a distance or an angle, and another such
element has been calculated and stored already during the
current execution of the program with a value of the distance
or the angle, respectively, that differs less that ε from the requested one, then
the stored element is used. Default: ε=0.003 degrees/0.00005 a.u.
tolerance tmat ε
A scattering matrix element (or phase shift) smaller than ε will be taken to be zero.
This has an immediate effect on the effective value
of l_{max}, since
the phase shifts become smaller for
increasing values of l: the effective l_{max} is calculated as that of
the maximum l for which the phase shifts are
nonzero, and the program dynamically evaluates l_{max} for each atom and each energy.
Notice that the
iteration methods used to solve the multiple scattering
series within the program take a time proportional to
~(l_{max}+1)^{3}.
Actually, different scattering atoms may have different
effective values of l_{max}, and this is
used in the evaluation of the multiple scattering series
to reduce the computational demand. Default: ε=0.00005.
Reporting execution time and other comments
time
Print total CPU time and partial CPU time since the last call to time.
verbose on/off
Do/Do not copy output of scan ... commands to standard output. Default: on.
T matrix of the entire atomic cluster
tmat l_{max} filename
Calculate the t matrix of the entire atomic cluster
and write it to file filename.
Here, l_{max} is the maximum l up to
which the elements t_{lm,l'm'} are calculated
(this must be generally larger than the value specified by the
command lmax l_{max},
which refers to atomic scattering within the cluster; as a first
guess, the value of l_{max} is given by
the electron momentum times the "radius" of the cluster).
The t matrix is calculated with respect to
a multipole origin given by the reference point
(x_{r}, y_{r}, z_{r}).
The result has the same format as
for atomic
scattering tmatrices, and in particular it
will be labeled full (see format).
Actually, it can be used as input of scatterer i filename.
This command takes a very long time when more than a few atoms
are considered. For a similar command to output phase shifts of
individual atoms, see scan scatterer i phaseshifts ...
Miscellaneous 
Inline specifications
Whenever an input file is expected (e.g., after cluster input filename, scatterer i filename, etc.)
one can type inline and then the rest of
the information required by the current command is read
from the main input file. Example: imfp inline 1 l(A) 6,
which specifies an imfp of 6 Å.
Surface position and z axis
The polar angles are generally given with respect to the positive zaxis, which points perpendicularly to the surface in
the outward direction. The position of the latter is fixed by the command cluster surface z_{surf}, so that the
electronic surface is considered to be at z=z_{surf}.
Miscellaneous keywords
The words infinite and zero can be used in the
input files meaning an arbitrarily large number and 0, respectively.
Output file names
Some of the commands require an output file name parameter
(filename). The output of those commands is written into their
respective output file names, except when filename=none, in which case no output file is created.
For some commands, filename=terminal redirects the output
to the standard output device (the terminal).
The output is sent to the standard output device
(the screen) in any case, unless the command verbose off has been invoked.
ELECTRON DIFFRACTION CALCULATION 
Once all necessary input has been provided,
electron diffraction (e.g., PD) calculations can be performed
by invoking the commands explained next
(e.g., scan pd ... for PD).
Information on some internal statistics of the calculation
can then be obtained by using the commands report ... discussed below.
The code has the capability to perform both spinindependent and
spinpolarized MS calculations. The latter takes approximately
twice the time as compared with the former (under otherwise identical
conditions), since two spin components have to be propagated, rather
than one (the bulk of the computation time is invested in
propagating the wave function by means of the freeelectron
Green function between consecutive atomic scattering events).
Spinpolarized calculations are performed whenever one of
the following conditions is fulfilled:
Some scatterer is defined via relativistic scattering phase shifts read from an external file using the command scatterer i ....
Some scatterer is defined via its muffintin potential and the command scatteringso on has been invoked. The muffintin potential comes about because either it has been read from an external file using scatterer i ... or because the command muffintin has been used.
Some scatterer is defined via its scattering phase shifts read from an external file using the command scatterer i ... and incorporating magnetic exchange effects.
Some scatterer is defined via its tmatrix, read from an external file using the command scatterer i ..., and it has two spin components (n_{s}=2).
Separate radial matrix elements for the two spin components have been specified for the emitter(s) and they have been introduced via the command rmat filename. (Only for scan pd ...)
Nonrelativistic, spinindependent radial matrix elements have been specified for the emitter(s) (either by reading them via the command rmat filename or by calculating them inside the code for emitters defined by their muffintin potentials), but magnetic sublevels of emission have been selected using initial j0/mj0. (Only for scan pd ...)
The unscattered wave function defined for the emitter by means of the command wf manual ... has two spin components (n_{s}=2). (Only for scan pd ...)
The (unscattered) wave function is read from an external file using the command wf input ... and it has two independent spin components (n_{s}=2). (Only for scan ms ...)
In that case, one can select the direction on which the detector
projects the electron spin (for spinpolarized detectors) using
the commands spin ...
If none of the above conditions if fulfilled, the program performs
spinindependent MS calculations and the command spin ... is ignored.
Finally, photoelectron intensities can be averaged over a final
acceptanceangle window using the command emission angle window ... This can be used to represent a finite angular width in the
photoelectron detector.
Notice however that this command is ignored when
any of the options integrated, halfintegrated,
or amplitude is used in the commands explained below.
Photoelectron diffraction
scan [integrated/halfintegrated] pd
[amplitude] filename
Scan PD intensities according to the
parameters previously specified and write the results
in file filename.
Both surface refraction and transmission effects are incorporated
through a barrier potential V_{0}.
If the option amplitude is included,
complex photoelectron wavefunction
amplitudes (at the detector position)
rather than intensities are printed out.
If the option integrated is included,
the resulting intensity is angleintegrated within the range defined by emission angle ... With halfintegrated, the result is integrated
in the azimuthal direction only, so that θdependent results are given.
The keywords amplitude and integration cannot
be given simultaneously, since it does not make sense to
integrate amplitudes. Also, the keyword amplitude can only be used with only one emitter atom in the cluster
and one individual core sublevel (e.g., the one specified
by l0 1 m0 0 ms0 1 in the lmm_{s} representation).
Diffraction of predefined wave
scan [integrated/halfintegrated] ms n_{wf} [amplitude] filename
The same as scan pd ...,
except that the wave function is read from an input file
as specified by the command wf input ....
The parameter n_{wf} indicates the
number of different wave function data sets
that must be used from the file filename read by wf input filename.
The wave function does not have to represent a photoelectron
necessarily.
This command can be used to calculate MS effects on
arbitrary wave functions generated by a number of
different physical processes. Note: this command destroys any information previously
stored on the cluster or the list of emitters; also, it
deactivates the flag wf input ..., so that the
wave function data file has to be specified again in subsequent
calls to scan ms ...
Reporting information on diffraction calculations
report links
Print number of bond distances and bond
angles that have been used in the last call to scan pd ...
report lmax
Print effective value of l_{max} used in the last run of scan pd ....
report size
Print information on l_{max} and the number of
nonzero elements in Green functions
and rotations used in the last call to scan pd ...
LIST OF COMMANDS IN ALPHABETICAL ORDER 
Note. Keywords in square brackets are optional and keywords separated by / are multichoice (select only one of them). The parameter sector of the commands (i.e., numbers, units, filenames, etc.) is written in blue.