From d076ba6c849eb0895be2e8bc62dd39d677cb24c1 Mon Sep 17 00:00:00 2001 From: chn Date: Fri, 8 Sep 2023 06:39:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=BC=E4=B9=8E=E5=8F=AF=E4=BB=A5=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flake.nix | 1 + main.cpp | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index b0d00cb..a9bcb00 100644 --- a/flake.nix +++ b/flake.nix @@ -6,6 +6,7 @@ devShell.x86_64-linux = pkgs.mkShell.override { stdenv = pkgs.gcc13Stdenv; } { buildInputs = with pkgs; [ yaml-cpp eigen ]; + nativeBuildInputs = with pkgs; [ gdb ]; }; }; } diff --git a/main.cpp b/main.cpp index 3c4877a..e0fbc0c 100644 --- a/main.cpp +++ b/main.cpp @@ -115,8 +115,8 @@ int main(int argc, const char** argv) { // 计算 q 点的坐标, 单位为相对于超胞的倒格矢 auto qpoint_relative_to_super_cell = - Eigen::Vector3i({{i, j, k}}) - + input.SuperCellMultiplier * Eigen::Vector3i({{x, y, z}}); + Eigen::Vector3i({{i}, {j}, {k}}) + + input.SuperCellMultiplier * Eigen::Vector3i({{x}, {y}, {z}}); // 将 q 点坐标转换为埃^-1 auto qpoint = (qpoint_relative_to_super_cell.transpose().cast() * (input.SuperCellMultiplier.cast().inverse().transpose())).transpose(); @@ -173,7 +173,7 @@ int main(int argc, const char** argv) auto& unfolded_qpoint = output.QPointData.emplace_back(); unfolded_qpoint.QPoint = input.SuperCellMultiplier.cast().inverse() * (input.QPointData[i_of_folded_qpoint].QPoint - + Eigen::Vector3i({{x, y, z}}).cast()); + + Eigen::Vector3i({{x}, {y}, {z}}).cast()); for (int i_of_mode = 0; i_of_mode < input.QPointData[i_of_folded_qpoint].ModeData.size(); i_of_mode++) { auto& mode = unfolded_qpoint.ModeData.emplace_back();