Menu

Complex Hermitian eigensolver

2024-06-19
2024-08-16
  • Ali Kefayati

    Ali Kefayati - 2024-06-19

    Dear ELK developers,

    Apparently, whenever a systam lacks inversion symmetry the code chooses Complex Hermitian eigensolver.
    Attached I have an example with this situation.
    It's a bilayer system and lacks inversion symmetry.
    The code hardly converges after almost 3000 scf loop (Nonetheless, the monolayer and bulk structures converge superfast and the code chooses Real symmetric eigensolver).
    I want to run the code with Hubbard U and in this case it look it is not going to converge at all even with small mixing parameters.
    Could it be related to the LAPACK routine that the code calls for solving the Complex Hermitian Hamiltonian?
    Is there anyway that I could get (fast) convergence for this system?

    Thanks,
    AK

     

    Last edit: Ali Kefayati 2024-06-19
  • J. K. Dewhurst

    J. K. Dewhurst - 2024-08-16

    Hi Ali,

    Large vacuum layers can cause instability. Using LAPW instead of APW (by setting nxoapwlo=1) I was able to converge the system in 36 iterations.

    Here is my input file:

    tasks
      0       ! ground-state run
      10      ! DOS
      20      ! Band Structure
    
    nxoapwlo
      1
    
    spinpol
     .true.
    
    spinorb
     .true.
    
    ! number of empty states
    nempty
      10
    
    ! DFT+U block
    ! here AMF double counting is used (dftu=2)
    ! inpdftu=1 corresponds to provide U and J as input
    !dft+u
    !  1  1             : dftu, inpdftu
    !  1  2  0.14699717  0.05879887  : is , l, U=4.00, J=1.60
    
    scale
      1.88972612462
    
    avec
        3.511891710000   0.000000000000   0.000000000000
        0.000000000000   0.000000000000   4.713280455000
        0.000000000000   28.00000000000   0.000000000000
    
    atoms
       3                                    : nspecies
    'Cr.in'                                 : spfname
       4                                    : natoms; atpos, bfcmt below
        0.750000000000  0.249999949000  0.391594644000           0.000   0.000   0.001
        0.750000000000  0.249999949000  0.680509803000           0.000   0.000  -0.001
        0.250000000000  0.750000051000  0.608404290000           0.000   0.000  -0.001
        0.250000000000  0.750000051000  0.319493408000           0.000   0.000   0.001
    'S.in'                                  : spfname
       4                                    : natoms; atpos, bfcmt below
        0.750000000000  0.750000051000  0.376908109000           0.000   0.000   0.000
        0.750000000000  0.750000051000  0.665774221000           0.000   0.000   0.000
        0.250000000000  0.249999949000  0.623094806000           0.000   0.000   0.000
        0.250000000000  0.249999949000  0.334226031000           0.000   0.000   0.000
    'Br.in'                                 : spfname
       4                                    : natoms; atpos, bfcmt below
        0.250000000000  0.249999949000  0.455854934000           0.000   0.000   0.000
        0.250000000000  0.249999949000  0.744963488000           0.000   0.000   0.000
        0.750000000000  0.750000051000  0.544144549000           0.000   0.000   0.000
        0.750000000000  0.750000051000  0.255040383000           0.000   0.000   0.000
    
    
    ngridk
      8  6  1
    
    ! These are the vertices to be joined for the band structure plot
    plot1d
      5 600                      : nvp1d, npp1d, vlvp1d
      0.0000   0.0000   0.0000   : G
      0.5000   0.0000   0.0000   : X
      0.5000   0.5000   0.0000   : S
      0.0000   0.5000   0.0000   : Y
      0.0000   0.0000   0.0000   : G
    

    Regards,
    Kay.

     

Log in to post a comment.