|
oILAB
|
#include <BiCrystal.h>
Inheritance diagram for oILAB::BiCrystal< dim >: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 |
Public Member Functions inherited from oILAB::RationalMatrix< dim > | |
| RationalMatrix (const MatrixDimD &R) | |
| RationalMatrix (const MatrixDimI &Rn, const IntScalarType &Rd) | |
| RationalMatrix (const MatrixDimI &Rn, const MatrixDimI &Rd) | |
| MatrixDimD | asMatrix () const |
Public Member Functions inherited from oILAB::SmithDecomposition< dim > | |
| 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. | |
Data Fields inherited from oILAB::RationalMatrix< dim > | |
| 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) |
| static MatrixDimD | getDSCLBasis (const Lattice< dim > &A, const Lattice< dim > &B, const SmithDecomposition< dim > &sd, const MatrixDimI &M, const MatrixDimI &N) |
Private Attributes | |
| const Lattice< dim > | cslp |
| Lattice \(\mathcal C\) with basis \(\textbf C^\|\). | |
| const Lattice< dim > | dsclp |
| Lattice \(\mathcal D\) with basis \(\textbf D^\|\). | |
| const MatrixDimI | dscl2dsclp |
| Maps integer coordinates w.r.t \(\textbf D\) basis to integer coordinates w.r.t parallel basis \(\textbf D^\|\). | |
| const MatrixDimI | csl2cslp |
| Maps integer coordinates w.r.t \(\textbf C\) basis to integer coordinates w.r.t parallel basis \(\textbf C^\|\). | |
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 25 of file BiCrystal.h.
|
private |
Definition at line 28 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 29 of file BiCrystal.h.
|
private |
Definition at line 31 of file BiCrystal.h.
| oILAB::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 161 of file BiCrystal.cpp.
| template std::vector< LatticeVector< 3 > > oILAB::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 520 of file BiCrystal.cpp.
| template std::map< BiCrystal< 3 >::IntScalarType, Gb< 3 > > oILAB::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 466 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 82 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 133 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 42 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 62 of file BiCrystal.cpp.
| LatticeDirection< dim > oILAB::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 306 of file BiCrystal.cpp.
| LatticeDirection< dim > oILAB::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 336 of file BiCrystal.cpp.
| LatticeVector< dim > oILAB::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 238 of file BiCrystal.cpp.
| LatticeVector< dim > oILAB::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 256 of file BiCrystal.cpp.
| LatticeVector< dim > oILAB::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 274 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 17 of file BiCrystal.cpp.
|
staticprivate |
Definition at line 29 of file BiCrystal.cpp.
| ReciprocalLatticeDirection< dim > oILAB::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 342 of file BiCrystal.cpp.
| ReciprocalLatticeDirection< dim > oILAB::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 370 of file BiCrystal.cpp.
| ReciprocalLatticeDirection< dim > oILAB::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 400 of file BiCrystal.cpp.
| ReciprocalLatticeDirection< dim > oILAB::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 425 of file BiCrystal.cpp.
| LatticeVector< dim > oILAB::BiCrystal< dim >::shiftTensorA | ( | const LatticeVector< dim > & | d | ) | const |
Definition at line 449 of file BiCrystal.cpp.
| LatticeVector< dim > oILAB::BiCrystal< dim >::shiftTensorB | ( | const LatticeVector< dim > & | d | ) | const |
Definition at line 457 of file BiCrystal.cpp.
| const Lattice<dim>& oILAB::BiCrystal< dim >::A |
Definition at line 52 of file BiCrystal.h.
| const Lattice<dim> oILAB::BiCrystal< dim >::Ap |
Lattice \(\mathcal A\) with basis \(\textbf A^\|\).
Definition at line 110 of file BiCrystal.h.
| const Lattice<dim>& oILAB::BiCrystal< dim >::B |
Definition at line 53 of file BiCrystal.h.
| const Lattice<dim> oILAB::BiCrystal< dim >::Bp |
Lattice \(\mathcal B\) with basis \(\textbf B^\|\).
Definition at line 114 of file BiCrystal.h.
| const Lattice<dim> oILAB::BiCrystal< dim >::csl |
CSL lattice \(\mathcal C\).
Definition at line 102 of file BiCrystal.h.
|
private |
Maps integer coordinates w.r.t \(\textbf C\) basis to integer coordinates w.r.t parallel basis \(\textbf C^\|\).
Definition at line 97 of file BiCrystal.h.
|
private |
Lattice \(\mathcal C\) with basis \(\textbf C^\|\).
Definition at line 83 of file BiCrystal.h.
| const Lattice<dim> oILAB::BiCrystal< dim >::dscl |
DCSL lattice \(\mathcal D\).
Definition at line 106 of file BiCrystal.h.
|
private |
Maps integer coordinates w.r.t \(\textbf D\) basis to integer coordinates w.r.t parallel basis \(\textbf D^\|\).
Definition at line 92 of file BiCrystal.h.
|
private |
Lattice \(\mathcal D\) with basis \(\textbf D^\|\).
Definition at line 87 of file BiCrystal.h.
| const MatrixDimI oILAB::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 119 of file BiCrystal.h.
| const MatrixDimI oILAB::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 124 of file BiCrystal.h.
| const MatrixDimI oILAB::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 58 of file BiCrystal.h.
| const MatrixDimI oILAB::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 63 of file BiCrystal.h.
| const int oILAB::BiCrystal< dim >::sigma |
\( \Sigma = |\Sigma_{\mathcal A}|\) if \( \Sigma_{\mathcal A} = \Sigma_{\mathcal B}\), else \( \Sigma = 0 \)
Definition at line 78 of file BiCrystal.h.
| const IntScalarType oILAB::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 68 of file BiCrystal.h.
| const IntScalarType oILAB::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 73 of file BiCrystal.h.