Unit cell class. More...
#include <hkl_datatypes.hh>
Public Member Functions | |
| Scell (const std::vector< Dtype > &rcell) | |
| constructor from real cell vector | |
| Scell (const float *cell) | |
| constructor from real cell vector | |
| Scell (const MetricTensor &metric_tensor, const bool real=true) | |
| construct from real [default] or reciprocal metric tensor | |
| Scell (const clipper::Cell &ccell) | |
| construct from clipper::Cell | |
| Scell (const double &a, const double &b, const double &c, const double &alpha, const double &beta, const double &gamma) | |
| construct from real cell | |
| void | init (const std::vector< Dtype > &rcell) |
| initialise from cell vector | |
| std::string | formatPrint (const bool &newline=true) const |
| simple print | |
| void | dump () const |
| fuller debug print | |
| Mat33< Dtype > | Bmat () const |
| return orthogonalisation matrix [B] | |
| MetricTensor | rec_metric_tensor () const |
| return reciprocal metric tensor | |
| std::vector< Dtype > | UnitCell () const |
| return real cell as a vector | |
| std::vector< Dtype > | ReciprocalCell () const |
| return reciprocal cell as a vector | |
| const Dtype & | operator[] (const int &i) const |
| return cell element | |
| Scell | change_basis (const ReindexOp &reindex_op) const |
| change basis: apply reindex operator | |
| std::string | format (const int w=7, const int p=4) const |
| format cell | |
| std::string | xml () const |
| return XML representation | |
| clipper::Cell | ClipperCell () const |
| return clipper::Cell | |
| double | Volume () const |
| return cell volume | |
| bool | AngleTest (const double &AlphaTest, const double &BetaTest, const double &GammaTest, const double Tol=0.2) const |
| return true if all angles are within Tol of given test values | |
| bool | equals (const Scell &other, const double &tolA=0.02, const double &tolD=0.02) const |
| returns true if cells agree within "tolerances" in A & degrees | |
| bool | equalsTol (const Scell &other, const double &AngularTolerance) const |
| returns true if cells agree within "tolerances" in degrees (lengths & angles) | |
| double | Difference (const Scell &other) const |
| "difference" between two cells in A, maximum allowed distance | |
| bool | null () const |
| returns true if any value is close to zero | |
Unit cell class.
This has a different orthogonalisation convention to that in clipper::Cell. This one follows the "Cambridge" convention used in Mosflm, Scala etc
change basis: apply reindex operator
if [H] is reindex operator (ignoring translations) [B] current orthogonalisation matrix new [UB]' = [B] [H]T^-1 new reciprocal metric tensor [B']T[B] = [UB]'T [UB]' -> new cell
| double scala::Scell::Difference | ( | const Scell & | other | ) | const |
"difference" between two cells in A, maximum allowed distance
If the "difference" between cells is greater than half the resolution, then a reflection may be mapped on to the next reflection in the other cell
1.6.3