orth_to_frac: From orthogonal to fractional coordinates
Description
This function transforms any number of orthogonal coordinates \((x,y,z)\),
arranged as a vector or in a matrix or data frame, into the corresponding number
of fractional coordinates \((x_f,y_f,z_f)\), arranged in the same format.
ochoice = 1: X axis along a; Y axis normal to a, in the (a,b) plane;
Z axis normal to X and Y (and therefore parallel to
c*).
ochoice = 2: this is also called "Cambridge setting". The X axis is
along a*; the Y axis lies in the (a*,b*) plane; the Z
axis is, consequently, along c.
Usage
orth_to_frac(xyz, a, b, c, aa, bb, cc, ochoice = 1)
Value
A \(n\times 3\) matrix or data frame of fractional coordinates corresponding
to the orthogonal coordinates provided in the input.
Arguments
xyz
A vector or \(n\times 3\) matrix or data frame of orthogonal crystal coordinates.
a
A real number. One of the unit cell's side lengths, in angstroms.
b
A real number. One of the unit cell's side lengths, in angstroms.
c
A real number. One of the unit cell's side lengths, in angstroms.
aa
A real number. One of the unit cell's angles, in degrees.
bb
A real number. One of the unit cell's angles, in degrees.
cc
A real number. One of the unit cell's angles, in degrees.
ochoice
A natural integer indicating the choice of orthogonal transformation.
1 corresponds to the first choice and 2 to the second choice in
Giacovazzo's book (see xtal_mat01 and xtal_mat02).