after running nscf calculations I faced this problem and I don't know what could be the cause of it.

    Computing kpt #:    25  of    82

     Error in routine  cdiaghg (659):
     problems computing cholesky

     stopping ...

I run the code in parallel using: mpirun -np 30 pw.x < s.in > s.out

input script :

    calculation   = "nscf"
    outdir        = "./temp"
    prefix        = "tc" 
    pseudo_dir    = "./pseudopot"
    verbosity     = 'high'

    a           =  12.144
    c           =  17
    !degauss     =  0.02
    ecutrho     =  5.50000e+02
    ecutwfc     =  6.50000e+01
    ibrav       = 4
    nat         = 81
    nbnd        = 658
    nspin       = 2
    ntyp        = 4
    occupations = 'tetrahedra'
    !smearing    = "gaussian"
    tot_magnetization =  1
    vdw_corr    = 'dft-d3'

    conv_thr         =  1.00000e-10

    K_POINTS {automatic}
    9  9  1  0 0 0

    C      12.01070  C.pbe-n-kjpaw_psl.1.0.0.UPF
    O      15.99940  O.pbe-nl-kjpaw_psl.1.0.0.UPF
    Ti     47.86700  Ti.pbe-spn-kjpaw_psl.1.0.0.UPF
    Co     58.93319  Co.pbe-n-kjpaw_psl.1.0.0.UPF

    ATOMIC_POSITIONS {angstrom}
  • 3
    $\begingroup$ Please provide the input file and also how are you running the program (mpirun or serial etc.). Note that this is a widely discussed error in QE users forum. But without seeing your input file, the exact reason cannot be addressed. $\endgroup$ Commented Oct 18, 2023 at 12:28
  • $\begingroup$ Thanks for your reply, I provided the input script as you asked. $\endgroup$ Commented Oct 18, 2023 at 17:25

1 Answer 1


Errors during cdiagh occur often enough to merit section 5.7 of the Quantum ESPRESSO FAQ. Basically, at some k-point, your Hamilonian has become singular, obviously a problem. Three possible fixes

  1. Double-check your atomic positions; you've a lot of atoms in the unit cell, were two of them inadvertently placed too close together?
  2. I see you're using projector-augmented waves as pseudopotentials; is that necessary? This error occurs less often with norm-conserving pseudopotentials such as the optimized norm-conserving Vanderbilt pseudopotentials (ONCVPSP), which you can download from GitHub.
  3. You can also specify a conjugate gradient update method via diagonalization = 'cg' in the &ELECTRONS section of your input file. It's a bit slower, but tends to be more reliable.
  • 2
    $\begingroup$ I just want to add another observations. When I search this error in QE users forum, some of the suggestions are saying to reduce the number of bands nbnd. I don't have any clue why this might happen, this is just an observation from browsing QE users forum archive. $\endgroup$ Commented Oct 19, 2023 at 14:14
  • 1
    $\begingroup$ Just guessing: In systems with at least one large empty dimension (your c), you may have something like a real vacuum energy, in which high-lying conduction states approach scattering (unbound) states with zero energy. These are at least nearly degenerate and likely make diagonalizing the Hamiltonian harder. I'm not sure how many occupied states you have, but it seems like you might have a large number of unoccupied ones. $\endgroup$
    – elutionary
    Commented Oct 19, 2023 at 16:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .