Skip to content

Commit c2032ce

Browse files
committed
fix compile in sdft
1 parent 9c014d8 commit c2032ce

File tree

5 files changed

+14
-12
lines changed

5 files changed

+14
-12
lines changed

source/module_base/math_chebyshev.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,7 @@ bool Chebyshev<REAL>::checkconverge(
575575
std::function<void(std::complex<REAL>* in, std::complex<REAL>* out, const int)> funA,
576576
std::complex<REAL>* wavein,
577577
const int N,
578+
const int LDA,
578579
REAL& tmax,
579580
REAL& tmin,
580581
REAL stept)
@@ -584,9 +585,9 @@ bool Chebyshev<REAL>::checkconverge(
584585
std::complex<REAL>* arrayn;
585586
std::complex<REAL>* arrayn_1;
586587

587-
arraynp1 = new std::complex<REAL>[N];
588-
arrayn = new std::complex<REAL>[N];
589-
arrayn_1 = new std::complex<REAL>[N];
588+
arraynp1 = new std::complex<REAL>[LDA];
589+
arrayn = new std::complex<REAL>[LDA];
590+
arrayn_1 = new std::complex<REAL>[LDA];
590591

591592
ModuleBase::GlobalFunc::DCOPY(wavein, arrayn_1, N);
592593

source/module_base/math_chebyshev.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ class Chebyshev
191191
bool checkconverge(std::function<void(std::complex<REAL>* in, std::complex<REAL>* out, const int)> funA,
192192
std::complex<REAL>* wavein,
193193
const int N,
194+
const int LDA,
194195
REAL& tmax, // trial number for upper bound
195196
REAL& tmin, // trial number for lower bound
196197
REAL stept); // tmax = max() + stept, tmin = min() - stept

source/module_base/test/math_chebyshev_test.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -346,15 +346,15 @@ TEST_F(MathChebyshevTest, checkconverge)
346346
double tmin = -1.1;
347347
double tmax = 1.1;
348348
bool converge;
349-
converge = p_chetest->checkconverge(fun_sigma_y, v, 2, tmax, tmin, 0.2);
349+
converge = p_chetest->checkconverge(fun_sigma_y, v, 2, 2, tmax, tmin, 0.2);
350350
EXPECT_TRUE(converge);
351-
converge = p_chetest->checkconverge(fun_sigma_y, v + 2, 2, tmax, tmin, 0.2);
351+
converge = p_chetest->checkconverge(fun_sigma_y, v + 2, 2, 2, tmax, tmin, 0.2);
352352
EXPECT_TRUE(converge);
353353
EXPECT_NEAR(tmin, -1.1, 1e-8);
354354
EXPECT_NEAR(tmax, 1.1, 1e-8);
355355

356356
tmax = -1.1;
357-
converge = p_chetest->checkconverge(fun_sigma_y, v, 2, tmax, tmin, 2.2);
357+
converge = p_chetest->checkconverge(fun_sigma_y, v, 2, 2, tmax, tmin, 2.2);
358358
EXPECT_TRUE(converge);
359359
EXPECT_NEAR(tmin, -1.1, 1e-8);
360360
EXPECT_NEAR(tmax, 1.1, 1e-8);
@@ -363,12 +363,12 @@ TEST_F(MathChebyshevTest, checkconverge)
363363
v[0] = std::complex<double>(0, 1), v[1] = 1;
364364
fun.factor = 1.5;
365365
tmin = -1.1, tmax = 1.1;
366-
converge = p_chetest->checkconverge(fun_sigma_y, v, 2, tmax, tmin, 0.2);
366+
converge = p_chetest->checkconverge(fun_sigma_y, v, 2, 2, tmax, tmin, 0.2);
367367
EXPECT_FALSE(converge);
368368

369369
fun.factor = -1.5;
370370
tmin = -1.1, tmax = 1.1;
371-
converge = p_chetest->checkconverge(fun_sigma_y, v, 2, tmax, tmin, 0.2);
371+
converge = p_chetest->checkconverge(fun_sigma_y, v, 2, 2, tmax, tmin, 0.2);
372372
EXPECT_FALSE(converge);
373373
fun.factor = 1;
374374

@@ -632,9 +632,9 @@ TEST_F(MathChebyshevTest, checkconverge_float)
632632

633633
auto fun_sigma_yf
634634
= [&](std::complex<float>* in, std::complex<float>* out, const int m = 1) { fun.sigma_y(in, out, m); };
635-
converge = p_fchetest->checkconverge(fun_sigma_yf, v, 2, tmax, tmin, 0.2);
635+
converge = p_fchetest->checkconverge(fun_sigma_yf, v, 2, 2, tmax, tmin, 0.2);
636636
EXPECT_TRUE(converge);
637-
converge = p_fchetest->checkconverge(fun_sigma_yf, v + 2, 2, tmax, tmin, 0.2);
637+
converge = p_fchetest->checkconverge(fun_sigma_yf, v + 2, 2, 2, tmax, tmin, 0.2);
638638
EXPECT_TRUE(converge);
639639
EXPECT_NEAR(tmin, -1.1, 1e-6);
640640
EXPECT_NEAR(tmax, 1.1, 1e-6);

source/module_hamilt_pw/hamilt_stodft/sto_iter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ void Stochastic_Iter::checkemm(const int& ik, const int istep, const int iter, S
140140
std::placeholders::_1,
141141
std::placeholders::_2,
142142
std::placeholders::_3);
143-
converge = p_che->checkconverge(hchi_norm, pchi, npw, *p_hamilt_sto->emax, *p_hamilt_sto->emin, 5.0);
143+
converge = p_che->checkconverge(hchi_norm, pchi, npw, stowf.npwx, *p_hamilt_sto->emax, *p_hamilt_sto->emin, 5.0);
144144

145145
if (!converge)
146146
{

source/module_hamilt_pw/hamilt_stodft/sto_tool.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ void check_che(const int& nche_in,
7474
std::placeholders::_1,
7575
std::placeholders::_2,
7676
std::placeholders::_3);
77-
converge = chetest.checkconverge(hchi_norm, pchi, npw, *p_hamilt_sto->emax, *p_hamilt_sto->emin, 2.0);
77+
converge = chetest.checkconverge(hchi_norm, pchi, npw, p_stowf->npwx, *p_hamilt_sto->emax, *p_hamilt_sto->emin, 2.0);
7878

7979
if (!converge)
8080
{

0 commit comments

Comments
 (0)