SYNOPSIS

  use Xray::Scattering;
  Xray::Scattering->load('CroMann');
  $fnot = Xray::Scattering->get_f($symb, $d);

  Xray::Scattering->load('WaasKirt');
  $fnot = Xray::Scattering->get_f($symb, $d);

DESCRIPTION

This module supports access to X-ray scattering data for atoms and ions. It is designed to be a transparent interface to scattering data from a variety of sources. Currently, the only sources of data are the Cromer-Mann tables from the International Tables of Crystallography and the 1995 Waasmaier-Kirfel tables. More resources can be added easily.

METHODS

This method returns a list of data resources available to this module. Currently this returns an array consisting of these strings: Cromer-Mann Waasmaier-Kirfel None The first two are functional interfaces to those databases. The third is a fallback subclass which returns default values for all methods. This returns the element/valence symbol in the proper form for use with other methods. $elem is a two-letter atomic symbol, and $valence is the valence of the ion. $valence can be an integer, a float, a dot or the string \*(L"va\*(R". $symbol = Xray::Scattering->get_valence($elem, $valence) Unless the valence is a dot or the string \*(L"va\*(R", the nearest integer to $valence is used with the element symbol to construct the element/valence symbol. As an example, \*(C`$symbol eq "Cu2+"\*(C' if \*(C`$elem eq "Cu"\*(C' and \*(C`$valence == 2\*(C'.

SUBCLASS METHODS

All the available subclasses corresponding to the data resources provide their own versions of the following methods: This function calculates the Thomson scattering for a given symbol and d-spacing. The Thomson scattering depends only on the momentum transfer. The d-spacing of the scattering planes is a closely related quantity and is easily calculated from the crystal structure, see Xtal.pm. $symb = "Ce3+"; $fnot = Xray::Scattering->get_f($symb, $d); If the symbol cannot be found in the table, \*(C`get_f\*(C' returns 0. It also returns 0 when $symbol consists of whitespace or is \*(L"null\*(R" or \*(L"nu\*(R". If $symbol is a number or the name of an element, then it assumes you want the Thomson scattering for the neutral element. The absolute value of $d_spacing is used by this function. The \*(C`None\*(C' subclass always returns 0. If you ask for a valence state that is not in the table but for an element whose 0+ state is in the table, this method returns the scattering factor for the 0 valent atom. This returns the 9 (Cromer-Mann) or 11 (Waasmaier-Kirfel) element list containing the coefficients for the given symbol. @coefs = Xray::Scattering->get_coefficients($symb) See the documents for the subclasses for the order of the coefficients. The None subclass always returns a list of 11 zeros. If you ask for a valence state that is not in the table but for an element whose 0+ state is in the table, this method returns the coefficients for the 0 valent atom. This is a test of whether a given symbol is tabulated in the selected data resource table. It returns the symbol itself if found in the table or 0 if it is not in the table. $symb = "Ce3+"; $has = Xray::Scattering->has($symb); The None subclass returns the symbol itself.

AUTHOR

Bruce Ravel, bravel \s-1AT\s0 bnl \s-1DOT\s0 gov

http://cars9.uchicago.edu/~ravel/software/exafs/

LICENCE AND COPYRIGHT

Copyright (c) 2006-2008 Bruce Ravel (bravel \s-1AT\s0 bnl \s-1DOT\s0 gov). All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.

This program is distributed in the hope that it will be useful, but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0.