Inheritance diagram for ObjCryst::UnitCell:
Public Member Functions | |
UnitCell () | |
Default Constructor. | |
UnitCell (const REAL a, const REAL b, const REAL c, const string &SpaceGroupId) | |
UnitCell Constructor (orthorombic). | |
UnitCell (const REAL a, const REAL b, const REAL c, const REAL alpha, const REAL beta, const REAL gamma, const string &SpaceGroupId) | |
UnitCell Constructor (triclinic). | |
UnitCell (const UnitCell &oldCryst) | |
UnitCell copy constructor. | |
~UnitCell () | |
Destructor. | |
virtual const string & | GetClassName () const |
Name for this class ("RefinableObj", "Crystal",...). | |
CrystVector_REAL | GetLatticePar () const |
Lattice parameters (a,b,c,alpha,beta,gamma) as a 6-element vector in Angstroems and radians. | |
REAL | GetLatticePar (const int whichPar) const |
Return one of the 6 Lattice parameters, 0<= whichPar <6 (a,b,c,alpha,beta,gamma), returned in Angstroems and radians. | |
const RefinableObjClock & | GetClockLatticePar () const |
last time the Lattice parameters were changed | |
const CrystMatrix_REAL & | GetBMatrix () const |
Get the 'B' matrix (UnitCell::mBMatrix)for the UnitCell (orthogonalization matrix for the given lattice, in the reciprocal space). | |
const CrystMatrix_REAL & | GetOrthMatrix () const |
Get the orthogonalization matrix (UnitCell::mOrthMatrix)for the UnitCell in real space. | |
const RefinableObjClock & | GetClockMetricMatrix () const |
last time the metric matrices were changed | |
CrystVector_REAL | GetOrthonormalCoords (const REAL x, const REAL y, const REAL z) const |
Get orthonormal cartesian coordinates for a set of (x,y,z) fractional coordinates. | |
void | FractionalToOrthonormalCoords (REAL &x, REAL &y, REAL &z) const |
Get orthonormal cartesian coordinates for a set of (x,y,z) fractional coordinates. | |
void | OrthonormalToFractionalCoords (REAL &x, REAL &y, REAL &z) const |
Get fractional cartesian coordinates for a set of (x,y,z) orthonormal coordinates. | |
void | MillerToOrthonormalCoords (REAL &x, REAL &y, REAL &z) const |
Get Miller H,K, L indices from orthonormal coordinates in reciprocal space. | |
void | OrthonormalToMillerCoords (REAL &x, REAL &y, REAL &z) const |
Get orthonormal coordinates given a set of H,K, L indices in reciprocal space. | |
virtual void | Print (ostream &os=cout) const |
Prints some info about the UnitCell. | |
const SpaceGroup & | GetSpaceGroup () const |
Access to the SpaceGroup object. | |
SpaceGroup & | GetSpaceGroup () |
Access to the SpaceGroup object. | |
REAL | GetVolume () const |
Volume of Unit Cell (in Angstroems). | |
Protected Member Functions | |
virtual void | Init (const REAL a, const REAL b, const REAL c, const REAL alpha, const REAL beta, const REAL gamma, const string &SpaceGroupId, const string &name) |
Init all UnitCell parameters. | |
void | InitRefParList () |
Prepare the refinable parameters list. | |
Private Member Functions | |
virtual void | InitOptions () |
Init options. | |
void | InitMatrices () const |
void | UpdateLatticePar () |
Private Attributes | |
CrystVector_REAL | mCellDim |
a,b and c in Angstroems, angles (stored) in radians For cubic, rhomboedric UnitCells, only the 'a' parameter is relevant. | |
SpaceGroup | mSpaceGroup |
The space group of the UnitCell. | |
CrystMatrix_REAL | mBMatrix |
B Matrix (Orthogonalization matrix for reciprocal space)
| |
CrystMatrix_REAL | mBMatrixInvert |
inverse of B Matrix (i.e. inverse of orthogonalization matrix for direct space) | |
CrystMatrix_REAL | mOrthMatrix |
Eucl Matrix (Orthogonalization matrix for direct space)
| |
CrystMatrix_REAL | mOrthMatrixInvert |
inverse of Eucl Matrix (i.e. inverse of de-orthogonalization matrix for direct space) | |
RefinableObjClock | mClockLatticePar |
Last time lattice parameters were changed. | |
RefinableObjClock | mClockMetricMatrix |
Last time metric matrices were computed. | |
RefinableObjClock | mClockLatticeParUpdate |
Last time the lattice parameters whre updated. | |
RefObjOpt | mConstrainLatticeToSpaceGroup |
Option to override lattice parameters constraints from spacegroup choice. |
|
Default Constructor.
|
|
UnitCell Constructor (orthorombic).
|
|
UnitCell Constructor (triclinic).
|
|
UnitCell copy constructor.
|
|
Destructor.
|
|
Get orthonormal cartesian coordinates for a set of (x,y,z) fractional coordinates. X,y and z input are changed to Amgstroems values The convention is taken following : e1 is chosen along a, e2 in the (a,b) plane, then e3 is along c* |
|
Get the 'B' matrix (UnitCell::mBMatrix)for the UnitCell (orthogonalization matrix for the given lattice, in the reciprocal space). The convention is taken following Giacovazzo, "Fundamentals of Crystallography", p.69 "e1 is chosen along a*, e2 in the (a*,b*) plane, then e3 is along c". |
|
Name for this class ("RefinableObj", "Crystal",...). This is only useful to distinguish different classes when picking up objects from the RefinableObj Global Registry Reimplemented from ObjCryst::RefinableObj. Reimplemented in ObjCryst::Crystal. |
|
last time the Lattice parameters were changed
|
|
last time the metric matrices were changed
|
|
Return one of the 6 Lattice parameters, 0<= whichPar <6 (a,b,c,alpha,beta,gamma), returned in Angstroems and radians.
|
|
Lattice parameters (a,b,c,alpha,beta,gamma) as a 6-element vector in Angstroems and radians.
|
|
Get the orthogonalization matrix (UnitCell::mOrthMatrix)for the UnitCell in real space.
|
|
Get orthonormal cartesian coordinates for a set of (x,y,z) fractional coordinates. Results are given in Angstroems. The convention is taken following : e1 is chosen along a, e2 in the (a,b) plane, then e3 is along c* |
|
Access to the SpaceGroup object.
|
|
Access to the SpaceGroup object.
|
|
Volume of Unit Cell (in Angstroems).
|
|
Init all UnitCell parameters.
Reimplemented in ObjCryst::Crystal. |
|
For internal use only. .Init the (de)orthogonalization matrices. They are re-computed only if parameters have changed since last call. |
|
Init options. Need only be done once per UnitCell. Reimplemented in ObjCryst::Crystal. |
|
Prepare the refinable parameters list. This is called once when creating the UnitCell. |
|
Get Miller H,K, L indices from orthonormal coordinates in reciprocal space. Result is stored into x,y and z |
|
Get fractional cartesian coordinates for a set of (x,y,z) orthonormal coordinates. Result is stored into x,y and z The convention is taken following : e1 is chosen along a, e2 in the (a,b) plane, then e3 is along c* |
|
Get orthonormal coordinates given a set of H,K, L indices in reciprocal space. Result is stored into x,y and z |
|
Prints some info about the UnitCell.
Reimplemented in ObjCryst::Crystal. |
|
For internal use only. Update cell parameters for tetragonal, trigonal, hexagonal, cubic lattices. Also set angular parameters for those group which need it. This is needed during Refinement, since for example in a quadratic spg, only a is refined and we need to have b=a... |
|
B Matrix (Orthogonalization matrix for reciprocal space)
.
|
|
inverse of B Matrix (i.e. inverse of orthogonalization matrix for direct space)
|
|
a,b and c in Angstroems, angles (stored) in radians For cubic, rhomboedric UnitCells, only the 'a' parameter is relevant. For quadratic and hexagonal UnitCells, only a and c parameters are relevant. The MUTABLE is temporary ! It should not be ! |
|
Last time lattice parameters were changed.
|
|
Last time the lattice parameters whre updated.
|
|
Last time metric matrices were computed.
|
|
Option to override lattice parameters constraints from spacegroup choice.
This is useful duting global optimization when searching the structure in a UnitCell which has (or is expected to have) a known pseudo-crystallographic symmetry, to reduce dramatically the number of parameters. Of course for final refinement the 'real' symmetry should be imposed. |
|
Eucl Matrix (Orthogonalization matrix for direct space)
.
|
|
inverse of Eucl Matrix (i.e. inverse of de-orthogonalization matrix for direct space)
|
|
The space group of the UnitCell.
|