bionic (3) Xray::Scattering.3pm.gz

Provided by: libxray-scattering-perl_3.0.1-2_all bug

NAME

       Xray::Scattering - X-ray scattering data for the elements

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

       "available"
           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.

       "get_valence"
           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 "va".

              $symbol = Xray::Scattering->get_valence($elem, $valence)

           Unless the valence is a dot or the string "va", the nearest integer to $valence is used with the
           element symbol to construct the element/valence symbol.  As an example, "$symbol eq "Cu2+"" if "$elem
           eq "Cu"" and "$valence == 2".

SUBCLASS METHODS

       All the available subclasses corresponding to the data resources provide their own versions of the
       following methods:

       "get_f"
           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, "get_f" returns 0.  It also returns 0 when $symbol
           consists of whitespace or is "null" or "nu".  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 "None" 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.

       "get_coefficients"
           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.

       "has"
           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 AT bnl DOT gov

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

       Copyright (c) 2006-2008 Bruce Ravel (bravel AT bnl DOT 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 WITHOUT ANY WARRANTY; without even
       the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.