\(\renewcommand\AA{\unicode{x212B}}\)

GSASIIRefineFitPeaks v1

../_images/ImageNotFound.png

Enable screenshots using DOCS_SCREENSHOTS in CMake

Summary

Perform Rietveld or Pawley refinement of lattice parameters on a diffraction spectrum using GSAS-II scriptable API

See Also

LoadGSS, SaveGSS, Fit, EnggFitPeaks

Properties

Name

Direction

Type

Default

Description

RefinementMethod

Input

string

Pawley refinement

Refinement method (Rietvield or Pawley). Allowed values: [‘Pawley refinement’, ‘Rietveld refinement’]

InputWorkspace

Input

Workspace

Mandatory

Workspace with spectra to fit peaks

WorkspaceIndex

Input

long

0

Index of the spectrum in InputWorkspace to fit. By default, the first spectrum (ie the only one for a focused workspace) is used

InstrumentFile

Input

string

Mandatory

Location of the phase file. Allowed extensions: [‘.prm’]

PhaseInfoFiles

Input

list of str lists

Mandatory

Paths to each required phase file. Allowed extensions: [‘.cif’]

PathToGSASII

Input

string

Mandatory

Path to the directory containing GSASII executable on the user’s machine

XMin

Input

number

0

Minimum x value to use for refinement, in the same units as the input workspace. Leave blank to refine from the start of the data to XMax. Note, if PawleyDMin corresponds to a greater TOF value than this, then PawleyDMin is used

XMax

Input

number

0

Maximum x value to use for refinement, in the same units as the input workspace. Leave blank to refine in the range XMin to the end of the data

RefineSigma

Input

boolean

False

Whether to refine the sigma-1 profile coefficient

RefineGamma

Input

boolean

False

Whether to refine the gamma-1 (called ‘X’ in GSAS-II) profile coefficient

OutputWorkspace

Output

Workspace

Mandatory

Workspace with fitted peaks

LatticeParameters

Output

TableWorkspace

LatticeParameters

Table to output the lattice parameters (refined)

Rwp

Output

number

Weighted profile R factor (as a percentage)

Sigma

Output

number

Sigma-1 profile coefficient

Gamma

Output

number

Gamma-1 profile coefficient (called X in GSAS-II)

SaveGSASIIProjectFile

Input

string

Mandatory

GSASII Project to work on. Allowed extensions: [‘.gpx’]

PawleyDMin

Input

number

1

For Pawley refiment: as defined in GSAS-II, the minimum d-spacing to be used in a Pawley refinement. Please refer to the GSAS-II documentation for full details. Note, if this corresponds to a TOF value less than XMin or the lowest TOF value in the data, the greatest of the 3 values is used as XMin

PawleyNegativeWeight

Input

number

0

For Pawley refinement: as defined in GSAS-II, the weight for a penalty function applied during a Pawley refinement on resulting negative intensities. Please refer to the GSAS-II documentation for full details.

MuteGSASII

Input

boolean

False

Set to True to prevent GSAS run info from being printed (not recommended, but can be useful for debugging)

Description

Warning

This algorithm requires GSAS-II to be installed on your computer. A version of GSAS-II containing the module GSASIIscriptable (added in April 2017) is required. See Installing_GSASII for how to get the correct version of GSAS-II.

Uses GSAS-II [TobyVonDreele2013] as external software to fit peaks to a powder / engineering diffraction pattern. Here the process of peak fitting is in the context of Rietveld / Pawley / Le Bail analysis [LeBail2005]

The algorithm supports two refinement methods: Pawley refinement and Rietveld refinement. The use of this algorithm is very close to the examples described in these two GSAS-II tutorials: Rietveld fitting / CW Neutron Powder fit for Yttrium-Iron Garnet, and Getting started / Fitting individual peaks & autoindexing, The functionality of this algorithm is based on the powder calculation module and the structure routines of GSAS-II.

The refinement methods of this algorithm are equivalent to the function “Calculate / Refine” from the main menu of the GSAS-II GUI.

The main inputs required are histogram data, an instrument definition parameter (in GSAS format, readable by GSAS-II), phase information and various parameters for the fitting/refinement process.

The phase information must be provided in CIF format (Crystallographic Information File). When phase information is available the algorithm will output the lattice parameters in a table workspace. The values are given for the the full set of lattice parameters (three lattice constants, three angles, and volume in this sequence: a, b, c, alpha, beta, gamma, volume). The a,b, and c values are given in Angstroms (\(\mathrm{\AA{}}\)). The angles are given in degrees, and the volume in \(\mathrm{\AA{}}^3\).

The algorithm provides goodness-of-fit estimates in the outputs GoF and Rwp or weighted profile R-factor [Toby2008]. The Rwp is given as a percentage value.

When Pawley refinement is selected as refinement method the flag for histogram scale factor refinement is disabled, as recommended in the GSAS-II documentation, as this cannot be refined simultaneously with the Pawley reflection intensities.

