This commit is contained in:
陈浩南 2023-10-07 17:21:04 +08:00
parent e078cea43c
commit 38e062dad4

View File

@ -446,14 +446,13 @@ namespace ufo
ModifiedSuperCell = SuperCellMultiplier.asDiagonal() * PrimativeCell; ModifiedSuperCell = SuperCellMultiplier.asDiagonal() * PrimativeCell;
MetaQpoint = MetaQpointByReciprocalModifiedSuperCell.transpose() * ReciprocalModifiedSuperCell; MetaQpoint = MetaQpointByReciprocalModifiedSuperCell.transpose() * ReciprocalModifiedSuperCell;
MetaQpoint = MetaQpointByReciprocalSuperCell.transpose() * ReciprocalSuperCell; MetaQpoint = MetaQpointByReciprocalSuperCell.transpose() * ReciprocalSuperCell;
ReciprocalModifiedSuperCell = ModifiedSuperCell.inverse().transpose();
ReciprocalSuperCell = SuperCell.inverse().transpose(); ReciprocalSuperCell = SuperCell.inverse().transpose();
ModifiedSuperCell = SuperCellDeformation * SuperCell; ModifiedSuperCell = SuperCellDeformation * SuperCell;
SuperCell = SuperCellMultiplier.asDiagonal() * PrimativeCell; SuperCell = SuperCellMultiplier.asDiagonal() * PrimativeCell;
: :
SubQpointByReciprocalPrimativeCell = SuperCellMultiplier.asDiagonal().inverse() * SubQpointByReciprocalPrimativeCell = SuperCellMultiplier.asDiagonal().inverse() *
(XyzOfDiffOfSubQpointByReciprocalModifiedSuperCell + (XyzOfDiffOfSubQpointByReciprocalModifiedSuperCell +
SuperCellDeformation * MetaQpointByReciprocalSuperCell); SuperCellDeformation.inverse() * MetaQpointByReciprocalSuperCell);
, SubQpoint ReciprocalPrimativeCell , SubQpoint ReciprocalPrimativeCell
( SuperCellDeformation , SubQpoint ). ( SuperCellDeformation , SubQpoint ).
, , SubQpointByReciprocalPrimativeCell . , , SubQpointByReciprocalPrimativeCell .
@ -463,7 +462,7 @@ namespace ufo
super_cell_multiplier.cast<double>().cwiseInverse().asDiagonal() super_cell_multiplier.cast<double>().cwiseInverse().asDiagonal()
* ( * (
xyz_of_diff_of_sub_qpoint_by_reciprocal_modified_super_cell.cast<double>() xyz_of_diff_of_sub_qpoint_by_reciprocal_modified_super_cell.cast<double>()
+ super_cell_deformation.value_or(Eigen::Matrix3d::Identity()) + super_cell_deformation.value_or(Eigen::Matrix3d::Identity()).inverse()
* meta_qpoint_by_reciprocal_super_cell[i_of_meta_qpoint].get().cast<double>() * meta_qpoint_by_reciprocal_super_cell[i_of_meta_qpoint].get().cast<double>()
) )
).eval(); ).eval();