Segfault when computing screening matrix

Hi all,

I am trying to run a GW calculation but having problem with the screening part: I am getting a segfault and not sure why. Attached is my input file, pseudo, log and stderr outputs. I tried compressing everything in a minimal working example and decreasing parameters so that it can run on laptops. I tried using different versions of abinit and different computers but everytime I stumble on the segfault which seems to occur in the FFT module 52_fft_mpi_noabirule.

If anyone could reproduce this and have any idea how to solve this I’d be glad :slight_smile: I (re)looked at the GW tutorials to make sure I didn’t miss anything but apart from the fact I was using kptrlatt instead of ngkpt, I don’t know what is wrong. I posted earlier about that and Fabien assured me it should be fine.

Thanks for the help!
log.txt (212.9 KB)
mwe.abi (1.3 KB)
mwe.abo (36.3 KB)
stderr.txt (7.0 KB)
P_SR_PBE.psp8.txt (273.5 KB)

Hi Felix,

@maryam.azizi and myself ran your input file and we reproduced your crash.
It’s a genuine problem however you can easily work around it.

It looks like your convergence parameter ecuteps is so low that the corresponding FFT grid selected by ABINIT is not correct for some reason.

You can avoid the problem either by setting ecuteps to a more realistic value (ecuteps 8.0 works fine for instance) or by setting fftgw 31 which increases the FFT grid size.

Both options are working for me. But I advise you to use the first one, since ecuteps 3.0 is never in my experience the final converged parameter.

Tell us if it works.

Hi Fabien!

Thanks for the help! Indeed increasing ecuteps worked but only locally (maybe parallelism on more cores has to do something). I was originally using ecuteps=6 and increasing to 8 still crash on my HPC. However using fftgw=31 does the trick.


Hi Felix,
Your remark about the parallelism is unexpected. The MPI parallelization only distributes the empty states in the screening part of the code. It should not interfere with the FFT grid sizes…

Be careful withfftgw=31 that may increase quite much the memory requirements.
In case of memory problems, you may consider gwmem=00 to save some memory.


Hi Fabien,

yes my remark was merely a statement of one difference between the local and HPC runs. There were indeed more differences and maybe one of those would explain the crash.

Indeed the memory increases by a lot. Thanks for the advice!