GNXAS DOCUMENTATION

Program: XANES

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.