3 #include "casm/external/Eigen/Core"
10 const Eigen::Ref<const Eigen::Matrix3d> &deformation_tensor) {
19 Eigen::SelfAdjointEigenSolver<Eigen::Matrix3d> es(
21 return es.operatorSqrt();
28 const Eigen::Ref<const Eigen::Matrix3d> &deformation_tensor) {
44 const Eigen::Ref<const Eigen::Matrix3d> &deformation_tensor) {
46 Eigen::SelfAdjointEigenSolver<Eigen::Matrix3d> es(F.transpose() * F);
47 return es.eigenvectors() *
48 es.eigenvalues().array().log().matrix().asDiagonal() *
49 es.eigenvectors().inverse() / 2.0;
56 Eigen::SelfAdjointEigenSolver<Eigen::Matrix3d> es(H);
57 return es.eigenvectors() *
58 es.eigenvalues().array().exp().matrix().asDiagonal() *
59 es.eigenvectors().inverse();
66 const Eigen::Ref<const Eigen::Matrix3d> &deformation_tensor) {
76 Eigen::SelfAdjointEigenSolver<Eigen::Matrix3d> es(
78 return es.operatorInverseSqrt();
99 const Eigen::Ref<const Eigen::Matrix3d> &deformation_tensor) {
101 return F.transpose() * F;
105 const Eigen::Ref<const Eigen::Matrix3d> &deformation_tensor) {
108 Eigen::SelfAdjointEigenSolver<Eigen::Matrix3d> eigen_solver(C);
109 return eigen_solver.operatorSqrt();
Eigen::Matrix< typename Derived::Scalar, Derived::RowsAtCompileTime, Derived::ColsAtCompileTime > inverse(const Eigen::MatrixBase< Derived > &M)
Return the integer inverse matrix of an invertible integer matrix.
IdentitySymRepBuilder Identity()
Eigen::Matrix3d right_stretch_tensor(const Eigen::Ref< const Eigen::Matrix3d > &deformation_tensor)
Calculates and returns the value of U where F = R*U.
Eigen::Matrix3d metric_tensor(const Eigen::Ref< const Eigen::Matrix3d > &deformation_tensor)