Skip to content

Commit 7280235

Browse files
committed
update offset
1 parent 7490f7e commit 7280235

File tree

3 files changed

+30
-24
lines changed

3 files changed

+30
-24
lines changed

source/module_basis/module_pw/test_gpu/pw_basis_C2C.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,22 @@ TEST_F(PWTEST, recip_to_real_C2C_double)
5151
{
5252
for (int iy = 0; iy < ny; ++iy)
5353
{
54+
const int offset = (ix * ny + iy) * nz;
5455
for (int iz = 0; iz < nz; ++iz)
5556
{
56-
tmp[ix * ny * nz + iy * nz + iz] = 0.0;
57+
tmp[offset + iz] = 0.0;
5758
double vx = ix - int(nx / 2);
5859
double vy = iy - int(ny / 2);
5960
double vz = iz - int(nz / 2);
6061
ModuleBase::Vector3<double> v(vx, vy, vz);
6162
double modulus = v * (GGT * v);
6263
if (modulus <= ggecut)
6364
{
64-
tmp[ix * ny * nz + iy * nz + iz] = 1.0 / (modulus + 1);
65+
tmp[offset + iz] = 1.0 / (modulus + 1);
6566
if (vy > 0)
66-
tmp[ix * ny * nz + iy * nz + iz] += ModuleBase::IMAG_UNIT / (std::abs(v.x + 1) + 1);
67+
tmp[offset + iz] += ModuleBase::IMAG_UNIT / (std::abs(v.x + 1) + 1);
6768
else if (vy < 0)
68-
tmp[ix * ny * nz + iy * nz + iz] -= ModuleBase::IMAG_UNIT / (std::abs(-v.x + 1) + 1);
69+
tmp[offset + iz] -= ModuleBase::IMAG_UNIT / (std::abs(-v.x + 1) + 1);
6970
}
7071
}
7172
}
@@ -186,21 +187,22 @@ TEST_F(PWTEST, recip_to_real_C2C_float)
186187
{
187188
for (int iy = 0; iy < ny; ++iy)
188189
{
190+
const int offset = (ix * ny + iy) * nz;
189191
for (int iz = 0; iz < nz; ++iz)
190192
{
191-
tmp[ix * ny * nz + iy * nz + iz] = 0.0;
193+
tmp[offset+ iz] = 0.0;
192194
float vx = ix - int(nx / 2);
193195
float vy = iy - int(ny / 2);
194196
float vz = iz - int(nz / 2);
195197
ModuleBase::Vector3<double> v(vx, vy, vz);
196198
float modulus = v * (GGT * v);
197199
if (modulus <= ggecut)
198200
{
199-
tmp[ix * ny * nz + iy * nz + iz] = 1.0 / (modulus + 1);
201+
tmp[offset+ iz] = 1.0 / (modulus + 1);
200202
if (vy > 0)
201-
tmp[ix * ny * nz + iy * nz + iz] += std::complex<float>(0, 1.0) / (std::abs(vx + 1) + 1);
203+
tmp[offset+ iz] += std::complex<float>(0, 1.0) / (std::abs(vx + 1) + 1);
202204
else if (vy < 0)
203-
tmp[ix * ny * nz + iy * nz + iz] -= std::complex<float>(0, 1.0) / (std::abs(-vx + 1) + 1);
205+
tmp[offset+ iz] -= std::complex<float>(0, 1.0) / (std::abs(-vx + 1) + 1);
204206
}
205207
}
206208
}

source/module_basis/module_pw/test_gpu/pw_basis_C2R.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,22 @@ TEST_F(PWTEST, recip_to_real_double)
5454
{
5555
for (int iy = 0; iy < ny; ++iy)
5656
{
57+
const int offset = (ix * ny + iy) * nz;
5758
for (int iz = 0; iz < nz; ++iz)
5859
{
59-
tmp[ix * ny * nz + iy * nz + iz] = 0.0;
60+
tmp[offset+ iz] = 0.0;
6061
double vx = ix - int(nx / 2);
6162
double vy = iy - int(ny / 2);
6263
double vz = iz - int(nz / 2);
6364
ModuleBase::Vector3<double> v(vx, vy, vz);
6465
double modulus = v * (GGT * v);
6566
if (modulus <= ggecut)
6667
{
67-
tmp[ix * ny * nz + iy * nz + iz] = 1.0 / (modulus + 1);
68+
tmp[offset+ iz] = 1.0 / (modulus + 1);
6869
if (vy > 0)
69-
tmp[ix * ny * nz + iy * nz + iz] += ModuleBase::IMAG_UNIT / (std::abs(v.x + 1) + 1);
70+
tmp[offset+ iz] += ModuleBase::IMAG_UNIT / (std::abs(v.x + 1) + 1);
7071
else if (vy < 0)
71-
tmp[ix * ny * nz + iy * nz + iz] -= ModuleBase::IMAG_UNIT / (std::abs(-v.x + 1) + 1);
72+
tmp[offset+ iz] -= ModuleBase::IMAG_UNIT / (std::abs(-v.x + 1) + 1);
7273
}
7374
}
7475
}
@@ -189,21 +190,22 @@ TEST_F(PWTEST, recip_to_real_float)
189190
{
190191
for (int iy = 0; iy < ny; ++iy)
191192
{
193+
const int offset = (ix * ny + iy) * nz;
192194
for (int iz = 0; iz < nz; ++iz)
193195
{
194-
tmp[ix * ny * nz + iy * nz + iz] = 0.0;
196+
tmp[offset+ iz] = 0.0;
195197
float vx = ix - int(nx / 2);
196198
float vy = iy - int(ny / 2);
197199
float vz = iz - int(nz / 2);
198200
ModuleBase::Vector3<double> v(vx, vy, vz);
199201
float modulus = v * (GGT * v);
200202
if (modulus <= ggecut)
201203
{
202-
tmp[ix * ny * nz + iy * nz + iz] = 1.0 / (modulus + 1);
204+
tmp[offset+ iz] = 1.0 / (modulus + 1);
203205
if (vy > 0)
204-
tmp[ix * ny * nz + iy * nz + iz] += std::complex<float>(0, 1.0) / (std::abs(vx + 1) + 1);
206+
tmp[offset+ iz] += std::complex<float>(0, 1.0) / (std::abs(vx + 1) + 1);
205207
else if (vy < 0)
206-
tmp[ix * ny * nz + iy * nz + iz] -= std::complex<float>(0, 1.0) / (std::abs(-vx + 1) + 1);
208+
tmp[offset+ iz] -= std::complex<float>(0, 1.0) / (std::abs(-vx + 1) + 1);
207209
}
208210
}
209211
}

source/module_basis/module_pw/test_gpu/pw_basis_k_C2C.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,22 @@ TEST_F(PWTEST, pw_basis_k_C2C_double)
5555
{
5656
for (int iy = 0; iy < ny; ++iy)
5757
{
58+
const int offset = (ix * ny + iy) * nz;
5859
for (int iz = 0; iz < nz; ++iz)
5960
{
60-
tmp[ix * ny * nz + iy * nz + iz] = 0.0;
61+
tmp[offset+ iz] = 0.0;
6162
double vx = ix - int(nx / 2);
6263
double vy = iy - int(ny / 2);
6364
double vz = iz - int(nz / 2);
6465
ModuleBase::Vector3<double> v(vx, vy, vz);
6566
double modulusgk = (v + kk) * (GGT * (v + kk));
6667
if (modulusgk <= ggecut)
6768
{
68-
tmp[ix * ny * nz + iy * nz + iz] = 1.0 / (modulusgk + 1);
69+
tmp[offset+ iz] = 1.0 / (modulusgk + 1);
6970
if (vy > 0)
70-
tmp[ix * ny * nz + iy * nz + iz] += ModuleBase::IMAG_UNIT / (std::abs(v.x + 1) + 1);
71+
tmp[offset+ iz] += ModuleBase::IMAG_UNIT / (std::abs(v.x + 1) + 1);
7172
else if (vy < 0)
72-
tmp[ix * ny * nz + iy * nz + iz] -= ModuleBase::IMAG_UNIT / (std::abs(-v.x + 1) + 1);
73+
tmp[offset+ iz] -= ModuleBase::IMAG_UNIT / (std::abs(-v.x + 1) + 1);
7374
}
7475
}
7576
}
@@ -192,21 +193,22 @@ TEST_F(PWTEST, pw_basis_k_C2C_float)
192193
{
193194
for (int iy = 0; iy < ny; ++iy)
194195
{
196+
const int offset = (ix * ny + iy) * nz;
195197
for (int iz = 0; iz < nz; ++iz)
196198
{
197-
tmp[ix * ny * nz + iy * nz + iz] = 0.0;
199+
tmp[offset+ iz] = 0.0;
198200
double vx = ix - int(nx / 2);
199201
double vy = iy - int(ny / 2);
200202
double vz = iz - int(nz / 2);
201203
ModuleBase::Vector3<double> v(vx, vy, vz);
202204
float modulusgk = float((v + kk) * (GGT * (v + kk)));
203205
if (modulusgk <= ggecut)
204206
{
205-
tmp[ix * ny * nz + iy * nz + iz] = float(1.0 / (modulusgk + 1));
207+
tmp[offset+ iz] = float(1.0 / (modulusgk + 1));
206208
if (vy > 0)
207-
tmp[ix * ny * nz + iy * nz + iz] += std::complex<float>(0,1.0) / (std::abs(float(v.x) + 1) + 1);
209+
tmp[offset+ iz] += std::complex<float>(0,1.0) / (std::abs(float(v.x) + 1) + 1);
208210
else if (vy < 0)
209-
tmp[ix * ny * nz + iy * nz + iz] -= std::complex<float>(0,1.0) / (std::abs(float(-v.x) + 1) + 1);
211+
tmp[offset+ iz] -= std::complex<float>(0,1.0) / (std::abs(float(-v.x) + 1) + 1);
210212
}
211213
}
212214
}

0 commit comments

Comments
 (0)