尝试使用平方和代替绝对值和

This commit is contained in:
2023-09-08 06:43:14 +08:00
parent d076ba6c84
commit 43255324bb

View File

@@ -149,10 +149,10 @@ int main(int argc, const char** argv)
i_of_basis_in_primary_cell++
)
coefficient_at_mode[i_of_unfolded_qpoint] +=
(
std::sqrt((
basis[i_of_unfolded_qpoint][i_of_basis_in_primary_cell].transpose()
* input.QPointData[i_of_folded_qpoint].ModeData[i_of_mode].AtomMovement
).array().abs().sum();
).array().abs2().sum());
// 归一化
auto sum = std::accumulate(coefficient_at_mode.begin(), coefficient_at_mode.end(), 0.);