schrodinger.application.matsci.xrd module

Module to generate powder diffraction.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.matsci.xrd.XRDCalculator(wavelength='CuKa', symprec=0, debye_waller_factors=None)

Bases: pymatgen.analysis.diffraction.xrd.XRDCalculator

See parent documentation. The main change is in get_pattern, to allow atom-less structure.

get_pattern(structure, scaled=True, two_theta_range=(0, 90), compute_intensities=True)

Calculates the diffraction pattern for a structure.

Args:

structure (Structure): Input structure scaled (bool): Whether to return scaled intensities. The maximum

peak is set to a value of 100. Defaults to True. Use False if you need the absolute values to combine XRD plots.
two_theta_range ([float of length 2]): Tuple for range of
two_thetas to calculate in degrees. Defaults to (0, 90). Set to None if you want all diffracted beams within the limiting sphere of radius 2 / wavelength.
compute_intensities (bool): If True, compute peaks intensities
(requires atoms in the structure), otherwise only peak locations
Returns:
(XRDPattern)
AVAILABLE_RADIATION = ('CuKa', 'CuKa2', 'CuKa1', 'CuKb1', 'MoKa', 'MoKa2', 'MoKa1', 'MoKb1', 'CrKa', 'CrKa2', 'CrKa1', 'CrKb1', 'FeKa', 'FeKa2', 'FeKa1', 'FeKb1', 'CoKa', 'CoKa2', 'CoKa1', 'CoKb1', 'AgKa', 'AgKa2', 'AgKa1', 'AgKb1')
SCALED_INTENSITY_TOL = 0.001
TWO_THETA_TOL = 1e-05
__init__(wavelength='CuKa', symprec=0, debye_waller_factors=None)

Initializes the XRD calculator with a given radiation.

Args:
wavelength (str/float): The wavelength can be specified as either a
float or a string. If it is a string, it must be one of the supported definitions in the AVAILABLE_RADIATION class variable, which provides useful commonly used wavelengths. If it is a float, it is interpreted as a wavelength in angstroms. Defaults to “CuKa”, i.e, Cu K_alpha radiation.
symprec (float): Symmetry precision for structure refinement. If
set to 0, no refinement is done. Otherwise, refinement is performed using spglib with provided precision.
debye_waller_factors ({element symbol: float}): Allows the
specification of Debye-Waller factors. Note that these factors are temperature dependent.
get_plot(structure, two_theta_range=(0, 90), annotate_peaks=True, ax=None, with_labels=True, fontsize=16)

Returns the diffraction plot as a matplotlib.pyplot.

Args:

structure: Input structure two_theta_range ([float of length 2]): Tuple for range of

two_thetas to calculate in degrees. Defaults to (0, 90). Set to None if you want all diffracted beams within the limiting sphere of radius 2 / wavelength.
annotate_peaks: Whether to annotate the peaks with plane
information.

ax: matplotlib Axes or None if a new figure should be created. with_labels: True to add xlabels and ylabels to the plot. fontsize: (int) fontsize for peak labels.

Returns:
(matplotlib.pyplot)
plot_structures(structures, fontsize=6, **kwargs)

Plot diffraction patterns for multiple structures on the same figure.

Args:

structures (Structure): List of structures two_theta_range ([float of length 2]): Tuple for range of

two_thetas to calculate in degrees. Defaults to (0, 90). Set to None if you want all diffracted beams within the limiting sphere of radius 2 / wavelength.
annotate_peaks (bool): Whether to annotate the peaks with plane
information.

fontsize: (int) fontsize for peak labels.

Keyword arguments controlling the display of the figure:

kwargs Meaning
title Title of the plot (Default: None).
show True to show the figure (default: True).
savefig “abc.png” or “abc.eps” to save the figure to a file.
size_kwargs Dictionary with options passed to fig.set_size_inches e.g. size_kwargs=dict(w=3, h=4)
tight_layout True to call fig.tight_layout (default: False)
ax_grid True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged.
ax_annotate Add labels to subplots e.g. (a), (b). Default: False
show_plot(structure, **kwargs)

Shows the diffraction plot.

Args:

structure (Structure): Input structure two_theta_range ([float of length 2]): Tuple for range of

two_thetas to calculate in degrees. Defaults to (0, 90). Set to None if you want all diffracted beams within the limiting sphere of radius 2 / wavelength.
annotate_peaks (bool): Whether to annotate the peaks with plane
information.