This repository contains Jython script templates for NIST DTSA-II (introduction video) for simulating energy-dispersive x-ray spectroscopy (EDS) spectra via Monte Carlo method.
DTSA-II is maintained by Nicholas Ritchie. Please cite relevant papers if the simulations help your research (e.g., https://doi.org/10.1017/S1431927609990407).
The scripts can help in getting a better understanding of EDS physics (generation and detection) and aid in planning experiments:
- Check for critical EDS peak overlaps
- Check feasibility of trace-element detection (for a given experimental conditions)
- Check effect of different primary beam energies and doses
- Check effect of a detector window on low-energy x-ray absorption
The source codes for DTSA-II and the EPQ Library are available through GitHub.
Simulation of a 70 nm thick TEM sample of GdBa2Cu3O7 at 200 keV with and without added 12 mol% BaHfO3. Hf-L lines overlap with Cu-K lines and create shoulders on the strong Cu peak. A Hf-M line peak is visible at around 2 keV. No detector window was used here.
This example is related to this paper (see Fig. S5 for an experimental example of the Hf-L peak overlap with Cu-K).
NIST DTSA-II uses Monte Carlo method to simulate electron scattering and x-ray generation and transport through the sample (and detector window). DTSA-II models electron scattering and (secondary) x-ray generation/absorption quite well, but descrepancies are to expected especially for "lesser used" low-energy x-ray transitions (e.g., M series). Have a look at the simulation video.
NIST DTSA-II comes installed with a Jython console. The scripts are loaded and executed within DTSA-II where the simulated spectra are conventiently displayed.
- Install NIST DTSA-II and open it (see here).
- Define an instrument with an EDS detector in DTSA-II (PDF).
Simulations for different energy dispersion (e.g., 5/10/20 eV/channel), number of channels, detector window, etc. require the definition of multiple detectors. CalllistDetectors()
in the DTSA-II scripting window to get the detector names and IDs (d...
). For the FEI/TFS TEM SuperX detector, have a look here. - Optional: Pre-define your sample material in DTSA-II (Video).
Alternatively, this can also be done directly in the scripts (material
class).
- Download/clone this repository or the desired script template (
.py
file). - Recommended: For each simulation, make a copy of the script in a separate folder. By default, the simulation results are stored in this folder.
- Open the script in a text editor and adjust the user parameters.
- Run the simulation by opening the script in DTSA.
- Different output files are generated and saved.
msa
files contain the spectrum data and can be typically imported in any EDS software.
Free-standing transmission electron microscopy (TEM) sample/film of a given thickness and homogeneous composition. The Series
scripts loop over different experimental parameters and create multiple spectra.
TEM_Homogeneous
Basic TEM sample simulation.TEM_Homogeneous_Series_Thickness
Simulate different TEM sample thicknesses.TEM_Homogeneous_Series_Dose
Simulate different total electron doses.
Scripts related to doping/trace concentrations (Please double-check the generated sample compositions/stoichiometries given in the DTSA console!):
TEM_Homogeneous_Series_ElementDopingStoichiometry
Simulate different doping levels of an element into the sample. Doping level given as stoichiometry ("number of dopant atoms added to the sample"; e.g. a doping value of "1.0" atoms of S in ZnO will lead to "ZnOS" or 33.3 at% S).TEM_Homogeneous_Series_ElementDopingWeightPerc
Simulate different doping levels of an element into the sample. Doping level given as weight%.TEM_Homogeneous_Series_ElementDopingAtomicPerc
Simulate different doping levels of an element into the sample. Doping level given as atomic%.TEM_Homogeneous_Series_CompositionDopingWeightPerc
Simulate different doping levels of another material into the sample. Doping level given as weight%.TEM_Homogeneous_Series_CompositionDopingMolePerc
Simulate different doping levels of another material into the sample. Doping level given as mol% (e.g., 1 mol% TiO2 in SrTiO3 will be (SrTiO3)0.99(TiO2)0.01).
Similar simulations as above can be performed using the Tools -> Simulation Alien... -> Monte Carlo model of a film on a bulk, homogeneous substrate
in the GUI and specifying None
as the substrate material.
- Many PDFs with guides are provided on the NIST DTSA-II page
- Repository of John Minter (mostly SEM).
- ProbeSoftware forum