Template Class LQVec¶
Defined in File array_latvec.hpp
Inheritance Relationships¶
Base Types¶
public brille::LatVec(Class LatVec)public brille::Array2< T >(Template Class Array2)
Class Documentation¶
-
template<class
T>
classbrille::LQVec: public brille::LatVec, public brille::Array2<T>¶ 3-vector(s) expressed in units of a Reciprocal lattice
By adding a Reciprocal lattice to a 3-element bArray this class represents one or more 3-vector in units of a reciprocal-space-spanning lattice.
Public Functions
-
LQVec(const Reciprocal &lat = Reciprocal())¶
-
template<typename ...
Args>LQVec(const Reciprocal &lat, Args... args)¶ integer number of three-vector constructor (macroed as templates can’t be distinguished)
Fowarding constructor to let bArray deal with everything else
-
Reciprocal
get_lattice() const¶ Explicit copy constructor: required in gcc 9+ since we define our own operator= below:
Assignment operator reusing data if we can
-
bArray<T>
get_hkl() const¶ Extract just the coordinates in units of the Reciprocal lattice (strip off the lattice information)
-
bArray<double>
get_xyz() const¶ Extract the coordinates in an orthonormal frame with its first axis, x, along a*, its second, y, perpendicular with y⋅b*>0 , and it’s third forming the right-handed set z=x×y.
-
double
dot(const size_t i, const size_t j) const¶ Determine the scalar product between two vectors in the object.
-
double
norm(const size_t i) const¶ Determine the absolute length of a vector in the object.
-
LQVec<double>
cross(const size_t i, const size_t j) const¶ Determine the cross product of two vectors in the object.
-
template<class
R, template<class> classA, typename = typename std::enable_if<!std::is_base_of<LatVec, A<R>>::value>::type>
voidbinary_operation_check(const A<R>&) const¶
Public Static Functions
Protected Functions
-
void
check_array()¶
-