ObjCryst++  1.5CVS
Public Member Functions | Public Attributes
ObjCryst::RecUnitCell Class Reference

Lightweight class describing the reciprocal unit cell, for the fast computation of d*_hkl^2. More...

List of all members.

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)
 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.
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.
std::vector< float > DirectUnitCell (const bool equiv=false) const
 Compute real space unit cell from reciprocal one.

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.
float zero
CrystalSystem mlattice
CrystalCentering mCentering

Detailed Description

Lightweight class describing the reciprocal unit cell, for the fast computation of d*_hkl^2.


Member Function Documentation

std::vector<float> ObjCryst::RecUnitCell::DirectUnitCell ( const bool  equiv = false) const

Compute real space unit cell from reciprocal one.

Parameters:
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.
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.

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


Member Data Documentation

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)


The documentation for this class was generated from the following file: