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

SaveIsawUB v1

../_images/SaveIsawUB-v1_dlg.png

SaveIsawUB dialog.

Summary

Save a UB matrix and lattice parameters from a workspace to an ISAW-style ASCII file.

Properties

Name Direction Type Default Description
InputWorkspace Input Workspace Mandatory An input workspace containing the orientation matrix.
Filename Input string Mandatory Path to an ISAW-style UB matrix text file. Allowed extensions: [‘.mat’, ‘.ub’, ‘.txt’]

Description

This saves a workspace’s UB matrix to an ISAW-style UB matrix text file.

The resulting file can be loaded again into another workspace by using the LoadIsawUB v1 algorithm.

The matrix saved is the transpose of the UB matrix. The UB matrix maps the column vector (h,k,l ) to the column vector (q’x,q’y,q’z). |Q’|=1/dspacing and its coordinates are a right-hand coordinate system where x is the beam direction and z is vertically upward. (IPNS convention)

Usage

#A workspace with some UB matrix
w = CreateSingleValuedWorkspace()
SetUB(w, 2, 4, 5, 90, 90, 90, "0,0,1", "1,0,0")
#run the algorithm
import mantid
filename = mantid.config.getString("defaultsave.directory") + "saveIsawUBTest.mat"
SaveIsawUB(w, filename)

#check if the correct results are written in the file
f = open(filename, "r")
x, y, z = map(float, f.readline().split())
if (x==0) and (y==0.5) and (z==0):
    print("The first line is 0 0.5 0")
x, y, z = map(float, f.readline().split())
if (x==0) and (y==0) and (z==0.25):
    print("The second line is 0 0 0.25")
x, y, z = map(float, f.readline().split())
if (x==0.2) and (y==0) and (z==0):
    print("The third line is 0.2 0 0")
f.close()

Output:

The first line is 0 0.5 0
The second line is 0 0 0.25
The third line is 0.2 0 0

Categories: AlgorithmIndex | Crystal\DataHandling | DataHandling\Isaw

Source

C++ header: SaveIsawUB.h

C++ source: SaveIsawUB.cpp