10#include "MantidGeometry/DllConfig.h"
49 UnitCell(
const double _a,
const double _b,
const double _c);
51 UnitCell(
const double _a,
const double _b,
const double _c,
const double _alpha,
const double _beta,
52 const double _gamma,
const int angleunit =
angDegrees);
61 double alpha1()
const;
62 double alpha2()
const;
63 double alpha3()
const;
65 double a(
int nd)
const;
83 double alphastar()
const;
84 double betastar()
const;
85 double gammastar()
const;
87 void setModHKL(
double _dh1,
double _dk1,
double _dl1,
double _dh2,
double _dk2,
double _dl2,
double _dh3,
double _dk3,
91 void setErrorModHKL(
double _dh1err,
double _dk1err,
double _dl1err,
double _dh2err,
double _dk2err,
double _dl2err,
92 double _dh3err,
double _dk3err,
double _dl3err);
93 void setModVec1(
double _dh1,
double _dk1,
double _dl1);
94 void setModVec2(
double _dh2,
double _dk2,
double _dl2);
95 void setModVec3(
double _dh3,
double _dk3,
double _dl3);
99 void setModerr(
int i,
double _dherr,
double _dkerr,
double _dlerr);
100 void setModerr1(
double _dh1err,
double _dk1err,
double _dl1err);
101 void setModerr2(
double _dh2err,
double _dk2err,
double _dl2err);
102 void setModerr3(
double _dh3err,
double _dk3err,
double _dl3err);
103 void setMaxOrder(
int MaxO);
104 void setCrossTerm(
bool CT);
109 double getdh(
int j)
const;
110 double getdk(
int j)
const;
111 double getdl(
int j)
const;
113 double getdherr(
int j)
const;
114 double getdkerr(
int j)
const;
115 double getdlerr(
int j)
const;
116 int getMaxOrder()
const;
117 bool getCrossTerm()
const;
119 void set(
double _a,
double _b,
double _c,
double _alpha,
double _beta,
double _gamma,
120 const int angleunit = angDegrees);
121 void seta(
double _a);
122 void setb(
double _b);
123 void setc(
double _c);
124 void setalpha(
double _alpha,
const int angleunit = angDegrees);
125 void setbeta(
double _beta,
const int angleunit = angDegrees);
126 void setgamma(
double _gamma,
const int angleunit = angDegrees);
128 void setError(
double _aerr,
double _berr,
double _cerr,
double _alphaerr,
double _betaerr,
double _gammaerr,
129 const int angleunit = angDegrees);
130 void setErrora(
double _aerr);
131 void setErrorb(
double _berr);
132 void setErrorc(
double _cerr);
133 void setErroralpha(
double _alphaerr,
const int angleunit = angDegrees);
134 void setErrorbeta(
double _betaerr,
const int angleunit = angDegrees);
135 void setErrorgamma(
double _gammaerr,
const int angleunit = angDegrees);
137 double errora()
const;
138 double errorb()
const;
139 double errorc()
const;
140 double erroralpha(
const int angleunit = angDegrees)
const;
141 double errorbeta(
const int angleunit = angDegrees)
const;
142 double errorgamma(
const int angleunit = angDegrees)
const;
143 double errorvolume()
const;
151 double d(
double h,
double k,
double l)
const;
152 double dstar(
double h,
double k,
double l)
const;
155 double recAngle(
double h1,
double k1,
double l1,
double h2,
double k2,
double l2,
156 const int angleunit = angDegrees)
const;
157 double volume()
const;
158 double recVolume()
const;
166 std::vector<double>
da;
168 std::vector<double>
ra;
208 void calculateGstar();
209 void calculateReciprocalLattice();
212 virtual void recalculate();
215MANTID_GEOMETRY_DLL std::ostream &
operator<<(std::ostream &out,
const UnitCell &unitCell);
Class to implement unit cell of crystals.
std::vector< double > errorda
Error in lattice parameters (in and radians)
Kernel::DblMatrix Binv
Inverse of the B matrix.
Kernel::DblMatrix errorModHKL
std::vector< double > da
Lattice parameter a,b,c,alpha,beta,gamma (in and radians)
std::vector< double > ra
Reciprocal lattice parameters (in and radians)
Kernel::DblMatrix G
Metric tensor.
virtual ~UnitCell()=default
Kernel::DblMatrix Gstar
Reciprocal lattice tensor.
Kernel::DblMatrix B
B matrix for a right-handed coordinate system, in Busing-Levy convention.
MANTID_GEOMETRY_DLL UnitCell strToUnitCell(const std::string &unitCellString)
MANTID_GEOMETRY_DLL std::string unitCellToStr(const UnitCell &unitCell)
MANTID_GEOMETRY_DLL std::ostream & operator<<(std::ostream &stream, const PointGroup &self)
Returns a streamed representation of the PointGroup object.
Helper class which provides the Collimation Length for SANS instruments.
constexpr bool operator==(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)
constexpr bool operator!=(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)