11int main(
int argc,
char** argv)
13 using IntScalarType=
long long int;
21 const auto A(
TextFileParser(
"bicrystal_2d.txt").readMatrix<double,2,2>(
"A",
true));
28 Eigen::Matrix2d R= Eigen::Rotation2D<double>( 143.0029103206*M_PI/180).matrix();
32 std::cout<<
"sigma="<<bc.
sigma<<std::endl;
34 std::vector<LatticeVector<2>> boxVectors;
35 Eigen::Matrix<IntScalarType,2,2> U;
37 Eigen::Vector<IntScalarType,2> temp(U.col(0));
42 bc.
box(boxVectors,0.6,2,
"bc.txt",
true);
49 const auto A(
TextFileParser(
"bicrystal_3d.txt").readMatrix<double,3,3>(
"A",
true));
50 const auto R1(
TextFileParser(
"bicrystal_3d.txt").readMatrix<double,3,3>(
"R1",
true));
51 const auto R2(
TextFileParser(
"bicrystal_3d.txt").readMatrix<double,3,3>(
"R2",
true));
52 const auto misAxis(
TextFileParser(
"bicrystal_3d.txt").readMatrix<double,3,1>(
"misAxis",
true));
58 std::cout<<
"sigma="<<bc.
sigma<<std::endl;
62 std::cout<<
"Integer coordinates of misorientation axis = "<<a1.latticeVector().transpose()<<std::endl;
70 const auto A(
TextFileParser(
"Grimmer1985.txt").readMatrix<double,3,3>(
"A",
true));
71 const auto Tn(
TextFileParser(
"Grimmer1985.txt").readMatrix<long long int,3,3>(
"Tn",
true));
72 const auto Td(
TextFileParser(
"Grimmer1985.txt").readScalar<long long int>(
"Td",
true));
75 const Eigen::Matrix<double,3,3> R(A*T.
asMatrix()*A.inverse());
76 const double angle(acos(R.trace()/3.0));
77 std::cout<<
"rot angle="<<angle*180.0/M_PI<<std::endl;
79 Eigen::Matrix<double,3,1> axis(Eigen::Matrix<double,3,1>::Zero());
80 Eigen::EigenSolver< Eigen::Matrix<double,3,3> > es(R);
84 const auto& eVal(es.eigenvalues()(k));
85 if(std::fabs(eVal.imag())<FLT_EPSILON && std::fabs(eVal.real()-1.0)<FLT_EPSILON)
87 const auto eVec(es.eigenvectors().col(k));
90 axis(d)=eVec(d).real();
95 std::cout<<
"rot axis="<<axis.transpose()<<std::endl;
100 std::cout<<
"axisDir="<<axisDir.latticeVector().transpose()<<std::endl;
102 std::cout<<
"axisRec="<<axisRec.reciprocalLatticeVector().transpose()<<std::endl;
107 std::cout<<
"mu_R="<<bc.
mu<<std::endl;
108 std::cout<<
"sigma_R="<<bc.
sigma<<std::endl;
110 std::cout<<
"D=\n"<<bc.
matrixD()<<std::endl;
111 std::cout<<
"M=\n"<<bc.
M<<std::endl;
112 std::cout<<
"N=\n"<<bc.
N<<std::endl;
114 const Eigen::Matrix< long long,3,3> X(bc.
matrixX());
115 const Eigen::Matrix< long long,3,3> Y(bc.
matrixY());
116 const Eigen::Matrix< long long,3,3> adjX(X.adjoint());
117 const Eigen::Matrix< long long,3,3> adjY(Y.adjoint());
121 std::cout<<
"mu_RT="<<bcT.
mu<<std::endl;
122 std::cout<<
"sigma_RT="<<bcT.
sigma<<std::endl;
124 std::cout<<
"D=\n"<<bcT.
matrixD()<<std::endl;
125 std::cout<<
"M=\n"<<bcT.
M<<std::endl;
126 std::cout<<
"N=\n"<<bcT.
N<<std::endl;
133 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)