Skip to content

Commit 2758160

Browse files
For non mp sampling, disable extrapolation
1 parent 7a68932 commit 2758160

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

source/module_hamilt_pw/hamilt_pwdft/operator_pw/op_exx_pw.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ OperatorEXXPW<T, Device>::OperatorEXXPW(const int* isk_in,
5454
: isk(isk_in), wfcpw(wfcpw_in), rhopw(rhopw_in), kv(kv_in), ucell(ucell)
5555
{
5656
gamma_extrapolation = PARAM.inp.exx_gamma_extrapolation;
57+
if (kv_in->nmp[0] == 0 || kv_in->nmp[1] == 0 || kv_in->nmp[2] == 0)
58+
{
59+
gamma_extrapolation = false;
60+
}
5761
if (GlobalV::KPAR != 1)
5862
{
5963
// GlobalV::ofs_running << "EXX Calculation does not support k-point parallelism" << std::endl;

source/module_hamilt_pw/hamilt_pwdft/stress_func_exx.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ void Stress_PW<FPTYPE, Device>::stress_exx(ModuleBase::matrix& sigma,
1111
{
1212
double nqs_half1 = 0.5 * p_kv->nmp[0], nqs_half2 = 0.5 * p_kv->nmp[1], nqs_half3 = 0.5 * p_kv->nmp[2];
1313
bool gamma_extrapolation = PARAM.inp.exx_gamma_extrapolation;
14+
if (p_kv->nmp[0] == 0 || p_kv->nmp[1] == 0 || p_kv->nmp[2] == 0)
15+
{
16+
gamma_extrapolation = false;
17+
}
1418
auto isint = [](double x) { return std::abs(x - std::round(x)) < 1e-6; };
1519

1620
// T is complex of FPTYPE, if FPTYPE is double, T is std::complex<double>

0 commit comments

Comments
 (0)