12int main(
int argc,
char** argv)
14 using IntScalarType=
long long int;
22 const auto A(
TextFileParser(
"bicrystal_2d.txt").readMatrix<double,2,2>(
"A",
true));
29 Eigen::Matrix2d R= Eigen::Rotation2D<double>( 143.0029103206*std::numbers::pi/180).matrix();
33 std::cout<<
"sigma="<<bc.
sigma<<std::endl;
35 std::vector<LatticeVector<2>> boxVectors;
36 Eigen::Matrix<IntScalarType,2,2> U;
38 Eigen::Vector<IntScalarType,2> temp(U.col(0));
43 bc.
box(boxVectors,0.6,2,
"bc.txt",
true);
50 const auto A(
TextFileParser(
"bicrystal_3d.txt").readMatrix<double,3,3>(
"A",
true));
51 const auto R1(
TextFileParser(
"bicrystal_3d.txt").readMatrix<double,3,3>(
"R1",
true));
52 const auto R2(
TextFileParser(
"bicrystal_3d.txt").readMatrix<double,3,3>(
"R2",
true));
53 const auto misAxis(
TextFileParser(
"bicrystal_3d.txt").readMatrix<double,3,1>(
"misAxis",
true));
59 std::cout<<
"sigma="<<bc.
sigma<<std::endl;
63 std::cout<<
"Integer coordinates of misorientation axis = "<<a1.latticeVector().transpose()<<std::endl;
71 const auto A(
TextFileParser(
"Grimmer1985.txt").readMatrix<double,3,3>(
"A",
true));
72 const auto Tn(
TextFileParser(
"Grimmer1985.txt").readMatrix<long long int,3,3>(
"Tn",
true));
73 const auto Td(
TextFileParser(
"Grimmer1985.txt").readScalar<long long int>(
"Td",
true));
76 const Eigen::Matrix<double,3,3> R(A*T.
asMatrix()*A.inverse());
77 const double angle(acos(R.trace()/3.0));
78 std::cout<<
"rot angle="<<angle*180.0/(std::numbers::pi)<<std::endl;
80 Eigen::Matrix<double,3,1> axis(Eigen::Matrix<double,3,1>::Zero());
81 Eigen::EigenSolver< Eigen::Matrix<double,3,3> > es(R);
85 const auto& eVal(es.eigenvalues()(k));
86 if(std::fabs(eVal.imag())<FLT_EPSILON && std::fabs(eVal.real()-1.0)<FLT_EPSILON)
88 const auto eVec(es.eigenvectors().col(k));
91 axis(d)=eVec(d).real();
96 std::cout<<
"rot axis="<<axis.transpose()<<std::endl;
101 std::cout<<
"axisDir="<<axisDir.latticeVector().transpose()<<std::endl;
103 std::cout<<
"axisRec="<<axisRec.reciprocalLatticeVector().transpose()<<std::endl;
108 std::cout<<
"mu_R="<<bc.
mu<<std::endl;
109 std::cout<<
"sigma_R="<<bc.
sigma<<std::endl;
111 std::cout<<
"D=\n"<<bc.
matrixD()<<std::endl;
112 std::cout<<
"M=\n"<<bc.
M<<std::endl;
113 std::cout<<
"N=\n"<<bc.
N<<std::endl;
115 const Eigen::Matrix< long long,3,3> X(bc.
matrixX());
116 const Eigen::Matrix< long long,3,3> Y(bc.
matrixY());
117 const Eigen::Matrix< long long,3,3> adjX(X.adjoint());
118 const Eigen::Matrix< long long,3,3> adjY(Y.adjoint());
122 std::cout<<
"mu_RT="<<bcT.
mu<<std::endl;
123 std::cout<<
"sigma_RT="<<bcT.
sigma<<std::endl;
125 std::cout<<
"D=\n"<<bcT.
matrixD()<<std::endl;
126 std::cout<<
"M=\n"<<bcT.
M<<std::endl;
127 std::cout<<
"N=\n"<<bcT.
N<<std::endl;
134 std::cout<<
"No input file for case="<< caseId <<std::endl;
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
int main(int argc, char **argv)