by A. Filipponi (1992), revised May
1999 |
- 1)
- Overview
The program XANES computes the polarization-averaged X-ray
absorption cross-section in a given core electron excitation
channel.
The program performs the matrix inversion using the
Lanczos-Haydoc recursion method which generates a transformation
of the scattering matrix into tridiagonal form, the element of
the inverse matrix are then expressed by rapidly convergent
continued fractions. See Ref. [1] and references therein for
details.
The program XANES requires two external input files: the phase
shifts and the atomic cross section files, calculated by means of
the program phagen for an appropriate set of atomic
centers and energy mesh. More information can be found in the
phagen program documentation.
The input parameter file contains basic simple information on
the geometry of the cluster, a few parameters which determine the
accuracy of the computation and a series of output options.
Several numerical tricks are implemented in the program. The
number of angular momenta for instance is optimized at each
energy point including for each atom only the relevant L's. The
program does not use any symmetry information on the cluster. For
this reason, in cases of highly symmetric systems, it may result
slower if compared to programs which use similar routines but
work on a symmetrized basis set. On the other hand the input for
XANES is very easy to write and the program will run easily on
distorted geometries as well.
The output consists in several plots and data files.
- 2)
- Dimension parameters
The basic program included in the current UNIX distribution has
been dimensioned for general purpose needs and allocates a memory
up to 128 Mb. It is advisable that the RAM of your computer is at
least 128Mb to run efficiently the program.
There are 7 main dimension parameters which limit the possible
calculations. Those linked with the present version are indicated
below, in general they appear also in the program header of the
standard output.
- NAT_ = 87
- Max. number of atoms in the molecule or cluster
- LMAX_ = 20
- Max angular momentum to be used: L=0,1,2,...,LMAX_
among all atoms and all energies
- NDM_ =3000
- Dimension of the GT matrix. The dimension at each energy
point will be given by the sum of (LMAX(I)+1)**2 for
each atom.
- NER_ = 150
- Number of energy points in the phase-shifts mesh
- NPH_ = 6
- Number of different phases £
NAT_
- LMPH_ = 20
- Number of angular momenta in the phase-shifts ³ LMAX_
- NPI_ = 300
- Number of interpolation points (evenly spaced in k)
A few other parameters in the subroutines are also dimensioned
coherently with those of the main program. These are:
- M_ = 3000
- in HAYXAN it must be ³ then NDM_ in the main
program.
- LMAX = 15
- in PROPN which limits the angular momenta to be
used.
- NIND = 10000/50000
- in PROPN which determines the size of arrays
containing 3J coefficients.
- 3)
- Input Files
The program requires two mandatory input files and one optional:
- file 1
- Phase-shifts file, calculated by phagen, contains
the phase-shifts for the various atom and angular momenta in a
suitable energy mesh. The different phase-shifts are labeled
1,2,.... .
- file 2
- Atomic cross-section file, calculated by phagen,
contains the atomic cross-section for the various energies and
both L0+1, L0-1 channels if L0 ¹ 0.
- file 3
- (Optional file) it is a data file containing an experimental
absorption spectrum. This spectrum will be included in an output
plot for comparison with the calculated one. The data should be
written in free format the first two columns should be Energy (eV
or keV) and absorption coefficient respectively.
- 4)
- Input parameter file
Examples of input parameter files are given in the appendix. The
explanation of each line (card) in given in detail below.
- card. 1
- Phase-shift input file name
- card. 2
- Atomic cross-section input file name
- card. 3
- STR (A3) string to generate automatically the
output files names
- card. 4
- NAT Number of atoms in the cluster (including
photo-absorber)
NAT cards of type 4 will follow
- card. 5
- X,Y,Z,IPH For each atom: Cartesian coordinates
and label of the corresponding phase-shifts.
- IPH=1 ¼ first
phases in phase-shift file
- IPH=2 ¼ second
phases in phase-shift file, ...
- card. 6
- L0 Angular momentum of the core-hole
L0=0 for K,L1,..,L0=1 for
L2, L3 edges ...
- card. 7
- Toll_lmax, Mmax, Eps, Nep These are tolerance
parameters useful to optimize the calculation. Their explanation
is given below.
- ® TOLL_lmax
- it is a tolerance for the maximum angular momentum to be used
at each energy. Starting from the maximum available angular
momentum towards lower l values, the atom - energy dependent lmax
is fixed when: (2l+1) * |t_l| > TOLL_lmax * MM
MM is the maximum modulus of (2l+1)*t_l among
all atoms at the given energy. A typical value of the parameter
is 0.001, values smaller than 0.01 may result in a coarse
approximation of the spectrum which assumes a step-like shape in
correspondence of the lmax change-points. Values in the range
0.0001-0.000001 are recommended for an
accurate calculation.
- ®Mmax
- it is the maximum M value used, independently of
Lmax. Dropping large angular quantum numbers M yields an
approximated treatment of the scattering when the angle is not
zero or pi, however the contributions due to large M's
drop about one order of magnitude each time |M| is
increased by one. A typical value for this parameter is in the
range 4 to 6.
- ® EPS
- it is the convergence parameter for the recursion algorithm.
When the modulus of the difference between two successive
continued fraction approximants is less then EPS the
recursion is stopped. Typical valuer are in the range: 0.001-0.0000001
- ®Nep
- it is the actual number of energy points of the theoretical
energy mesh for which the calculation is performed. Can be useful
to test the calculation with a few points only, without
recalculating the phase-shifts. If the number is bigger than that
of the available energy points it has no effect.
- card. 8
- IOUT,IF1,IF2,ENE,FAC
These are output flags and parameters, they affect only the
output of the program.
- ®IOUT
- Defines the amount of information written on the standard
output.
- IOUT < 3
- No log_file written on the standard output.
- IOUT=3
- The detailed log_file of the continued fraction inversion is
written on the standard output
- ® IF1
- Cross-section calculation options.
- IF1 =0
- No calculation is performed (file STR_xan.sig is not
created)
- IF1 =1
- Calculation is performed and the file STR_xan.sig
will contain both atomic and cluster cross-sections
- IF1 =2
- The Hydrogenic approximation is used for the atomic
cross-section.
- ®IF2
- Comparison with experimental data, option flag.
- IF2 =0
- no comparison is performed.
- IF2 =1
- the content of the experimental data file (to be specified in
card. 10) is plotted in file STR_xan.sig for
comparison.
- ®ENE
- it is the energy in (eV) which corresponds, in the
experimental spectrum, to the theoretical zero of the energy
scale. It is used both to shift the experimental data file into
file STR_xan.sig (if IF2=1) and/or to scale
appropriately the hydrogenic cross-section.
- ®FAC
- is a multiplicative factor for the experimental data file
useful to match the vertical scales of the comparison in
STR_xan.sig.
- card. 9
- WH weight of k**WH in the plots
STR_xan.chi and STR_xan.fou.
- card. 10
- Name of the experimental file for comparison. (Optional card,
required only if IF2=1
- card. 11
- Kmin,Kmax,Dk of the interpolated signal (file
STR_xan.chi).
- card. 12
- De energy shift of the theoretical zero for the
k-scale
- 5)
- Output Files
- Standard Output
- Contains general error messages and a detailed log file for
the continued fractions evaluation, if requested. The maximum
angular momenta used for each phase-shift as well as the total
dimension of the complex matrix are reported for each energy
point. For each inversion, the successive a(i) and b(i)
coefficients of the continued fraction are reported, with the
relative approximants. A final line gives the
l0,m0 values, the number of iterations
performed, the estimated error of the continued fraction
approximant, and the approximant itself.
- STR_xan.dat
- This file is written as the previous one as soon as the
points are calculated and therefore will be present even if the
program crashes at some high energy point. It contains the
spectra of the relative oscillation of the cross section (EXAFS)
as a function of the wave-vector k. Two spectra will appear in
the case of two different allowed final angular momenta.
- STR_xan.sig
- This file contains the calculated x-ray absorption
cross-section for the isolated atom and for the cluster as a
function of the energy. Two spectra will appear when both
L0+1 and L0-1
channels are present. This plot will also report the experimental
data file if the IF2=1 option is used. This file is
written at the end of the program run.
- STR_xan.chi
- interpolated EXAFS spectrum
- STR_xan.fou
- Fourier transform of the previous file
- 7)
- References
- [1]
- A. Filipponi, ``Continued Fraction expansion for the X-ray
absorption cross section.'', J. Phys. Condensed Matter
3, 6489 (1991).
- 8)
- Appendix: Examples of input
files
The program runs with the command
xanes < xanes.in
Where xanes.in is a suitable input parameter file.
Examples of such files written according to the description of
the previous section 4 are reported below for:
- a)
- XANES of the tetrahedral SiF4 molecule.
- b)
- XANES of the octahedral ZnO6 cluster which mimics
the oxygens in the hydration shell of the Zn2+
ion.
- c)
- XANES of a Pd atom surrounded by the first shell of 12
neighbors in the f.c.c. lattice. It is a first shell
approximation of the spectrum of solid Pd.
SIF4.P30
SIF4.P50
SF4
5 ! number of atoms in the cluster
.0 , .0 , .0 , 1 ! for each atom: Cartesian
coordinates
.901, .901, .901, 2 ! and corresponding phase-shift
number
-.901, -.901, .901, 2 !
.901, -.901, -.901, 2 !
-.901, .901, -.901, 2 !
0 ! L=0 K-edge
.001,4,.0001,60 ! toll_lmax, mmax, Eps, Nep
3,1,1,1840.,.02 ! IOUT, IF1, IF2, ENE, FAC
0. ! weight k**wh of the plot FOR090 and
FOR033
SiF4_exp.dat
0.5,12.,.05 ! k_min, k_max, and dk of the
interpolated signal
0.2 ! corresponding energy of the
theoretical zero
ZnO.tl
ZnO.s0
ZnO
7 ! number of atoms in the
cluster
0.0 , 0.0 , 0.0 ,1 ! for each atom: Cartesian
coordinates
0.0 , 0.0 ,+1.98,2
0.0 , 0.0 ,-1.98,2
1.400, 1.400, 0., 2
-1.400, 1.400, 0., 2
1.400,-1.400, 0., 2
-1.400,-1.400, 0., 2
0 ! L=0 K-edge
.005,4,.0001,60 ! toll_lmax,mmax,Eps,NEP
2,2,1,9666.,.025 ! IOUT,IF1,IF2,ENE,FAC
0. ! weight k**wh of .fou plot
ZnO_exp.dat
0.2,12.,.05 ! k_min, k_max, and dk of the
interpolated signal
0.2 ! corresponding energy of the
theoretical zero
../pha/pdxpha.tl
../pha/pdxpha.s0
Pdc
13
0.000000 0.000000 0.000000 1
1.941190 1.941190 0.000000 2
1.941190 0.000000 1.941190 2
0.000000 1.941190 1.941190 2
-1.941190 1.941190 0.000000 2
-1.941190 0.000000 1.941190 2
1.941190 -1.941190 0.000000 2
0.000000 -1.941190 1.941190 2
1.941190 0.000000 -1.941190 2
0.000000 1.941190 -1.941190 2
-1.941190 -1.941190 0.000000 2
-1.941190 0.000000 -1.941190 2
0.000000 -1.941190 -1.941190 2
0 ! L=0 K-edge
.005,4,.0001,60 ! toll_lmax,mmax, Eps,NEP
2,1,1,24359.,.0075 ! IOUT,IF1,IF2,ENE,FAC
0. ! weight k**wh of the plot
FOR090
../dat1/Pd_ref_RT.ave
0.2,12.,.05 ! k_min, k_max, and dk of the
interpolated signal
0.2 ! corresponding energy of the
theoretical zero
File translated from TEX
by TTH, version 2.78.
On 26 Sep 2000, 09:12.