X0h on the Web!
Introduction FAQ Conditions of use Access to X0h Automation X0h-search


This page is an interface to my program X0h calculating crystal susceptibilities X0 , Xh (chi-zero , chi-h) for x-ray scattering and Bragg diffraction. The program also provides the associated values of the Bragg diffraction peak FWHM, extinction and absorption lengths, which can be helpful in the analysis of respective experiments.

The calculation consists of 5 steps:

  1. Calculation of scattering factors f(s).
  2. Calculation of dispersion corrections df' and df".
  3. Calculation of dipole and quadrupole absorption cross sections.
  4. Calculation of Debye-Waller temperature factors.
  5. Finally, calculation of X0 and Xh by summation of atomic scattering over crystal unit cell.

For step-1 X0h uses the 9-factors interpolation formula and the data from the International Tables for X-ray Crystallography [1].

For step-2 the International Tables contain data for characteristic x-ray lines only (Cr-Ka1, Fe-Ka1, Cu-Ka1, Mo-Ka1, and Ag-Ka1). Therefore, X0h interpolates them for intermediate wavelengths with the help of algorithm published in [2]. This algorithm evaluates the oscillator strengths of atoms at their absorption edges for each atom constituting the crystal unit cell. Then, Don Cromer's formula [3] for df' and df" is applied.

Please, note:

  1. Because of the interpolation, the data cannot reproduce XAFS and must be treated with care in a close vicinity of absorption edges. For user's reference X0h prints the closest absorption edge in structures at given x-ray energy.
  2. Since the characteristic x-ray lines are located in the energy range from 5 to 25 keV (from 0.5 to 2.5 Angstrom), strictly speaking, the applicability of the above interpolation technique is restricted by that range. However, due to using the efficient interpolation technique, in many cases the X0h data can be used in a wider range up to 0.1 -- 10 Angstrom. In addition, the interface is provided to the two freeware databases of dispersion corrections df' and df" -- the ones by Henke-Gullikson-Davis [5] and Brennan-Cowan [6], respectively. When one chooses to use external databases for df' and df", X0h replaces the data for 5 characteristic X-ray lines by that from the external database for five x-ray wavelengths nearest to the specified x-ray wavelength. Then, the same interpolation procedure [2] as described above is applied.

 For those who are interested, the Henke-Gullikson-Davis data file is downloadable from the LBL and the Brennan-Cowan code is available through the SSRL. Also, both of those data files can be found at the ESRF DABAX server.

For step-3 the method of calculating the absorption cross sections by Hildebrandt et al [4] is used for the most of elements with Z={6-54}. This works well for the 5-25 keV range and Hildebrandt technique is recommended for the calculations of Bragg diffraction from crystals since the dipole and quadrupole parts of absorption are provided.
Once the cross sections are calculated, they are used to evaluate the Im(X0) and Im(Xh) values.
For heavy and light elements as well as outside the 5-25 keV energy range the dipole part of absorption cross section is calculated through df" or several other techniques are applied [2], while the quadrupole part is taken zero.
 With the option to use external database for df' and df" the cross section is always calculated from df".

For step-4 the input is taken from [1] either via the Debye temperature TD , or the room-temperature value for the Debye coefficient B (depending on what is available in the references).

For step-5 X0h makes use of a simple expandable database containing the coordinates of atoms in unit cells for a number of crystal structures.

ATTENTION: New structure submissions are welcome. Submissions are normally added to the database within a day. Click here for instructions how to submit a structure. Please, e-mail structure descriptions to .

Acknowledgments: The idea of this site appeared under the influence of excellent x-ray server at LBL maintained by Eric Gullikson. Some part of the X0h code was written in collaboration with Olga Lugovskaya. Finally, very systematic practical tests of this program were carried out by my wife and collaborator Elena Kondrashkina.


  1. International Tables for X-ray Crystallography, vol.C - Kluwer Acad. Publ., Dordrecht/Boston/London, 1992.
  2. O.M.Lugovskaya and S.A.Stepanov -- Sov. Phys. Crystallogr., vol.36 (1991) p.478-481.
  3. D.T.Cromer -- Acta Crystallogr. vol.18 (1965) p.17-23.
  4. G.Hildebrandt, J.D.Stephenson, and H.Wagenfeld -- Z.Naturforschung, vol.30a (1975) p.697-707.
  5. B.L.Henke, E.M.Gullikson, and J.C.Davis -- Atomic Data and Nuclear Data Tables, vol.54 (1993) p.181-342.
  6. S.Brennan and P.L.Cowan -- Rev. Sci. Instrum., vol.63 (1992) p.850.

Frequently asked questions

  1. Why xi0 is positive?
    The sign of xi0 depends on the choice of exponent representing x-ray waves in the media. One can present the waves as either exp(ikr) or exp(-ikr) and both of these choices can be found in the literature. In the former case Xi0 is positive and in the latter one it is negative. The X0h provides the susceptibilities for the former case. Please check which expansion you are using before applying the X0h data.
  2. Why X0h only gives the absolute values |xrh|, |xih| together with their phase difference? What it the sign of these numbers?
    Both of xrh and xih are generally complex numbers with the phase dependent on the choice of the origin of coordinate system in the unit cell. However, the scattered x-ray intensity is invariant with respect to this phase factor and therefore it is not important. The only important parameter is the phase difference between xrh and xih. X0h provides this value under the name "Phase difference (xrh - xih)" and it is divided by PI=3.1416...
  3. What equations are used to calculate the absorption factor of x-rays, the critical angle for total external reflection, etc?
    Click here to see the equations used for x0-related parameters.
  4. What equations are used to calculate the extinction length of x-rays, the FWHM of Bragg peaks, etc?
    Click here to see the equations used for xh-related parameters.
  5. Why the Bragg and Laue case extinction lengths are so different?
    Click here to see the equations used for xh-related parameters.

Access to X0h

Click here to proceed to X0h input form.

Automation: Advanced Interaction with X0h

Access to X0h can go beyond simple Web forms presented on this server. With a little of programming on the client side X0h can be easily integrated into users scripts and other software. For example, a diffraction program written by a user can remotely access X-ray structure amplitudes provided by X0h or user can make a script plotting some X0h data depending on X-ray energy or Miller indices.

These advanced X0h features are available since 01/2006 due to adding keyworded text-form X0h output. The links below provide two example scripts that request parameters X0r and X0i for the Germanium crystal depending on the X-ray energy and save them into a file named example.dat.

getX0h.sh A bash script using lynx and sed. The script can natively run on UNIX and MAC OS. To run it on Windows, you have to install Cygwin, a freeware package providing many Linux utilities under Windows.
getX0h.pl A Perl script using Perl LWP module (WWW library for Perl). The latter is usually a part of standard Perl distribution. The Perl interpreter itself is default on UNIX and MAC OS. Freeware Perl distribution for Windows can be installed either as a part of Cygwin, or as a standalone package available from ActiveState.

Both of the scripts have the same functionality and should produce the output file example.dat looking like this:

#Energy,      xr0,        xi0
   10,  -0.18163E-04,   0.35103E-06
   11,  -0.13836E-04,   0.24208E-06
   12,  -0.12809E-04,   0.14516E-05

Beta Please, report problems and send comments to  
Site navigation: