FOX/ObjCryst++
1.10.X (development)
|
Lightweight class describing the reciprocal unit cell, for the fast computation of d*_hkl^2. More...
Public Member Functions | |
RecUnitCell (const float zero=0, const float par0=0, const float par1=0, const float par2=0, const float par3=0, const float par4=0, const float par5=0, CrystalSystem lattice=CUBIC, const CrystalCentering cent=LATTICE_P) | |
light-weight class storing the reciprocal space unitcell | |
RecUnitCell (const RecUnitCell &old) | |
void | operator= (const RecUnitCell &rhs) |
float | hkl2d (const float h, const float k, const float l, REAL *derivpar=NULL, const unsigned int derivhkl=0) const |
Compute d*^2 for hkl reflection if deriv != -1, compute derivate versus the corresponding parameter. More... | |
void | hkl2d_delta (const float h, const float k, const float l, const RecUnitCell &delta, float &dmin, float &dmax) const |
Compute d*^2 for one hkl reflection: this functions computes a d*^2 range (min,max) for a given range of unit cell parameter (given in the delta parameter) around the current parameters. More... | |
std::vector< float > | DirectUnitCell (const bool equiv=false) const |
Compute real space unit cell from reciprocal one. More... | |
Public Attributes | |
REAL | par [7] |
The 6 parameters defining 1/d_hkl^2 = d*_hkl^2, for different crystal classes, from: d*_hkl^2 = zero + a*^2 h^2 + b*^2 k^2 + c*^2 l^2 + 2 a*.b* hk + 2 b*.c* kl + 2 a*.c* hl. More... | |
float | zero |
CrystalSystem | mlattice |
CrystalCentering | mCentering |
Lightweight class describing the reciprocal unit cell, for the fast computation of d*_hkl^2.
Definition at line 58 of file Indexing.h.
vector< float > ObjCryst::RecUnitCell::DirectUnitCell | ( | const bool | equiv = false | ) | const |
Compute real space unit cell from reciprocal one.
equiv | if true, return real unit cell equivalent to the one computed from the reciprocal one, so that alpha, beta and gamma are larger or equal to pi/2, and minimum. This is done by adding multiples of a to b and multiples of a and b to c. |
Definition at line 562 of file Indexing.cpp.
float ObjCryst::RecUnitCell::hkl2d | ( | const float | h, |
const float | k, | ||
const float | l, | ||
REAL * | derivpar = NULL , |
||
const unsigned int | derivhkl = 0 |
||
) | const |
Compute d*^2 for hkl reflection if deriv != -1, compute derivate versus the corresponding parameter.
If derivhkl=1,2,3, compute derivative versus h,k or l.
Definition at line 106 of file Indexing.cpp.
void ObjCryst::RecUnitCell::hkl2d_delta | ( | const float | h, |
const float | k, | ||
const float | l, | ||
const RecUnitCell & | delta, | ||
float & | dmin, | ||
float & | dmax | ||
) | const |
Compute d*^2 for one hkl reflection: this functions computes a d*^2 range (min,max) for a given range of unit cell parameter (given in the delta parameter) around the current parameters.
Used for DicVol algorithm
Definition at line 454 of file Indexing.cpp.
REAL ObjCryst::RecUnitCell::par[7] |
The 6 parameters defining 1/d_hkl^2 = d*_hkl^2, for different crystal classes, from: d*_hkl^2 = zero + a*^2 h^2 + b*^2 k^2 + c*^2 l^2 + 2 a*.b* hk + 2 b*.c* kl + 2 a*.c* hl.
for triclinic: d*_hkl^2 = par[0] + par[1] h^2 + par[1] k^2 + par[2]^2 l^2 + par[3] hk + par[4] kl + par[5] hl for monoclinic: d*_hkl^2 = zero + par[0]^2 h^2 + par[1]^2 k^2 + par[2]^2 l^2 + par[0]*par[2]*par[3] hl for orthorombic: d*_hkl^2 = zero + par[0]^2 h^2 + par[1]^2 k^2 + par[2]^2 l^2 for hexagonal: d*_hkl^2 = zero + par[0]^2 h^2 + par[0]^2 k^2 + par[2]^2 l^2 + sqrt(3)/2*par[0]^2 hk for rhomboedral: d*_hkl^2 = zero + par[0]^2 h^2 + par[1]^2 k^2 + par[2]^2 l^2 + par[3] (hk + kl + hl) for quadratic: d*_hkl^2 = zero + par[0]^2 h^2 + par[0]^2 k^2 + par[1]^2 l^2 for cubic d*_hkl^2 = zero + par[0]^2 (h^2 + k^2 + l^2)
Definition at line 104 of file Indexing.h.