gov.nist.microanalysis.EPQLibrary
Class MassAbsorptionCoefficient

java.lang.Object
  extended by gov.nist.microanalysis.EPQLibrary.AlgorithmClass
      extended by gov.nist.microanalysis.EPQLibrary.MassAbsorptionCoefficient
All Implemented Interfaces:
java.lang.Comparable

public abstract class MassAbsorptionCoefficient
extends AlgorithmClass

An abstract class that serves as the basis for various different implementations of the mass absorption coefficient (MAC) based on equations, interpolations or tabulations. The SI unit for MAC is m^2/kg. A conventional unit for MAC is cm^2/g = 0.01^2/0.001 = 10^-1 m^2/kg.

Copyright: Pursuant to title 17 Section 105 of the United States Code this software is not subject to copyright protection and is in the public domain

Company: National Institute of Standards and Technology

Version:
1.0
Author:
Nicholas W. M. Ritchie

Field Summary
static MassAbsorptionCoefficient BastinHeijligers89
          BastinHeijligers89 - The mass absorption coefficients for selected elements calculated by Bastin and Heijligers (1985, 1988, 1989) as quoted in Scott, Love & Reed, Quantitative Electron-Probe Microanalysis, 2nd ed.
static MassAbsorptionCoefficient Chantler2005
           Chantler2005 - Chandler2005 seems to be a very capable set of MAC computed from theory.
static MassAbsorptionCoefficient Default
          Default - This specifies the default implementation used elsewhere in the application when a MAC is required.
static MassAbsorptionCoefficient DTSA_CitZAF
          DTSA_CitZAF - The CitZAF MACs for Ka, La and Ma included as part of the DTSA application.
static MassAbsorptionCoefficient Heinrich86
          Heinrich86 - Uses the algorithm for calculating the MassAbsorptionCoefficient due to Heinrich and published in the IXCOM 11 proceedings.
static MassAbsorptionCoefficient HeinrichAlt
           
static MassAbsorptionCoefficient HeinrichDtsa
          Heinrich86 - Uses the algorithm for calculating the MassAbsorptionCoefficient due to Heinrich and published in the IXCOM 11 proceedings modified to behave like the DTSA implementation.
static MassAbsorptionCoefficient Henke82
          Henke82 - BL Henke, P Lee, TJ Tanaka, RL Shimabukuro and BK Fijikawa, Atomic Data Nucl Data Tables 27, 1 (1982)
static MassAbsorptionCoefficient Null
          Null - No absorption
static MassAbsorptionCoefficient Pouchou1991
           
static MassAbsorptionCoefficient PouchouPichoir88
          PouchouPichoir88 - JL Pouchou and FMA.
static MassAbsorptionCoefficient Ritchie2005a
          Ritchie2005a - My best guess at a good set of mass absorption coefficients for general use.
static MassAbsorptionCoefficient Ruste79
          Ruste79 - J Ruste, J Microsc Spectrosc Electron 4, 123 (1979)
 
Method Summary
 java.lang.String caveat(Composition comp)
           
 java.lang.String caveat(Composition comp, double energy)
          caveat - Determines any relevant caveats based on the caveats for the constituent elements.
 java.lang.String caveat(Element el, double energy)
          caveat - Specifies the caveats for the specific elemant and x-ray energy.
 double compute(Composition comp, double energy)
          compute - Compute the mass absorption coefficient for an x-ray of the specified energy in the specified material.
 double compute(Composition comp, XRayTransition xrt)
          compute - Compute the mass absorption coefficient for the specified x-ray in the specified material.
abstract  double compute(Element el, double energy)
          compute - Each different version of the algorithm should implement this method.
 double compute(Element el, XRayTransition xrt)
          compute - Computes the mass absorption coefficient for the specified transition.
 java.util.Map evaluateAllImplementations(Element el, double energy)
          evaluateAllImplementations - Produces a map containing the algorithm and the resulting mass absorption coefficient for the specified Element and x-ray energy.
 java.util.Map evaluateAllImplementations(Element el, XRayTransition xrt)
           
