Running FEFF


The main program feff reads a single input file (‘feff.inp’) and executes the various program modules described below. The user can either supply this file himself; or he can set all input options through the feff GUI, which will then create a ‘feff.inp’ and launch feff without the need for manual text editing or command line activity.

This section describes the input in ‘feff.inp’ or the GUI, and the commands that control feff. It may be helpful to look at one or more of the sample input files in Section 5 while reading this section.

The input file ‘feff.inp’ is a loosely formatted, line-oriented text file. Each type of input read by the program is on a line which starts with a CARD, which is a keyword possibly followed by alpha-numeric data. The sequence of keyword cards is arbitrary. If any card or optional data is omitted, default values are used; an exception is the POTENTIALS card, which is always required. Either the ATOMS card or the OVERLAP card is also required for feff to run.

Alpha-numeric values are listed in free format, separated by blanks. Tab characters are not allowed and may cause confusing error messages. Any characters appearing after the card and its required or optional data on a given line are ignored by feff and can be used as end-of-line comments. Empty lines are ignored. Any line beginning with an asterisk (*) is regarded as a comment and is also ignored.

Users working from the GUI do not need to worry about formatting, of course, and can get more information about any CARD by simply hovering the mouse over it.

All distances are in angstroms (A) and energies in electron-volts (eV).

An auxiliary FORTRAN program (atoms), developed by Bruce Ravel, can generate the ‘feff.inp’ file for crystals from crystallographic input parameters. A perl-based graphical user interface to atoms is available as part of the Demeter package of EXAFS data processing and analysis software at

Additionally, feff9 can now also treat crystals specified by their unit cell.

Once the input is prepared, the calculation of various spectroscopies proceeds by giving a single command feff from a command line terminal, or by clicking the Run button in the GUI. This executes a script bundling fifteen modules that together comprise the feff code.

Generally, not all steps are run for a given calculation. To some extent, each step can be controlled individually through cards or an intermediate input file (pot.inp, ldos.inp, ...). In the GUI one can easily select which modules one wants to run. On the command line one can either call each of the modules by name, or use the script called ‘feff’ to run all of them sequentially. The CONTROL card provides further options for running only select modules. Note that it’s useless to run any module unless the preceding modules have been run already. We recommend that novice users simply run the feff command until they develop a more detailed understanding of how the feff code works. The underlying program flow is as follows:

  1. The ‘feff.inp’ file is read and checked for consistency. Various intermediate input files are written (in the module rdinp, read input).
  2. Ab initio Debye-Waller factors are calculated if the dynamical matrix is provided. (dmdw, dynamical matrix to debye-waller.)
  3. Atomic overlap (Mattheiss) potentials are calculated. (module atomic, atomic poten- tials.)
  4. The scattering potentials are calculated self-consistently using an automated SCF loop. Absolute energies are estimated. (module pot, potentials.)
  5. RPA screening is used to calculate the core-hole potential. (module screen.)
  6. The angular momentum projected density of states is calculated. (module ldos.)
  7. Some intermediate output is written to file. (module opconsat.)
  8. The scattering phase shifts, dipole matrix elements, and x-ray cross-section are calculated. (module xsph, cross-section and phases.)
  9. Full multiple scattering XANES/ELNES calculations are done to obtain the full Green’s function for a specified cluster size. (module fms, full multiple scattering.)
  10. The relevant elements of the FMS Green’s function are traced and multiplied by matrix elements. (module mkgtr, trace Green’s function.)
  11. The leading multiple scattering paths for the cluster are enumerated. (module path, path enumeration.)
  12. The effective scattering amplitudes feff and other XAFS parameters are calculated for each scattering path. (module genfmt, general-path F-matrix calculation.)
  13. The XAFS parameters from one or more paths are combined to calculate a total XAFS or XANES spectrum. (module ff2x, scattering amplitude to χ.)
  14. Regular XAS output files (e.g., ‘xmu.dat’) are convolved with a many body spectral function to include many body effects. (module sfconv.)
  15. The electron energy loss spectrum is calculated. (module eels. See Section 3.12.)

Next Section: The master input file, ‘feff.inp’

Back to FEFF Document Contents

developer's resources