Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in routine davcio (28) #3

Open
mohammadidinani opened this issue Apr 22, 2019 · 4 comments
Open

Error in routine davcio (28) #3

mohammadidinani opened this issue Apr 22, 2019 · 4 comments

Comments

@mohammadidinani
Copy link

I am getting the following error when running GW compiled with Intel compiler. However, the same setup works fine with GCC!

     Error in routine davcio (28):
     error while reading from file "tmp/_gw0/__prefix__.coul1"

This is the input file.


! config of the scf run
  prefix         = '__prefix__'
  outdir         = 'tmp'

 ! the grid used for the linear response
  kpt_grid       = 2, 2, 2
  qpt_grid       = 2, 2, 2

  ! 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
2
  0.0    0.0
  0.0    10.0
/

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

/
@martin-schlipf
Copy link
Collaborator

I would need to see the output file and/or the make.inc file to understand what is happening.

@mohammadidinani
Copy link
Author

mohammadidinani commented Apr 23, 2019

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

@martin-schlipf
Copy link
Collaborator

A few questions

  • Why do you use smearing for silicon? Due to the relatively large gap (compared to the smearing you use) you shouldn't see an impact, but make everything more complicated by treating it as a metal.
  • What pseudos do you use? The fact that you specify ecutrho suggests that you use US or PAW, neither of which are implemented for SternheimerGW.
  • The code should print how much memory it thinks will be required. Compare these to the amount of memory available. You ought to have a significantly larger RAM per CPU then the numbers shown there.

@mohammadidinani
Copy link
Author

mohammadidinani commented Apr 24, 2019

Thanks for the points, Martin.

  1. We try to use a general workflow for different materials that is why the smearing is set.

  2. It would be great to show a warning/error message when non-supported pseudopotentials are used.

  3. The calculation does not seem to need large memory


     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
 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants