Data flow
From FEFF
Other files required by the various modules are created by feff from ‘feff.inp’. Some of these other files may be edited by the user as a way to modify the input data to the modules, see Section 3.3. See the PRINT card in Section 2.2 to obtain various diagnostic files. This section summarizes that structure.
Module 0 . . . rdinp
Purpose of Module: Process input data
- Input files: `feff.inp'
- Output files: `geom.dat', `global.inp', 'pot.inp', `xsph.inp', `fms.inp', `path.inp', `genfmt.inp', `ff2x.inp', `ldos.inp', and `eels.inp'
- Other output: `paths.dat' (only if the SS card is used)
- Description: Reads the `feff.inp' file, makes appropriate operations on the data, and writes the resulting information into several intermediate files, which contain formatted data needed for all modules.
Module 1 . . . atomic
Purpose of Module: Calculate atomic potentials for the photoelectron
- Input files: `pot.inp' and `geom.dat'
- Output files: `apot.bin'
- Other output: `fpf0.dat'
- Description: Reads `pot.inp' and calculates atomic potentials for the photoelectron, which are written into `apot.bin'.
Module 2 . . . pot
Purpose of Module: Calculate embedded atomic potentials for the photoelectron
- Input files: `pot.inp',`apot.bin' and `geom.dat'
- Output files: `pot.bin'
- Other output: diagnostic files (see PRINT card)
- Description: Reads `pot.inp' and calculates potentials for the photoelectron, which are written into `pot.bin'. Optionally, pot will write other diagnostic files with information about the potentials.
Module 3 . . . screen
- Purpose of Module: Calculate embedded atomic potentials for the photoelectron
- Input files: `pot.bin' and, optionally, `screen.inp'
- Output files: `wscrn.dat'
- Description: Calculates screening, which is written into `wscrn.dat'.
Module 4 . . . ldos
Purpose of Module: Calculate LDOS
- Input files: `ldos.inp', `geom.dat', and `pot.bin'.
- Output files: `ldosNN.dat' (`DOS) and `logdos.dat'
- Other output:
- Description: LDOS runs only if the LDOS card is present in `feff.inp'. It outputs the angular momentum (`) projected DOS into `ldosNN.dat' files, with each value of NN corresponding to each unique potential.
Module 5 . . . xsph
Purpose of Module: Calculate cross-section and phase shifts
- Input files: `xsph.inp', `geom.dat', `global.dat' and `pot.bin'
- Output files: `phase.bin', and `xsect.dat',
- Other output: diagnostic files (see PRINT card), and `axafs.dat'.
- Description: xsph writes the binary file `phase.bin', which contains the scattering phase shifts and other information needed by path and genfmt. The atomic crosssection data is written in `xsect.dat' and used in the module (ff2x) for overall normalization. Optionally, xsph will write other diagnostic files with information about the phase shift calculations.
Module 6 . . . fms
Purpose of Module: Calculate full multiple scattering for XANES, ELNES and `DOS
- Input files: `fms.inp', `global.dat', `geom.dat', and `phase.bin'
- Output files: `gg.bin'
- Other output: optionally `gg.dat'
- Description: Performs the full multiple scattering algorithm. Writes the Green's function matrix to `gg.bin'.
Module 7 . . . mkgtr
Purpose of Module: Calculate full multiple scattering for XANES, ELNES and `DOS
- Input files: `fms.inp', `global.dat', `geom.dat', `gg.bin' and `phase.bin'
- Output files: `fms.bin'
- Other output: optionally `gtr.dat'
- Description: Traces the Green's function matrix and adds in matrix elemtens. Output written to `fms.bin'. Writes output into `fms.bin' for the ff2x module, which contains the chi(k) from fms. If an ELNES/EXELFS card is present, all of the requested components of the sigma tensor are written to `fms.bin', instead of just one.
Module 8 . . . path
Purpose of Module: Path enumeration
- Input files: `path.inp', `geom.dat', `global.dat' and `phase.bin'
- Output files: `paths.dat'
- Other output: `crit.dat'
- Description: path writes `paths.dat' for use by genfmt and as a complete description of each path for use of the user. path will optionally write other diagnostic files. The file `crit.dat' is particularly useful when studying large numbers of paths. When studying large numbers of paths, this module will optionally write only `crit.dat' and not `paths.dat'. If an ELNES/EXELFS card is present, a separate `list.dat' file is written for each polarization component (i.e., `list.dat', `list02.dat', etc.).
Module 9 . . . genfmt
Purpose of Module: Calculate scattering amplitudes and other XAFS parameters
- Input files: `genfmt.inp', `global.dat', `phase.bin', and `paths.dat'
- Output files: `feff.bin', and `list.dat'
- Other output:
- Description: genfmt reads input files, and writes a file `feff.bin', which contains all the EXAFS information for the paths, and `list.dat', which contains some basic information about them. These files are the main output of feff for EXAFS analysis. To read `feff.bin' into your own program, use the subroutine feffdt as an example. If an ELNES/EXELFS card is present, a `listNN.dat' file is written for each polarization component, and a separate `feff.bin' file is written (i.e., `feff.bin', `feff02.bin', etc.). The format of the files is unchanged.
Module 10 . . . ff2x
Purpose of Module: Calculate specified x-ray spectrum
- Input files: `ff2x.inp', `global.dat', `list.dat', `feff.bin', `fms.bin', `xsect.bin'
- Output files: `chi.dat' and `xmu.dat'
- Other output: `chipNNNN.dat' and `feffNNNN.dat'
- Description: ff2x reads `list.dat', `fms.bin', `feff.bin', and writes `chi.dat' with the total XAFS from the paths specified in `list.dat'. Additional instructions are passed to ff2x from `feff.bin', so you can change S02, the Debye temperature and some other parameters without re-doing the whole calculation. The file `list.dat' can be edited by hand to change the paths being considered, and individual `chipNNNN.dat' files with chi(k) from each path are optionally written. If any of the XANES, DANES, FPRIME or XNCD cards are specified, ff2x will write the corresponding calculated data in `xmu.dat'. Various corrections are possible at this point in the calculations- see the input cards above. If an ELNES/EXELFS card is present, this module reads the large `fms.bin' and all the `feffNN.bin' files, and produces a `xmuNN.dat' file containing the corresponding component of the sigma tensor (`xmu.dat', `xmu02.dat', ..., `xmu09.dat'). Those files have the traditional `xmu.dat' format. Similarly, `chiNN.dat' files are produced.
Module 11 . . . sfconv
Purpose of Module: Convolve output files with the spectral function.
- Input files: `sfconv.inp', `xmu.dat', `chi.dat', `chipNNNN.dat', or `feffNNNN.dat'
- Output files: `specfunct.dat',
- Other output: The following files are overwritten with convolved spectral data: `xmu.dat',
`chi.dat', `chipNNNN.dat', and `feffNNNN.dat'.
- Description: SFCONV convolutes the single particle XAS files with a many body spectral function to include many body effects on the spectra, including an ab-initio calculation of the amplitude reduction factor S20 . This module runs after ff2x if the SFCONV card is present in `feff.inp'. In the presence of an EELS card, the module is run for all components of the sigma tensor: each `xmu.dat' file is opened and altered individually.
Module 12 . . . eels
Purpose of Module: Calculate EELS
- Input files: `eels.inp'
- Output files: `eels.dat' and `logeels.dat'
- Other output: optionally, `magic.dat'
- Description: EELS runs only in the presence of an EELS card. It reads `eels.inp', and sums the partial spectra from the various polarizations to assemble a physical EELS spectrum. This module is active if one of the EELS cards (ELNES and EXELFS) is specified.