The GSAS-II Rietveld/Pawley refinement process writes lattice parameters and extensive additional information in an output file with the same name as the output GSAS-II project file but with extension “.lst”. This is noted in a log message that specifies where the file has been written (next to the output project file).

Installing GSAS-II

On Windows, run either scriptsGSAS-IIinstall_gsas_latest.bat or scriptsGSAS-IIinstall_gsas_vetted.bat. Use the former for the latest version of GSAS-II and the latter for the most recent version to have been manually verified to work with GSASIIRefineFitPeaks. This will install GSAS-II to your current working drive (usually C) in a directory called g2conda.

On Linux, from scriptsGSAS-II run python install_gsas_proxy.py. Optionally, you can supply a desired revision number (defaults to the latest) with the -v flag and a directory (defaults to /) to install GSAS-II to with the -d flag.

References:

[LeBail2005]

Le Bail, A (2005). “Whole Powder Pattern Decomposition Methods and Applications: A Retrospection”. Powder Diffraction 20(4): 316-326.

[TobyVonDreele2013]

Toby, B. H., & Von Dreele, R. B. (2013). “GSAS-II: the genesis of a modern open-source all purpose crystallography software package”. Journal of Applied Crystallography, 46(2), 544-549.

[Toby2008]

Toby, B. H. (2008). “R factors in Rietveld analysis: How good is good enough?”. Powder Diffraction, 21(1), 67-70.

Usage

Warning

Take these usage examples with a pinch of salt, as they are not tested for correctness on our servers, due to the requirement to have GSAS-II installed. Please contact the Mantid developers if something is awry.

Example - Pawley refinement of lattice parameters from a diffraction spectrum

# You would normally generate the focused file using the Engg GUI or,
# alternatively, with commands like these:
#
# ws_to_focus = Load('ENGINX00256663-256675')
# wks_ceria = Load('ENGINX00255924')
# wks_vana = Load('ENGINX00254854')
# # Using default expected peaks for Ceria
# difa, difc, tzero, peaks_tbl = EnggCalibrate(InputWorkspace=wks_ceria, VanadiumWorkspace=wks_vana, Bank='North')
# wks_focused = EnggFocus(InputWorkspace=wks, VanadiumWorkspace=wks_vana, Bank='North')
# SaveNexus(InputWorkspace=wks_focused, Filename='focused_bank1_ENGINX00256663.nxs')
#
wks = Load('focused_bank1_ENGINX00256663.nxs')
peaks, lattice_params, rwp, sigma, gamma = \
    GSASIIRefineFitPeaks(InputWorkspace=wks,
                         RefinementMethod="Pawley refinement",
                         InstrumentFile='template_ENGINX_241391_236516_North_bank.prm',
                         PhaseInfoFiles='Fe-alpha.cif,Fe-gamma.cif',
                         PathToGSASII='/home/user/g2conda/GSASII',
                         RefineSigma=True,
                         RefineGamma=True,
                         SaveGSASIIProjectFile='example_gsas2_project.gpx',
                         OutputWorkspace="FittedPeaks")
print("Weighted profile R-factor (Rwp): {0:.5f}".format(rwp))
print("Lattice parameters, a: {a}, b: {b}, c: {c}, alpha: {alpha}, beta: {beta}, gamma: {gamma}, "
      "Volume: {volume:.3f}".format(**lattice_params.row(0)))
print("Sigma={}, Gamma={}".format(sigma, gamma))

Output:

Weighted profile R-factor (Rwp): 77.75515
Lattice parameters, a: 2.8665, b: 2.8665, c: 2.8665, alpha: 90.0, beta: 90.0, gamma: 90.0, Volume: 23.554
Sigma=81.0939, Gamma=0.1855

Example - Rietveld refinement of lattice parameters from a diffraction spectrum

wks=Load('focused_bank1_ENGINX00256663.nxs')
peaks, lattice_params, rwp, sigma, gamma = \
    GSASIIRefineFitPeaks(InputWorkspace=wks,
                         RefinementMethod='Rietveld refinement',
                         InstrumentFile='template_ENGINX_241391_236516_North_bank.prm',
                         PhaseInfoFiles='Fe-alpha.cif,Fe-gamma.cif',
                         PathToGSASII='/home/user/g2conda/GSASII',
                         SaveGSASIIProjectFile='example_gsas2_project.gpx',
print("Weighted profile R-factor (Rwp): {0:.5f}".format(rwp))
print("Lattice parameters, a: {a}, b: {b}, c: {c}, alpha: {alpha}, beta: {beta}, gamma: {gamma}, "
      "Volume: {volume:.3f}".format(**lattice_params.row(0)))
print("Sigma={}, Gamma={}".format(sigma, gamma))

Output:

Weighted profile R-factor (Rwp): 77.75499
Lattice parameters, a: 2.8665, b: 2.8665, c: 2.8665, alpha: 90.0, beta: 90.0, gamma: 90.0, Volume: 23.554
Sigma=81.0939, Gamma=0.1855

Categories: AlgorithmIndex | Diffraction\Engineering | Diffraction\Fitting

Source

Python: GSASIIRefineFitPeaks.py