\(\renewcommand\AA{\unicode{x212B}}\)
SaveIsawUB v1¶
Summary¶
Save a UB matrix and lattice parameters from a workspace to an ISAW-style ASCII file.
See Also¶
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
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 | Crystal\UBMatrix
Source¶
C++ header: SaveIsawUB.h
C++ source: SaveIsawUB.cpp