22 using MatrixDimD = Eigen::Matrix<double, dim, dim>;
23 using VectorDimD = Eigen::Matrix<double, dim, 1>;
25 py::class_<BiCrystal> cls(m, (
"BiCrystal" + std::to_string(dim) +
"D").c_str());
26 cls.def(py::init<const Lattice&, const Lattice&, const bool&>(),
27 py::arg(
"A"), py::arg(
"B"), py::arg(
"useRLLL")=
false);
28 cls.def(
"A",[](
const BiCrystal& self) ->
const Lattice& {
30 }, py::return_value_policy::reference_internal);
31 cls.def(
"B",[](
const BiCrystal& self) ->
const Lattice& {
33 }, py::return_value_policy::reference_internal);
34 cls.def_readonly(
"sigma",&BiCrystal::sigma);
35 cls.def_readonly(
"sigmaA",&BiCrystal::sigmaA);
36 cls.def_readonly(
"sigmaB",&BiCrystal::sigmaB);
37 cls.def_readonly(
"csl",&BiCrystal::csl);
38 cls.def_readonly(
"dscl",&BiCrystal::dscl);
39 cls.def(
"box", [](
const BiCrystal& self,
40 std::vector<PyLatticeVector>& boxPyLatticeVectors,
41 const double& orthogonality,
42 const int& dsclFactor,
45 std::vector<LatticeVector> boxLatticeVectors;
46 for(
const auto& v : boxPyLatticeVectors)
47 boxLatticeVectors.push_back(v.lv);
48 auto latticeVectors= self.box(boxLatticeVectors,
54 std::vector<PyLatticeVector> pyLatticeVectors;
55 for(
const auto& v : latticeVectors)
57 return pyLatticeVectors;
58 }, py::arg(
"boxVectors"), py::arg(
"orthogonality"), py::arg(
"dsclFactor"), py::arg(
"filename")=
"", py::arg(
"orient")=
false);
59 cls.def(
"getLatticeVectorInA",[](
const BiCrystal& self,
const PyLatticeVector& v){
62 cls.def(
"getLatticeVectorInB",[](
const BiCrystal& self,
const PyLatticeVector& v){
65 cls.def(
"getLatticeVectorInD",[](
const BiCrystal& self,
const PyLatticeVector& v){
68 cls.def(
"getLatticeDirectionInC",[](
const BiCrystal& self,
const PyLatticeVector& v){
71 cls.def(
"getLatticeDirectionInD",[](
const BiCrystal& self,
const PyLatticeVector& v){