Skip to content

Commit b87874d

Browse files
author
abacus_fixer
committed
refactor(source_cell): pass running-log stream to ReciprocalGrid::set_both_kvec
Same pattern as the previous K_Vectors commit: the only remaining non-virtual ReciprocalGrid function that read GlobalV::ofs_running now takes std::ofstream& ofs_running and writes through the parameter. - Caller in K_Vectors::set() passes its existing 'ofs' argument; klist_test.cpp direct calls (6) pass GlobalV::ofs_running explicitly; - QList never calls set_both_kvec, so its chain is untouched - Left as-is (recorded): GlobalV::ofs_warning and the MY_RANK guards inside set_both_kvec, plus build_star_ops / reduce_by_symmetry / MY_RANK / MPI topology reads listed in the previous commit GlobalV reads: reciprocal_grid.cpp 14 -> 13, klist.cpp 35 -> 23 (ofs_running share: 15 -> 0). Verified: make -j 30 (0 errors); ctest MODULE_CELL_{klist,reciprocal_ grid,qlist}_test and klist_test_para1/para4 5/5 passed.
1 parent d6d129d commit b87874d

4 files changed

Lines changed: 23 additions & 16 deletions

File tree

source/source_cell/klist.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ void K_Vectors::set(const UnitCell& ucell,
145145
// Improve k point information
146146

147147
// Complement the coordinates of k point
148-
this->set_both_kvec(reciprocal_vec, latvec, skpt2);
148+
this->set_both_kvec(reciprocal_vec, latvec, skpt2, ofs);
149149

150150
if (GlobalV::MY_RANK == 0)
151151
{

source/source_cell/reciprocal_grid.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,10 @@ void ReciprocalGrid::kvec_c2d(const ModuleBase::Matrix3& latvec)
167167
}
168168
}
169169

170-
void ReciprocalGrid::set_both_kvec(const ModuleBase::Matrix3& G, const ModuleBase::Matrix3& R, std::string& skpt)
170+
void ReciprocalGrid::set_both_kvec(const ModuleBase::Matrix3& G,
171+
const ModuleBase::Matrix3& R,
172+
std::string& skpt,
173+
std::ofstream& ofs_running)
171174
{
172175
// Re-derive the "which representation was read from file" flags.
173176
// For auto-generated meshes (k_nkstot == 0) the direct coordinates
@@ -220,7 +223,7 @@ void ReciprocalGrid::set_both_kvec(const ModuleBase::Matrix3& G, const ModuleBas
220223
this->kvec_d[i].z,
221224
this->wk[i]);
222225
}
223-
GlobalV::ofs_running << table << std::endl;
226+
ofs_running << table << std::endl;
224227
if (GlobalV::MY_RANK == 0)
225228
{
226229
std::stringstream ss;

source/source_cell/reciprocal_grid.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,12 @@ class ReciprocalGrid
103103
* @param G reciprocal lattice matrix
104104
* @param R real space lattice matrix
105105
* @param skpt output string holding the point table
106+
* @param ofs_running running-log stream
106107
*/
107-
void set_both_kvec(const ModuleBase::Matrix3& G, const ModuleBase::Matrix3& R, std::string& skpt);
108+
void set_both_kvec(const ModuleBase::Matrix3& G,
109+
const ModuleBase::Matrix3& R,
110+
std::string& skpt,
111+
std::ofstream& ofs_running);
108112

109113
/// @brief Normalize the weights so that they sum to the spin degeneracy.
110114
void normalize_wk(const int& degspin);

source/source_cell/test/klist_test.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -730,28 +730,28 @@ TEST_F(KlistTest, SetBothKvecFlagsFromFile)
730730
kv->kc_done = false;
731731
// case 1
732732
kv->k_nkstot = 0;
733-
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
734-
kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
733+
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
734+
kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
735735
EXPECT_TRUE(kv->kd_done);
736736
EXPECT_TRUE(kv->kc_done);
737737
// case 2
738738
kv->k_nkstot = 1;
739739
kv->k_kword = "D";
740-
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
741-
kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
740+
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
741+
kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
742742
EXPECT_TRUE(kv->kd_done);
743743
EXPECT_TRUE(kv->kc_done);
744744
// case 3
745745
kv->k_kword = "C";
746-
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
747-
kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
746+
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
747+
kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
748748
EXPECT_TRUE(kv->kc_done);
749749
EXPECT_TRUE(kv->kd_done);
750750
// case 4
751751
GlobalV::ofs_warning.open("klist_tmp_warning_8");
752752
kv->k_kword = "arbitrary";
753-
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
754-
kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
753+
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
754+
kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
755755
GlobalV::ofs_warning.close();
756756
ifs.open("klist_tmp_warning_8");
757757
std::string str((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());
@@ -772,13 +772,13 @@ TEST_F(KlistTest, SetBothKvec)
772772
kv->kc_done = false;
773773
kv->kd_done = true;
774774
std::string skpt;
775-
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
776-
kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
775+
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
776+
kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
777777
EXPECT_TRUE(kv->kc_done);
778778
kv->kc_done = true;
779779
kv->kd_done = false;
780-
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
781-
kv->set_both_kvec(ucell.G, ucell.latvec, skpt);
780+
// kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
781+
kv->set_both_kvec(ucell.G, ucell.latvec, skpt, GlobalV::ofs_running);
782782
EXPECT_TRUE(kv->kd_done);
783783
}
784784

0 commit comments

Comments
 (0)