[QE-developers] questions and possible bug on exx calculations

Paolo Giannozzi p.giannozzi at gmail.com
Sat Mar 28 17:17:38 CET 2020


On Thu, Mar 26, 2020 at 7:39 AM Morales-Silva, Miguel A. <
moralessilva2 at llnl.gov> wrote:

I apologize if this is incorrect or discussed somewhere else
>

it is neither incorrect nor discussed somewhere else (well, partially, see
below). Apologies for the late reply: your message had ended up in the spam
folder, at least for me.

>
>
>  On routines PAW_newdxx and PAW_xx_energy, the code is only executed on
> ionode which I believe is a bug when k-point and/or band parallelization is
> used
>

not necessarily so, as long as the results are properly broadcast

>From what I see, tqr=.true. is not implemented for exx routines when
> k-points are used.
>

quite possible. Some time ago I made a few tests on the US/PAW
hybrid-functional code, and this was the situation:
https://gitlab.com/QEF/q-e/-/issues/9 . I never found the time and
motivation to investigate (motivation more than time: I wonder whether
hybrid functionals for US/PAW will ever be competitive with respect to
plain NC-PP)

Many of the executables in the PP/src folder rely on read_file to
> initialize/setup the calculation. The routine init_us_1() is called inside.
> When uspp/paw are used in combination with finite kpoints in qvan_init(...)
> (e.g. as in exx routines), qnorm needs to be set correctly to get the
> interpolation grid of qrad set properly. Unfortunately, I can't calculate
> the necessary value of qnorm without knowing the kpoints, which are also
> read in read_file.
>

This is an old and known (at least to me) problem. The proper solution is
in my opinion the following:
- the allocation and calculation of the interpolation table must be moved
to a separate routine, to be called later
- the interpolation table is allocated for and computed up to some qmax,
that must be already known when the routine is called
- if for some reason qmax is found to be not sufficient during the
calculation (may happen in variable-cell relaxation) we re-inizialize the
interpolation table. Alternatively, we define a larger qmax than needed at
the startup (for instance, twice as much): this is what the "cell_factor"
variable does. Alternatively: we use extrapolation for q > qmax.

Paolo
-- 
Paolo Giannozzi, Dip. Scienze Matematiche Informatiche e Fisiche,
Univ. Udine, via delle Scienze 208, 33100 Udine, Italy
Phone +39-0432-558216, fax +39-0432-558222
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20200328/ed718356/attachment.html>


More information about the developers mailing list