7#ifndef gbLAB_BiCrystal_h_
8#define gbLAB_BiCrystal_h_
15#include <unordered_set>
125 const bool& useRLLL=
false);
205 typename std::enable_if<dm==2 || dm==3,std::map<IntScalarType,Gb<dm>>>::type
226 typename std::enable_if<dm==2 || dm==3,std::vector<LatticeVector<dim>>>::type
228 const double& orthogonality,
229 const int& dsclFactor,
230 std::string filename=
"",
231 bool orient=
false)
const;
LatticeVector< dim > shiftTensorB(const LatticeVector< dim > &d) const
LatticeVector< dim > getLatticeVectorInB(const LatticeVector< dim > &v) const
static MatrixDimI getLambdaA(const MatrixDimI &M, const MatrixDimI &N)
LatticeVector< dim > getLatticeVectorInD(const LatticeVector< dim > &v) const
const IntScalarType sigmaB
Signed ratio of the unit cell volume of to that of : .
ReciprocalLatticeDirection< dim > getReciprocalLatticeDirectionInD(const ReciprocalLatticeVector< dim > &v) const
LatticeVector< dim > shiftTensorA(const LatticeVector< dim > &d) const
const Lattice< dim > dscl
DCSL lattice .
const MatrixDimI LambdaB
Shift tensor describes the shift in the CSL when lattice is shifted by a DSCL vector.
ReciprocalLatticeDirection< dim > getReciprocalLatticeDirectionInA(const ReciprocalLatticeVector< dim > &v) const
LatticeCore< dim >::IntScalarType IntScalarType
ReciprocalLatticeDirection< dim > getReciprocalLatticeDirectionInC(const ReciprocalLatticeVector< dim > &v) const
const MatrixDimI M
Integer matrix that connects the bases and of lattices and the CSL , respectively: .
LatticeCore< dim >::VectorDimI VectorDimI
const IntScalarType sigmaA
Signed ratio of the unit cell volume of to that of . .
const MatrixDimI N
Integer matrix that connects the bases and of lattices and the CSL , respectively: .
LatticeVector< dim > getLatticeVectorInA(const LatticeVector< dim > &v) const
ReciprocalLatticeDirection< dim > getReciprocalLatticeDirectionInB(const ReciprocalLatticeVector< dim > &v) const
const Lattice< dim > Ap
Lattice with basis .
static MatrixDimD getDSCLBasis(const Lattice< dim > &A, const Lattice< dim > &B, const SmithDecomposition< dim > &sd, const MatrixDimI &M, const MatrixDimI &N, const bool &useRLLL)
LatticeDirection< dim > getLatticeDirectionInC(const LatticeVector< dim > &v) const
const Lattice< dim > csl
CSL lattice .
static MatrixDimI getN(const RationalMatrix< dim > &rm, const SmithDecomposition< dim > &sd)
const Lattice< dim > Bp
Lattice with basis .
LatticeDirection< dim > getLatticeDirectionInD(const LatticeVector< dim > &v) const
LatticeCore< dim >::MatrixDimI MatrixDimI
std::enable_if< dm==2||dm==3, std::map< IntScalarType, Gb< dm > > >::type generateGrainBoundaries(const LatticeDirection< dim > &d, int div=30) const
Given a tilt axis , that belongs to lattices or , this function generate a set of tilt GBs....
static MatrixDimD getCSLBasis(const Lattice< dim > &A, const Lattice< dim > &B, const SmithDecomposition< dim > &sd, const MatrixDimI &M, const MatrixDimI &N, const bool &useRLLL)
std::enable_if< dm==2||dm==3, std::vector< LatticeVector< dim > > >::type box(std::vector< LatticeVector< dim > > &boxVectors, const double &orthogonality, const int &dsclFactor, std::string filename="", bool orient=false) const
LatticeCore< dim >::VectorDimD VectorDimD
LatticeCore< dim >::MatrixDimD MatrixDimD
static MatrixDimI getLambdaB(const MatrixDimI &M, const MatrixDimI &N)
static MatrixDimI getM(const RationalMatrix< dim > &rm, const SmithDecomposition< dim > &sd)
const MatrixDimI LambdaA
Shift tensor describes the shift in the CSL when lattice is shifted by a DSCL vector.
Eigen::Matrix< double, dim, dim > MatrixDimD
Eigen::Matrix< IntScalarType, dim, dim > MatrixDimI
Eigen::Matrix< double, dim, 1 > VectorDimD
long long int IntScalarType
Eigen::Matrix< IntScalarType, dim, 1 > VectorDimI