8#ifndef model_ReciprocalLatticeVector_h_
9#define model_ReciprocalLatticeVector_h_
23 static_assert(
dim>0,
"dim must be > 0.");
25 Eigen::Matrix<long int,dim,1> _base;
29 typedef Eigen::Matrix<long int,dim,1>
BaseType;
static VectorDimI d2cov(const VectorDimD &d, const LatticeType &lat)
LatticeVector< dim > LatticeVectorType
ReciprocalLatticeVector< dim > ReciprocalLatticeVectorType
ReciprocalLatticeVectorType operator-(const ReciprocalLatticeVectorType &other) const
ReciprocalLatticeVectorType operator*(const long int &scalar) const
Eigen::Matrix< long int, dim, 1 > VectorDimI
VectorDimD interplaneVector() const
Lattice< dim > LatticeType
LatticeDirectionType cross(const ReciprocalLatticeVectorType &other) const
ReciprocalLatticeVectorType & operator+=(const ReciprocalLatticeVectorType &other)
Eigen::Matrix< double, dim, dim > MatrixDimD
long int planeIndexOfPoint(const VectorDimD &P) const
VectorDimD cartesian() const
Eigen::Matrix< double, dim, 1 > VectorDimD
Eigen::Matrix< long int, dim, 1 > BaseType
long int closestPlaneIndexOfPoint(const VectorDimD &P) const
ReciprocalLatticeVector(const LatticeType &lat)
double planeSpacing() const
ReciprocalLatticeVectorType operator+(const ReciprocalLatticeVectorType &other) const
ReciprocalLatticeVectorType & operator-=(const ReciprocalLatticeVectorType &other)
long int dot(const LatticeVectorType &other) const
LatticeDirection< dim > LatticeDirectionType
const LatticeType & lattice
static constexpr double roundTol
auto operator*(const std::shared_ptr< BilinearForm< T1, T2 > > &f, const IntegrationDomain< FE, D, Q, Rule > &dom)