Page 1 of 1

Problem with parallel_q=.true.

Posted: Mon Mar 20, 2017 4:02 am
by AgentZero
Dear all,

Recently, I test the parallel_q parameter using MgB2 with double-delta approximation.
I find that the results are somehow different with that obtained with parallel_k.
Basically, there are five problems. Could you please tell me how to fix these problems? Thanks in advance!

(1) the coordinates of q-points are not correct (please see below).
(2) the weights of q-points are not correct (please see below).

In my tested calculation, the fine k- and q-meshes are 6x6x6. Thus the weight for each q-point should be 0.00463 (1/216).
The coordinates and wights of q-points obtained by parallel_q=true are

ismear = 1 iq = 1 coord.: 0.00000 0.00000 0.00000 wt: 0.00463
ismear = 1 iq = 2 coord.: 0.00000 0.00000 0.16667 wt: 0.00463
ismear = 1 iq = 3 coord.: 0.00000 0.00000 0.33333 wt: 0.00463
ismear = 1 iq = 4 coord.: 0.00000 0.00000 0.00000 wt: 0.00000
ismear = 1 iq = 5 coord.: 0.00000 0.00000 0.00000 wt: 0.00000
ismear = 1 iq = 6 coord.: 0.00000 0.00000 0.00000 wt: 0.00000
ismear = 1 iq = 7 coord.: 0.00000 0.00000 0.00000 wt: 0.01000
ismear = 1 iq = 8 coord.: 0.00000 0.00000 0.00000 wt: 0.00000
ismear = 1 iq = 9 coord.: 0.00000 0.00000 0.00000 wt: 0.01999
ismear = 1 iq = 10 coord.: 0.00000********* 0.00000 wt: 0.00000.

These two problem should be related to the parallel communication, because of the correctness of these quantities in the first pool, i.e. the first three q-points.

(3) the lambda_tr(tot) is not correct.
For example, for ismear=1 and iq=7, the lambda_tr(tot)s are 32.421636 and 44.037788 for parallel_q and parallel_k cases, respectively.

(4) the phonon frquency of the lowest branch at Gamma point is not correct.

***** parallel_k case *****
ismear = 1 iq = 1 coord.: 0.00000 0.00000 0.00000 wt: 0.00463
-------------------------------------------------------------------
lambda( 1 )= 0.000000 gamma= 0.000000 meV omega= 0.0220 meV
lambda_tr( 1 )= 0.000000 gamma_tr= 0.000000 meV omega= 0.0220 meV
lambda( 2 )= 0.000000 gamma= 0.000000 meV omega= 0.0300 meV
lambda_tr( 2 )= 0.000000 gamma_tr= 0.000000 meV omega= 0.0300 meV

***** parallel_q case *****

ismear = 1 iq = 1 coord.: 0.00000 0.00000 0.00000 wt: 0.00463
-------------------------------------------------------------------
lambda( 1 )= 0.000000 gamma= 0.000000 meV omega= 11338.1038 meV
lambda_tr( 1 )= 0.000000 gamma_tr= 0.000000 meV omega= 11338.1038 meV
lambda( 2 )= 0.000000 gamma= 0.000000 meV omega= 0.0300 meV
lambda_tr( 2 )= 0.000000 gamma_tr= 0.000000 meV omega= 0.0300 meV

(5) After the calculation of lambda at all q-points, the program is stuck. Adding "RETURN" in the subroutine selfen_phon_k(ik) does not solve this problem.

Thanks for your kind help!

Best wishes,
Miao Gao

Re: Problem with parallel_q=.true.

Posted: Tue Mar 21, 2017 1:57 am
by sponce
Dear Miao Gao,

Thank you for reporting this. I must admit, I did not spend a lot of time on the q-parallelization and for sure the k-point parallelization is much more tested
and also much more efficient. It was working for what I tested though. So I definitely recommend to use k-point parallelization and not q-point parallelization at this points.

I intend to improve this in the future and to make it possible to do both k AND q parallelization at the same time.

Best

Samuel

Re: Problem with parallel_q=.true.

Posted: Tue Mar 21, 2017 2:44 am
by AgentZero
Dear Dr. Samuel Ponc,

Thanks for your quick response! I have another newly posted question about how to gather datum among pools when k parallelization. Look forward to your reply! Thanks again!

Best wishes,
Miao Gao