static double fromCmSqrPerGram(double x)
          Converts MACs from cm^2/g
 java.util.List getAllImplementations()
          getAllImplementations - Returns a full list of all available algorithms.
protected  void initializeDefaultStrategy()
          initializeDefaultStrategy - Implement this method in derived classes to specify the contents (possibly null) of the default Strategy using the addDefaultAlgorithm(Class,AlgorithmClass) method.
 boolean isAvailable(Element el, double energy)
          isAvailable - Is this algorithm implemented for the specified element and energy.
static double toCmSqrPerGram(double x)
          Converts MACs from SI to cm^2/g
 
Methods inherited from class gov.nist.microanalysis.EPQLibrary.AlgorithmClass
addDefaultAlgorithm, allAlgorithmNames, allAlgorithms, applyGlobalOverride, clearGlobalOverride, compareTo, documentStrategy, getActiveStrategy, getAlgorithm, getAlgorithmClass, getName, getReference, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

Ruste79

public static final MassAbsorptionCoefficient Ruste79
Ruste79 - J Ruste, J Microsc Spectrosc Electron 4, 123 (1979)


Pouchou1991

public static final MassAbsorptionCoefficient Pouchou1991

PouchouPichoir88

public static final MassAbsorptionCoefficient PouchouPichoir88
PouchouPichoir88 - JL Pouchou and FMA. Pichoir, "Determination of Mass Absorption Coefficients for Soft X-Rays by use of the Electron Microprobe" Microbeam Analysis, Ed DE Newbury, San Francisco Press, 1988, p 319-324


Henke82

public static final MassAbsorptionCoefficient Henke82
Henke82 - BL Henke, P Lee, TJ Tanaka, RL Shimabukuro and BK Fijikawa, Atomic Data Nucl Data Tables 27, 1 (1982)


BastinHeijligers89

public static final MassAbsorptionCoefficient BastinHeijligers89
BastinHeijligers89 - The mass absorption coefficients for selected elements calculated by Bastin and Heijligers (1985, 1988, 1989) as quoted in Scott, Love & Reed, Quantitative Electron-Probe Microanalysis, 2nd ed.


Heinrich86

public static final MassAbsorptionCoefficient Heinrich86
Heinrich86 - Uses the algorithm for calculating the MassAbsorptionCoefficient due to Heinrich and published in the IXCOM 11 proceedings.


HeinrichDtsa

public static final MassAbsorptionCoefficient HeinrichDtsa
Heinrich86 - Uses the algorithm for calculating the MassAbsorptionCoefficient due to Heinrich and published in the IXCOM 11 proceedings modified to behave like the DTSA implementation.


HeinrichAlt

public static final MassAbsorptionCoefficient HeinrichAlt

Chantler2005

public static final MassAbsorptionCoefficient Chantler2005

Chantler2005 - Chandler2005 seems to be a very capable set of MAC computed from theory. They form a matched pair with the edge energies in EdgeEnergy.Chantler2005.

Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., Kotochigova, S.A., and Zucker, D.S. (2005), X-Ray Form Factor, Attenuation and Scattering Tables (version 2.1). [Online] Available: http://physics.nist.gov/ffast [16-March-2005]. National Institute of Standards and Technology, Gaithersburg, MD. Originally published as Chantler, C.T., J. Phys. Chem. Ref. Data 29(4), 597-1048 (2000); and Chantler, C.T., J. Phys. Chem. Ref. Data 24, 71-643 (1995).


DTSA_CitZAF

public static final MassAbsorptionCoefficient DTSA_CitZAF
DTSA_CitZAF - The CitZAF MACs for Ka, La and Ma included as part of the DTSA application.


Ritchie2005a

public static final MassAbsorptionCoefficient Ritchie2005a
Ritchie2005a - My best guess at a good set of mass absorption coefficients for general use. Use measured values when available otherwise default to Chantler2005 (z<=92) and Heinrich's DTSA (z>92).


Null

public static final MassAbsorptionCoefficient Null
Null - No absorption


