5#ifndef OILAB_RECIPROCALLATTICEDIRECTIONBINDINGS_H
6#define OILAB_RECIPROCALLATTICEDIRECTIONBINDINGS_H
8#include <pybind11/pybind11.h>
9#include <pybind11/operators.h>
11#include <pybind11/numpy.h>
12#include <pybind11/eigen.h>
27 using MatrixDimI = Eigen::Matrix<IntScalarType, dim, dim>;
64 using MatrixDimD = Eigen::Matrix<double, dim, dim>;
65 using VectorDimD = Eigen::Matrix<double, dim, 1>;
66 using VectorDimI = Eigen::Matrix<long long int, dim, 1>;
75 py::class_<PyReciprocalLatticeDirection>(m, (
"ReciprocalLatticeDirection" + std::to_string(dim) +
"D").c_str())
76 .def(py::init<const PyReciprocalLatticeVector&>())
77 .def(py::init<const PyReciprocalLatticeDirection&>())
80 },
"Get the reciprocal lattice vector")
IntScalarType dot(const LatticeVector< dim > &other) const
VectorDimD cartesian() const
Eigen::Matrix< IntScalarType, dim, dim > MatrixDimI
Eigen::Matrix< double, dim, dim > MatrixDimD
Eigen::Matrix< IntScalarType, dim, 1 > VectorDimI
const ReciprocalLatticeVector & reciprocalLatticeVector() const
PyReciprocalLatticeDirection(const ReciprocalLatticeDirection &rld)
VectorDimD cartesian() const
PyReciprocalLatticeDirection(const PyReciprocalLatticeDirection &prld)=default
PyReciprocalLatticeDirection(const ReciprocalLatticeVector &rlv)
PyReciprocalLatticeDirection(const PyReciprocalLatticeVector &prlv)
VectorDimI integerCoordinates() const
Eigen::Matrix< double, dim, 1 > VectorDimD
double planeSpacing() const
IntScalarType dot(const PyLatticeVector< dim > &other) const
long long int IntScalarType
ReciprocalLatticeDirection rld
void bind_ReciprocalLatticeDirection(py::module_ &m)
double planeSpacing() const
Returns the spacing between two consecutive lattice planes.
int stacking() const
Returns the number of planes in the stacking sequence.
const ReciprocalLatticeVector< dim > & reciprocalLatticeVector() const
Returns a constant reference to the base class (ReciprocalLatticeVector)