Open mohammadidinani opened 5 years ago
I would need to see the output file and/or the make.inc file to understand what is happening.
I could fix the issue by setting -assume byterecl
compiler option and run the Silicon example. However, if I try to use different pseudopotentials as below I get segmentation fault error:
FCFLAGS: -O3 -xAVX -fno-alias -ansi-alias -g -mkl
PW_SCF input
&CONTROL
calculation = 'scf'
title = ''
verbosity = 'low'
restart_mode = 'from_scratch'
wf_collect = .true.
tstress = .true.
tprnfor = .true.
outdir = 'tmp'
wfcdir = 'tmp'
prefix = '__prefix__'
pseudo_dir = 'pseudo'
/
&SYSTEM
ibrav = 0
nat = 2
ntyp = 1
ecutwfc = 40
ecutrho = 200
occupations = 'smearing'
degauss = 0.005
/
&ELECTRONS
diagonalization = 'david'
diago_david_ndim = 4
diago_full_acc = .true.
mixing_beta = 0.3
startingwfc = 'atomic+random'
/
&IONS
/
&CELL
/
ATOMIC_SPECIES
Si 28.0855 si_pbe_gbrv_1.0.upf
ATOMIC_POSITIONS crystal
Si 0.000000000 0.000000000 0.000000000
Si 0.250000000 0.250000000 0.250000000
CELL_PARAMETERS angstrom
3.348920000 0.000000000 1.933500000
1.116307000 3.157392000 1.933500000
0.000000000 0.000000000 3.867000000
K_POINTS automatic
8 8 8 0 0 0
GW input:
&gw_input
! config of the scf run
prefix = '__prefix__'
outdir = 'tmp'
! the grid used for the linear response
kpt_grid = 4, 4, 4
qpt_grid = 4, 4, 4
! number of bands for which the GW correction is calculated
num_band = 8
! configuration of W in the convolution
max_freq_coul = 200
num_freq_coul = 51
! configuration for the correlation self energy
ecut_corr = 6.0
! configuration for the exchange self energy
ecut_exch = 15.0
/
&gw_output
/
FREQUENCIES
35
0.0 0.0
0.0 0.3
0.0 0.9
0.0 1.8
0.0 3.0
0.0 4.5
0.0 6.3
0.0 8.4
0.0 10.8
0.0 13.5
0.0 16.5
0.0 19.8
0.0 23.4
0.0 27.3
0.0 31.5
0.0 36.0
0.0 40.8
0.0 45.9
0.0 51.3
0.0 57.0
0.0 63.0
0.0 69.3
0.0 75.9
0.0 82.8
0.0 90.0
0.0 97.5
0.0 105.3
0.0 113.4
0.0 121.8
0.0 130.5
0.0 139.5
0.0 148.8
0.0 158.4
0.0 168.3
0.0 178.5
/
K_points
11
0.000000000 0.000000000 0.000000000
0.000000000 0.000000000 0.074999996
0.000000000 0.000000000 0.149999992
0.000000000 0.000000000 0.224999988
0.000000000 0.000000000 0.299999984
0.000000000 0.000000000 0.374999980
0.000000000 0.000000000 0.449999976
0.000000000 0.000000000 0.524999972
0.000000000 0.000000000 0.599999968
0.000000000 0.000000000 0.674999964
0.000000000 0.000000000 0.749999960
/
Error:
-1.7720 -1.7720 3.1804 3.1804 6.7332 6.7332 15.9054 15.9054
the Fermi energy is 6.4091 ev
Writing output data file __prefix__.save/
WARNING: You have given a kpoint not in original BZ.This could mean full symmetry is not exploited.
evaluate self energy for k = ( 0.0000 0.0000 0.0000 )
k + q = ( 0.0000 0.0000 0.0000 ) G: 15.14s G*W: 8.19s
k + q = ( 0.1443 0.1021 -0.2500 ) G: 18.98s G*W: 7.73s
k + q = ( 0.1443 0.1021 0.2500 ) G: 18.46s G*W: 7.44s
k + q = ( -0.1443 -0.1021 0.2500 ) G: 18.59s G*W: 7.61s
k + q = ( -0.1443 -0.1021 -0.2500 ) G: 19.72s G*W: 7.96s
k + q = ( -0.2887 -0.2041 0.5000 ) G: 17.95s G*W: 7.43s
k + q = ( -0.2887 -0.2041 -0.5000 ) G: 16.84s G*W: 7.69s
k + q = ( 0.0000 -0.3062 0.0000 ) G: 17.70s G*W: 7.85s
k0( 1 ) = ( 0.000 0.000 0.000 )
k0( 1 ) = ( 0.000 0.000 0.000 )
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
Stack trace terminated abnormally.
I tried to use heap instead of stack (--heap-arrays) but gw does not start:
FCFLAGS: -O3 -heap-arrays -xAVX -fno-alias -ansi-alias -g -mkl
End of band structure calculation
Number of k-points >= 100: set verbosity='high' to print the bands.
the Fermi energy is 6.4091 ev
Writing output data file __prefix__.save/
*** Error in `gw.x': free(): invalid pointer: 0x00007ffe1b70bd30 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x81499)[0x2b8cff2fc499]
gw.x[0xe44cdc]
gw.x[0x468109]
gw.x[0x45c169]
gw.x[0x43fd07]
gw.x[0x43612e]
gw.x[0x41bc8e]
gw.x[0x406a34]
gw.x[0x4068d6]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x2b8cff29d445]
gw.x[0x4067c9]
======= Memory map: ========
00400000-0122e000 r-xp 00000000 00:2a 2159856474 gw.x
0142e000-01432000 r--p 00e2e000 00:2a 2159856474 gw.x
01432000-01494000 rw-p 00e32000 00:2a 2159856474 gw.x
01494000-027f0000 rw-p 00000000 00:00 0
03041000-04529000 rw-p 00000000 00:00 0 [heap]
2b8cfa0a3000-2b8cfa0c5000 r-xp 00000000 08:01 100749243 /usr/lib64/ld-2.17.so
2b8cfa0c5000-2b8cfa0c9000 rw-p 00000000 00:00 0
2b8cfa0d8000-2b8cfa0ff000 rw-p 00000000 00:00 0
2b8cfa0ff000-2b8cfa140000 rw-s 00000000 00:13 34030 /dev/shm/Intel_MPI_TD9mrX (deleted)
2b8cfa140000-2b8cfa181000 rw-s 00000000 00:13 31169 /dev/shm/Intel_MPI_TcdzsX (deleted)
2b8cfa181000-2b8cfa27f000 rw-p 00000000 00:00 0
2b8cfa2c4000-2b8cfa2c5000 r--p 00021000 08:01 100749243 /usr/lib64/ld-2.17.so
2b8cfa2c5000-2b8cfa2c6000 rw-p 00022000 08:01 100749243 /usr/lib64/ld-2.17.so
A few questions
Thanks for the points, Martin.
We try to use a general workflow for different materials that is why the smearing is set.
It would be great to show a warning/error message when non-supported pseudopotentials are used.
Memory Usage:
G(G, G'; w): 0.7 MB
G(r, r'; w): 2.5 MB
W(G, G'; w): 0.5 MB
W(r, r'): 0.0 MB
Sigma(G, G'; w): 0.1 MB
Sigma(r, r'; w): 0.3 MB
V(G, G'): 0.1 MB
V(r, r'): 0.9 MB
I am getting the following error when running GW compiled with Intel compiler. However, the same setup works fine with GCC!
This is the input file.