Default

public static MassAbsorptionCoefficient Default
Default - This specifies the default implementation used elsewhere in the application when a MAC is required. Currently the default is Ritchie2005a.

Method Detail

fromCmSqrPerGram

public static double fromCmSqrPerGram(double x)
Converts MACs from cm^2/g

Parameters:
x -
Returns:
double

toCmSqrPerGram

public static double toCmSqrPerGram(double x)
Converts MACs from SI to cm^2/g

Parameters:
x -
Returns:
double

initializeDefaultStrategy

protected void initializeDefaultStrategy()
Description copied from class: AlgorithmClass
initializeDefaultStrategy - Implement this method in derived classes to specify the contents (possibly null) of the default Strategy using the addDefaultAlgorithm(Class,AlgorithmClass) method.

Specified by:
initializeDefaultStrategy in class AlgorithmClass

getAllImplementations

public java.util.List getAllImplementations()
getAllImplementations - Returns a full list of all available algorithms. Each item is an implements the MassAbsorptionCoefficient.

Specified by:
getAllImplementations in class AlgorithmClass
Returns:
List

compute

public abstract double compute(Element el,
                               double energy)
compute - Each different version of the algorithm should implement this method.

Parameters:
el - Element - The absorber element
energy - double - The x-ray energy in Joules
Returns:
double - Absorption per unit length (meter) per unit density (kg/m^3)

isAvailable

public boolean isAvailable(Element el,
                           double energy)
isAvailable - Is this algorithm implemented for the specified element and energy. If the MAC algorithm only implements compute(Element el,XRayTransition), this method will always return false.

Parameters:
el - Element
energy - double
Returns:
true if this algorithm implements this particular element and energy

compute

public double compute(Element el,
                      XRayTransition xrt)
               throws EPQException
compute - Computes the mass absorption coefficient for the specified transition. When ever possible, use this method rather than the alternative compute(Composition comp,double energy) as this method is available for both tabulated and computed algorithms. The default implementation of this algorithm just defers to compute(Element el,xrt.getEnergy()).

Parameters:
el - Element
xrt - XRayTransition
Returns:
double
Throws:
EPQException - - If xrt.getEnergy() throws an exception

compute

public final double compute(Composition comp,
                            double energy)
compute - Compute the mass absorption coefficient for an x-ray of the specified energy in the specified material. Note the value returned is the absorption for a material of a nominal density of 1 kg/m^3. Multiply this by the density to get the true MAC.

Parameters:
comp - Composition - The absorbing material
energy - double - The x-ray energy in Joules
Returns:
double - Absorption per unit length per kg/m^3

compute

public final double compute(Composition comp,
                            XRayTransition xrt)
                     throws EPQException
compute - Compute the mass absorption coefficient for the specified x-ray in the specified material. Use this method preferentially over compute(comp,energy) whenever the XRayTransition is known. This implementation can use tabulated MACs whereas the energy specific implementation can not.

Parameters:
comp - Composition - The absorbing material
xrt - XRayTransition - The x-ray transition
Returns:
double - Absorption per unit length per kg/m^3
Throws:
EPQException

caveat

public java.lang.String caveat(Element el,
                               double energy)
caveat - Specifies the caveats for the specific elemant and x-ray energy.

Parameters:
el - Element
energy - double
Returns:
String

caveat

public java.lang.String caveat(Composition comp,
                               double energy)
caveat - Determines any relevant caveats based on the caveats for the constituent elements.

Parameters:
comp - Composition
energy - double
Returns:
String

caveat

public java.lang.String caveat(Composition comp)

evaluateAllImplementations

public java.util.Map evaluateAllImplementations(Element el,
                                                double energy)
evaluateAllImplementations - Produces a map containing the algorithm and the resulting mass absorption coefficient for the specified Element and x-ray energy.

Parameters:
el - Element
energy - double
Returns:
Map

evaluateAllImplementations

public java.util.Map evaluateAllImplementations(Element el,
                                                XRayTransition xrt)