oILAB
|
#include <BiCrystal.h>
Public Member Functions | |
LatticeVector< dim > | shiftTensorA (const LatticeVector< dim > &d) const |
LatticeVector< dim > | shiftTensorB (const LatticeVector< dim > &d) const |
BiCrystal (const Lattice< dim > &A, const Lattice< dim > &B, const bool &useRLLL=false) | |
Constructs a bicrystal from two lattices \(\mathcal A \) and \(\mathcal B \) by computing the parallel bases \(\textbf A^\|, \textbf B^\|, \textbf C^\|, \textbf D^\|\) for lattices \(\mathcal A, \mathcal B, \mathcal C, \mathcal D\), respectively. If the flag useRLLL is .true., then the bases of CSL and DSCL are reduced using the LLL algorithm. | |
LatticeVector< dim > | getLatticeVectorInA (const LatticeVector< dim > &v) const |
LatticeVector< dim > | getLatticeVectorInB (const LatticeVector< dim > &v) const |
LatticeVector< dim > | getLatticeVectorInD (const LatticeVector< dim > &v) const |
LatticeDirection< dim > | getLatticeDirectionInC (const LatticeVector< dim > &v) const |
LatticeDirection< dim > | getLatticeDirectionInD (const LatticeVector< dim > &v) const |
ReciprocalLatticeDirection< dim > | getReciprocalLatticeDirectionInA (const ReciprocalLatticeVector< dim > &v) const |
ReciprocalLatticeDirection< dim > | getReciprocalLatticeDirectionInB (const ReciprocalLatticeVector< dim > &v) const |
ReciprocalLatticeDirection< dim > | getReciprocalLatticeDirectionInC (const ReciprocalLatticeVector< dim > &v) const |
ReciprocalLatticeDirection< dim > | getReciprocalLatticeDirectionInD (const ReciprocalLatticeVector< dim > &v) const |
template<int dm = dim> | |
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 \(\textbf d\), that belongs to lattices \(\mathcal A\) or \(\mathcal B\), this function generate a set of tilt GBs. CURRENTLY ONLY WORDS FOR DIMENSION 3. | |
template<int dm = dim> | |
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 |
![]() | |
RationalMatrix (const MatrixDimD &R) | |
RationalMatrix (const MatrixDimI &Rn, const IntScalarType &Rd) | |
RationalMatrix (const MatrixDimI &Rn, const MatrixDimI &Rd) | |
MatrixDimD | asMatrix () const |
![]() | |
SmithDecomposition (const MatrixNi &A) | |
const MatrixNi & | matrixU () const |
const MatrixNi & | matrixD () const |
const MatrixNi & | matrixV () const |
const MatrixNi & | matrixX () const |
const MatrixNi & | matrixY () const |
Data Fields | |
const Lattice< dim > & | A |
const Lattice< dim > & | B |
const MatrixDimI | M |
Integer matrix that connects the bases \( \textbf A^{\|} \) and \( \textbf C^{\|} \) of lattices \(\mathcal A\) and the CSL \(\mathcal C\), respectively: \( \textbf C^{\|} = \textbf A^{\|} \textbf M\). | |
const MatrixDimI | N |
Integer matrix that connects the bases \( \textbf B^{\|} \) and \( \textbf C^{\|} \) of lattices \(\mathcal B\) and the CSL \(\mathcal C\), respectively: \( \textbf C^{\|} = \textbf B^{\|} \textbf N\). | |
const IntScalarType | sigmaA |
Signed ratio of the unit cell volume of \(\mathcal C\) to that of \(\mathcal A\). \( \Sigma_{\mathcal A} = \det(\textbf M)\). | |
const IntScalarType | sigmaB |
Signed ratio of the unit cell volume of \(\mathcal C\) to that of \(\mathcal B\): \( \Sigma_{\mathcal B} = \det(\textbf N)\). | |
const int | sigma |
\( \Sigma = |\Sigma_{\mathcal A}|\) if \( \Sigma_{\mathcal A} = \Sigma_{\mathcal B}\), else \( \Sigma = 0 \) | |
const Lattice< dim > | csl |
CSL lattice \(\mathcal C\). | |
const Lattice< dim > | dscl |
DCSL lattice \(\mathcal D\). | |
const Lattice< dim > | Ap |
Lattice \(\mathcal A\) with basis \(\textbf A^\|\). | |
const Lattice< dim > | Bp |
Lattice \(\mathcal B\) with basis \(\textbf B^\|\). | |
const MatrixDimI | LambdaA |
Shift tensor \(\Lambda_{\mathcal A}:\mathbb Z_{\mathcal D} \to \mathbb Z_{\mathcal D}\) describes the shift in the CSL when lattice \(\mathcal A\) is shifted by a DSCL vector. | |
const MatrixDimI | LambdaB |
Shift tensor \(\Lambda_{\mathcal B}:\mathbb Z_{\mathcal D} \to \mathbb Z_{\mathcal D}\) describes the shift in the CSL when lattice \(\mathcal B\) is shifted by a DSCL vector. | |
![]() | |
const MatrixDimI & | integerMatrix |
const IntScalarType & | mu |
Private Types | |
typedef LatticeCore< dim >::IntScalarType | IntScalarType |
typedef LatticeCore< dim >::VectorDimD | VectorDimD |
typedef LatticeCore< dim >::MatrixDimD | MatrixDimD |
typedef LatticeCore< dim >::VectorDimI | VectorDimI |
typedef LatticeCore< dim >::MatrixDimI | MatrixDimI |
Static Private Member Functions | |
static MatrixDimI | getM (const RationalMatrix< dim > &rm, const SmithDecomposition< dim > &sd) |
static MatrixDimI | getN (const RationalMatrix< dim > &rm, const SmithDecomposition< dim > &sd) |
static MatrixDimI | getLambdaA (const MatrixDimI &M, const MatrixDimI &N) |
static MatrixDimI | getLambdaB (const MatrixDimI &M, const MatrixDimI &N) |
static MatrixDimD | getCSLBasis (const Lattice< dim > &A, const Lattice< dim > &B, const SmithDecomposition< dim > &sd, const MatrixDimI &M, const MatrixDimI &N, const bool &useRLLL) |
static MatrixDimD | getDSCLBasis (const Lattice< dim > &A, const Lattice< dim > &B, const SmithDecomposition< dim > &sd, const MatrixDimI &M, const MatrixDimI &N, const bool &useRLLL) |
Class template that computes the coincident-site-lattice (CSL) of two parent lattices using the Smith Normal Form [1].
[1] Coincidence Lattices and Associated Shear Transformations
Definition at line 27 of file BiCrystal.h.
|
private |
Definition at line 30 of file BiCrystal.h.
|
private |
Definition at line 32 of file BiCrystal.h.
|
private |
Definition at line 34 of file BiCrystal.h.
|
private |
Definition at line 31 of file BiCrystal.h.
|
private |
Definition at line 33 of file BiCrystal.h.
gbLAB::BiCrystal< dim >::BiCrystal | ( | const Lattice< dim > & | A, |
const Lattice< dim > & | B, | ||
const bool & | useRLLL = false |
||
) |
Constructs a bicrystal from two lattices \(\mathcal A \) and \(\mathcal B \) by computing the parallel bases \(\textbf A^\|, \textbf B^\|, \textbf C^\|, \textbf D^\|\) for lattices \(\mathcal A, \mathcal B, \mathcal C, \mathcal D\), respectively. If the flag useRLLL is .true., then the bases of CSL and DSCL are reduced using the LLL algorithm.
[in] | Lattices | \(\mathcal A \) and \(\mathcal B \), and useRLLL flag |
Definition at line 157 of file BiCrystal.cpp.
template std::vector< LatticeVector< 3 > > gbLAB::BiCrystal< dim >::box< 3 > | ( | std::vector< LatticeVector< dim > > & | boxVectors, |
const double & | orthogonality, | ||
const int & | dsclFactor, | ||
std::string | filename = "" , |
||
bool | orient = false |
||
) | const |
This function outputs/prints a 2D bicrystal (two lattices that form the GB and the CSL) bounded by a box defined using two input box vectors. The box vectors have to be linearly independent lattice vectors. The function optimizes boxVectors[0] to make the box as orthogonal as possible depending on the orthogonality
parameter.
dm | dimension (int) |
boxVectors | two linearly independent lattice vectors. |
orthogonality | (double) a value in the interval \([0,1]\). |
filename | (optional) name of the output file |
orient | (optional) While printing to a file, orient the system such that one of the box sides is along the global x axis. This flag does not influence the returning configuration, only the configuration printed to the file. |
Definition at line 500 of file BiCrystal.cpp.
template std::map< BiCrystal< 3 >::IntScalarType, Gb< 3 > > gbLAB::BiCrystal< dim >::generateGrainBoundaries< 3 > | ( | const LatticeDirection< dim > & | d, |
int | div = 30 |
||
) | const |
Given a tilt axis \(\textbf d\), that belongs to lattices \(\mathcal A\) or \(\mathcal B\), this function generate a set of tilt GBs. CURRENTLY ONLY WORDS FOR DIMENSION 3.
dm |
d | - LatticeDirection that describes the tilt axis |
div | - parameter to span the GBs |
Definition at line 446 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 82 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 131 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 42 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 62 of file BiCrystal.cpp.
LatticeDirection< dim > gbLAB::BiCrystal< dim >::getLatticeDirectionInC | ( | const LatticeVector< dim > & | v | ) | const |
Outputs lattice direction in the CSL \(\mathcal C\) that is parallel to the inputted vector \(\textbf v\) that belongs to one of the four lattices, \(\mathcal A\), \(\mathcal B\), \(\mathcal C\), or \(\mathcal D\),
v | - lattice vector |
Definition at line 296 of file BiCrystal.cpp.
LatticeDirection< dim > gbLAB::BiCrystal< dim >::getLatticeDirectionInD | ( | const LatticeVector< dim > & | v | ) | const |
Outputs lattice direction in the DSCL \(\mathcal D\) that is parallel to the inputted vector \(\textbf v\) that belongs to one of the four lattices, \(\mathcal A\), \(\mathcal B\), \(\mathcal C\), or \(\mathcal D\),
v | - lattice vector |
Definition at line 324 of file BiCrystal.cpp.
LatticeVector< dim > gbLAB::BiCrystal< dim >::getLatticeVectorInA | ( | const LatticeVector< dim > & | v | ) | const |
Outputs lattice vector in lattice \(\mathcal A\) that is equal to the inputted vector \(\textbf v\) that belongs to \(\mathcal A\) or \(\mathcal C\)
v | - lattice vector |
Definition at line 230 of file BiCrystal.cpp.
LatticeVector< dim > gbLAB::BiCrystal< dim >::getLatticeVectorInB | ( | const LatticeVector< dim > & | v | ) | const |
Outputs lattice vector in lattice \(\mathcal B\) that is equal to the inputted vector \(\textbf v\) that belongs to \(\mathcal B\) or \(\mathcal C\)
v | - lattice vector |
Definition at line 248 of file BiCrystal.cpp.
LatticeVector< dim > gbLAB::BiCrystal< dim >::getLatticeVectorInD | ( | const LatticeVector< dim > & | v | ) | const |
Outputs lattice vector in lattice \(\mathcal D\) that is equal to the inputted vector \(\textbf v\) that belongs to \(\mathcal A\), \(\mathcal B\), \(\mathcal C\), or \(\mathcal D\)
v | - lattice vector |
Definition at line 266 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 16 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 29 of file BiCrystal.cpp.
ReciprocalLatticeDirection< dim > gbLAB::BiCrystal< dim >::getReciprocalLatticeDirectionInA | ( | const ReciprocalLatticeVector< dim > & | v | ) | const |
Outputs reciprocal lattice direction in the dual lattice \(\mathcal A^*\) that is parallel to the inputted reciprocal vector \(\textbf v\) that belongs to one of the four dual lattices, \(\mathcal A^*\), \(\mathcal B^*\), \(\mathcal C^*\), or \(\mathcal D^*\),
v | - lattice vector |
Definition at line 330 of file BiCrystal.cpp.
ReciprocalLatticeDirection< dim > gbLAB::BiCrystal< dim >::getReciprocalLatticeDirectionInB | ( | const ReciprocalLatticeVector< dim > & | v | ) | const |
Outputs reciprocal lattice direction in the dual lattice \(\mathcal B^*\) that is parallel to the inputted reciprocal vector \(\textbf v\) that belongs to one of the four dual lattices, \(\mathcal A^*\), \(\mathcal B^*\), \(\mathcal C^*\), or \(\mathcal D^*\),
v | - lattice vector |
Definition at line 356 of file BiCrystal.cpp.
ReciprocalLatticeDirection< dim > gbLAB::BiCrystal< dim >::getReciprocalLatticeDirectionInC | ( | const ReciprocalLatticeVector< dim > & | v | ) | const |
Outputs reciprocal lattice direction in the dual lattice \(\mathcal C^*\) that is parallel to the inputted reciprocal vector \(\textbf v\) that belongs to one of the four dual lattices, \(\mathcal A^*\), \(\mathcal B^*\), \(\mathcal C^*\), or \(\mathcal D^*\),
v | - lattice vector |
Definition at line 384 of file BiCrystal.cpp.
ReciprocalLatticeDirection< dim > gbLAB::BiCrystal< dim >::getReciprocalLatticeDirectionInD | ( | const ReciprocalLatticeVector< dim > & | v | ) | const |
Outputs reciprocal lattice direction in the dual lattice \(\mathcal D^*\) that is parallel to the inputted reciprocal vector \(\textbf v\) that belongs to one of the four dual lattices, \(\mathcal A^*\), \(\mathcal B^*\), \(\mathcal C^*\), or \(\mathcal D^*\),
v | - lattice vector |
Definition at line 407 of file BiCrystal.cpp.
LatticeVector< dim > gbLAB::BiCrystal< dim >::shiftTensorA | ( | const LatticeVector< dim > & | d | ) | const |
Definition at line 429 of file BiCrystal.cpp.
LatticeVector< dim > gbLAB::BiCrystal< dim >::shiftTensorB | ( | const LatticeVector< dim > & | d | ) | const |
Definition at line 437 of file BiCrystal.cpp.
const Lattice<dim>& gbLAB::BiCrystal< dim >::A |
Definition at line 56 of file BiCrystal.h.
const Lattice<dim> gbLAB::BiCrystal< dim >::Ap |
Lattice \(\mathcal A\) with basis \(\textbf A^\|\).
Definition at line 94 of file BiCrystal.h.
const Lattice<dim>& gbLAB::BiCrystal< dim >::B |
Definition at line 57 of file BiCrystal.h.
const Lattice<dim> gbLAB::BiCrystal< dim >::Bp |
Lattice \(\mathcal B\) with basis \(\textbf B^\|\).
Definition at line 98 of file BiCrystal.h.
const Lattice<dim> gbLAB::BiCrystal< dim >::csl |
CSL lattice \(\mathcal C\).
Definition at line 86 of file BiCrystal.h.
const Lattice<dim> gbLAB::BiCrystal< dim >::dscl |
DCSL lattice \(\mathcal D\).
Definition at line 90 of file BiCrystal.h.
const MatrixDimI gbLAB::BiCrystal< dim >::LambdaA |
Shift tensor \(\Lambda_{\mathcal A}:\mathbb Z_{\mathcal D} \to \mathbb Z_{\mathcal D}\) describes the shift in the CSL when lattice \(\mathcal A\) is shifted by a DSCL vector.
Definition at line 103 of file BiCrystal.h.
const MatrixDimI gbLAB::BiCrystal< dim >::LambdaB |
Shift tensor \(\Lambda_{\mathcal B}:\mathbb Z_{\mathcal D} \to \mathbb Z_{\mathcal D}\) describes the shift in the CSL when lattice \(\mathcal B\) is shifted by a DSCL vector.
Definition at line 108 of file BiCrystal.h.
const MatrixDimI gbLAB::BiCrystal< dim >::M |
Integer matrix that connects the bases \( \textbf A^{\|} \) and \( \textbf C^{\|} \) of lattices \(\mathcal A\) and the CSL \(\mathcal C\), respectively: \( \textbf C^{\|} = \textbf A^{\|} \textbf M\).
Definition at line 62 of file BiCrystal.h.
const MatrixDimI gbLAB::BiCrystal< dim >::N |
Integer matrix that connects the bases \( \textbf B^{\|} \) and \( \textbf C^{\|} \) of lattices \(\mathcal B\) and the CSL \(\mathcal C\), respectively: \( \textbf C^{\|} = \textbf B^{\|} \textbf N\).
Definition at line 67 of file BiCrystal.h.
const int gbLAB::BiCrystal< dim >::sigma |
\( \Sigma = |\Sigma_{\mathcal A}|\) if \( \Sigma_{\mathcal A} = \Sigma_{\mathcal B}\), else \( \Sigma = 0 \)
Definition at line 82 of file BiCrystal.h.
const IntScalarType gbLAB::BiCrystal< dim >::sigmaA |
Signed ratio of the unit cell volume of \(\mathcal C\) to that of \(\mathcal A\). \( \Sigma_{\mathcal A} = \det(\textbf M)\).
Definition at line 72 of file BiCrystal.h.
const IntScalarType gbLAB::BiCrystal< dim >::sigmaB |
Signed ratio of the unit cell volume of \(\mathcal C\) to that of \(\mathcal B\): \( \Sigma_{\mathcal B} = \det(\textbf N)\).
Definition at line 77 of file BiCrystal.h.