5#ifndef OILAB_LATTICEDIRECTIONBINDINGS_H
6#define OILAB_LATTICEDIRECTIONBINDINGS_H
8#include <pybind11/pybind11.h>
9#include <pybind11/operators.h>
11#include <pybind11/numpy.h>
12#include <pybind11/eigen.h>
32 using MatrixDimI = Eigen::Matrix<IntScalarType, dim, dim>;
59 using MatrixDimD = Eigen::Matrix<double, dim, dim>;
60 using VectorDimD = Eigen::Matrix<double, dim, 1>;
61 using VectorDimI = Eigen::Matrix<long long int, dim, 1>;
70 py::class_<PyLatticeDirection>(m, (
"LatticeDirection" + std::to_string(dim) +
"D").c_str())
71 .def(py::init<const PyLatticeVector&>())
72 .def(py::init<const PyLatticeDirection&>())
73 .def(py::init<const VectorDimI&, const Lattice&>())
76 },
"Get the lattice vector")
VectorDimD cartesian() const
IntScalarType dot(const ReciprocalLatticeVector< dim > &other) const
PyLatticeDirection(const PyLatticeVector &pv)
Eigen::Matrix< double, dim, dim > MatrixDimD
Eigen::Matrix< IntScalarType, dim, 1 > VectorDimI
long long int IntScalarType
VectorDimI integerCoordinates() const
Eigen::Matrix< double, dim, 1 > VectorDimD
PyLatticeDirection(const PyLatticeDirection &pld)
PyLatticeDirection(const LatticeDirection &ld)
const LatticeVector & latticeVector() const
PyLatticeDirection(const VectorDimI &v, const Lattice &lat)
Eigen::Matrix< IntScalarType, dim, dim > MatrixDimI
IntScalarType dot(const PyReciprocalLatticeVector< dim > &other) const
VectorDimD cartesian() const
ReciprocalLatticeVector rlv
void bind_LatticeDirection(py::module_ &m)
const LatticeVector< dim > & latticeVector() const