From 6b3733d5dde05e87f08121a9bfc76ffb5fee1e52 Mon Sep 17 00:00:00 2001 From: maki49 <1579492865@qq.com> Date: Tue, 15 Oct 2024 18:37:29 +0800 Subject: [PATCH] make nk non-optional --- source/module_elecstate/module_dm/density_matrix.h | 4 ++-- source/module_elecstate/module_dm/test/test_dm_R_init.cpp | 4 ++-- .../module_elecstate/module_dm/test/test_dm_constructor.cpp | 2 +- source/module_elecstate/module_dm/test/test_dm_io.cpp | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/source/module_elecstate/module_dm/density_matrix.h b/source/module_elecstate/module_dm/density_matrix.h index 56ee5737f9..f712a8e4c3 100644 --- a/source/module_elecstate/module_dm/density_matrix.h +++ b/source/module_elecstate/module_dm/density_matrix.h @@ -49,9 +49,9 @@ class DensityMatrix * (usually {nspin_global -> nspin_dm} = {1->1, 2->2, 4->1}, but sometimes 2->1 like in LR-TDDFT) * @param kvec_d direct coordinates of kpoints * @param nk number of k-points, not always equal to K_Vectors::get_nks()/nspin_dm. - * if remains default or large than kvec_d.size(), it will be set to kvec_d.size() + * it will be set to kvec_d.size() if the value is invalid */ - DensityMatrix(const Parallel_Orbitals* _paraV, const int nspin, const std::vector>& kvec_d, const int nk = -1); + DensityMatrix(const Parallel_Orbitals* _paraV, const int nspin, const std::vector>& kvec_d, const int nk); /** * @brief Constructor of class DensityMatrix for gamma-only calculation, where kvector is not required diff --git a/source/module_elecstate/module_dm/test/test_dm_R_init.cpp b/source/module_elecstate/module_dm/test/test_dm_R_init.cpp index e32308d456..b917e0ac6c 100644 --- a/source/module_elecstate/module_dm/test/test_dm_R_init.cpp +++ b/source/module_elecstate/module_dm/test/test_dm_R_init.cpp @@ -118,7 +118,7 @@ TEST_F(DMTest, DMInit1) // construct DM std::cout << "dim0: " << paraV->dim0 << " dim1:" << paraV->dim1 << std::endl; std::cout << "nrow: " << paraV->nrow << " ncol:" << paraV->ncol << std::endl; - elecstate::DensityMatrix DM(paraV, nspin, kv->kvec_d); + elecstate::DensityMatrix DM(paraV, nspin, kv->kvec_d, nks); // initialize this->_DMR Grid_Driver gd(0,0); DM.init_DMR(&gd, &ucell); @@ -145,7 +145,7 @@ TEST_F(DMTest, DMInit2) // construct DM std::cout << "dim0: " << paraV->dim0 << " dim1:" << paraV->dim1 << std::endl; std::cout << "nrow: " << paraV->nrow << " ncol:" << paraV->ncol << std::endl; - elecstate::DensityMatrix DM(paraV, nspin, kv->kvec_d); + elecstate::DensityMatrix DM(paraV, nspin, kv->kvec_d, nks); // initialize Record_adj using Grid_Driver Grid_Driver gd(0,0); Record_adj ra; diff --git a/source/module_elecstate/module_dm/test/test_dm_constructor.cpp b/source/module_elecstate/module_dm/test/test_dm_constructor.cpp index c2c9832c44..8b4a9c7a6b 100644 --- a/source/module_elecstate/module_dm/test/test_dm_constructor.cpp +++ b/source/module_elecstate/module_dm/test/test_dm_constructor.cpp @@ -127,7 +127,7 @@ TEST_F(DMTest, DMConstructor_nspin1) std::cout << "dim0: " << paraV->dim0 << " dim1:" << paraV->dim1 << std::endl; std::cout << "nrow: " << paraV->nrow << " ncol:" << paraV->ncol << std::endl; int nspin = 1; - elecstate::DensityMatrix DM(paraV, nspin, kv->kvec_d); + elecstate::DensityMatrix DM(paraV, nspin, kv->kvec_d, nks); // compare EXPECT_EQ(DM.get_DMK_nks(), kv->get_nks()); EXPECT_EQ(DM.get_DMK_nrow(), paraV->nrow); diff --git a/source/module_elecstate/module_dm/test/test_dm_io.cpp b/source/module_elecstate/module_dm/test/test_dm_io.cpp index 8622bbc649..901ea7bef8 100644 --- a/source/module_elecstate/module_dm/test/test_dm_io.cpp +++ b/source/module_elecstate/module_dm/test/test_dm_io.cpp @@ -142,7 +142,7 @@ TEST_F(DMTest, DMConstructor1) int nspin = 1; // construct DM std::cout << paraV->nrow << paraV->ncol << std::endl; - elecstate::DensityMatrix DM(paraV, nspin, kv->kvec_d); + elecstate::DensityMatrix DM(paraV, nspin, kv->kvec_d, kv->get_nks()); // read DMK std::string directory = "./support/"; for (int is = 1; is <= nspin; ++is) @@ -162,7 +162,7 @@ TEST_F(DMTest, DMConstructor1) } } // construct a new DM - elecstate::DensityMatrix DM1(paraV, nspin, kv->kvec_d); + elecstate::DensityMatrix DM1(paraV, nspin, kv->kvec_d, kv->get_nks()); directory = "./support/output"; for (int is = 1; is <= nspin; ++is) {