Negative PDOS from Green function

Asked by JunweiTong on 2019-09-12

Dear Siesta Users

      I used the script sdata to process the PDOS calculation by tbtrans (the bias voltage was zero). However, the PDOS calculated from the Green function is negative and the same PDOS(sum of PDOS projected on left and right electrodes) obtained from spectral function was positive. The only difference of PDOS from Green function and spectral function was translation in the y axis. The data obtained from siesta was positive and similar to the PDOS from spectral function.
     I want to know why the PDOS from Green function was negative and how to solve the problem. And what is meaning of the DOS from spectral function.

    Best regards

    Junwei Tong

Question information

Language:
English Edit question
Status:
Solved
For:
Siesta Edit question
Assignee:
No assignee Edit question
Solved by:
Nick Papior
Solved:
2019-09-12
Last query:
2019-09-12
Last reply:
2019-09-12
Nick Papior (nickpapior) said : #1

Could you please provide more details, or perhaps also the files so I can check.

And which version of tbtrans where you using?

Nick Papior (nickpapior) said : #2

*status change*

JunweiTong (junweitong) said : #3

Dear Nick,

     Thank you very much for the reply. The version of tbtrans was 4.1-b3 (TBtrans Version: siesta-4.1--736). The output of tbtrans was shown in the following.

TBtrans Version: siesta-4.1--736.
Architecture : unknown
Compiler flags: /opt/INTEL/impi/2018.0.128/intel64/bin/mpiifort -O3 -fPIC -I/opt/INTEL/mkl/innclude -I/opt/INTEL/mkl/include/lp64 -mp1 -ip -pad -heap-arrays 64 -g -xCORE-AVX2
PP flags : -DFC_HAVE_ABORT -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DMPI -DGRID_DP -DPHI_GRID_SPP -DMPI_TIMING -DCDF -DNCDF -DNCDF_4 -DMPI -DTBTRANS
Libraries : -L/opt/INTEL/mkl/lib/intel64 -lmkl_scalapack_lp64 -L/opt/INTEL/mkl/lib/intel664 -lmkl_blacs_intelmpi_lp64 -L/opt/INTEL/mkl/lib/intel64 -lmkl_sequential -lmkl_core -L/opt/INTEL/mkl/lib/intel64 -lmkl_intel_lp64 -lpthread -limf -lm -lnetcdff -lnetcdf -lhdf5_fortran -lhdf5 -lz
PARALLEL version
NetCDF support
NetCDF-4 support

* Running on 36 nodes in parallel
>> Start of run: 11-SEP-2019 22:31:55

                           ************************
                           * WELCOME TO TBtrans *
                           ************************

reinit: Reading from SCR.fdf

reinit: -----------------------------------------------------------------------
reinit: System Name:
reinit: -----------------------------------------------------------------------
reinit: System Label: SCR
reinit: -----------------------------------------------------------------------
*** Trying to create non-existing directory: UP_101/

 Kpoints in: 5151 . Kpoints trimmed: 5101
tbt: Number of transport k-points = 5101
tbt: Method = Monkhorst-Pack grid.
tbt: k-grid: Supercell and displacements
tbt: 101 0 0 0.000
tbt: 0 101 0 0.000
tbt: 0 0 1 0.000

tbt: **************************************************************
tbt: Electronic temperature (reference) = 290.1109 K
tbt: No applied bias
tbt: Calculate transmission only using diag(Gf) = F
tbt: Saving bulk transmission for electrodes = T
tbt: Saving DOS from bulk electrodes = T
tbt: Saving DOS from Green function = T
tbt: Saving DOS from all spectral functions = T
tbt: Saving bond currents (orb-orb) = F
tbt: Calc. # transmission eigenvalues = 0
tbt: Calc. T between all electrodes = F
tbt: Calc. total T out of electrodes = F
tbt: Calculate spin-channel = 1
tbt: BTD creation algorithm = speed
tbt: BTD spectral function algorithm = propagation
tbt: Divide and conquer diagonalization = F
tbt: Assume LAPACK <i|S|j> = delta_ij = F
tbt: Saving down-folded self-energies = F
tbt: No delta-Hamiltonian
tbt: Data files stored in folder = UP_101/
tbt: No compression of TBT.nc files
tbt: Default NetCDF precision = double
tbt: Parallel MPI-IO not possible
tbt: >> Electrodes <<
tbt: >> Left
tbt: Electrode cell pivoting: E1, E2, E3 = A1, A2, A3
tbt: In-core GF
tbt: Electrode TSHS file = ../left/LF.TSHS
tbt: # atoms used in electrode = 6
tbt: Electrode Bloch expansion [E1 x E2 x E3] = 1 x 1 x 1
tbt: Position in geometry = 1 -- 6
tbt: Semi-infinite direction for electrode = negative wrt. E3
tbt: Chemical shift = 0.000000 eV
tbt: Electronic temperature = 290.110940 K
tbt: Bulk values in electrode = T
tbt: Electrode self-energy imaginary Eta = 0.1000E-03 eV
tbt: Electrode self-energy accuracy = 0.1000E-13 eV
tbt: Electrode inter-layer distance (semi-inf) = 2.3991 Ang
tbt: >> Right
tbt: Electrode cell pivoting: E1, E2, E3 = A1, A2, A3
tbt: In-core GF
tbt: Electrode TSHS file = ../right/RH.TSHS
tbt: # atoms used in electrode = 6
tbt: Electrode Bloch expansion [E1 x E2 x E3] = 1 x 1 x 1
tbt: Position in geometry = 30 -- 35
tbt: Semi-infinite direction for electrode = positive wrt. E3
tbt: Chemical shift = 0.000000 eV
tbt: Electronic temperature = 290.110940 K
tbt: Bulk values in electrode = T
tbt: Electrode self-energy imaginary Eta = 0.1000E-03 eV
tbt: Electrode self-energy accuracy = 0.1000E-13 eV
tbt: Electrode inter-layer distance (semi-inf) = 2.3991 Ang
ts: >> TBtrans contour <<
ts: Device Green function imaginary Eta = 0.000 eV
ts: Contour name = TBT.Contour.neq
ts: line contour E_min = -3.0000 eV
ts: line contour E_max = 3.0000 eV
ts: line contour points = 600
ts: line contour method = Mid-rule
tbt: **************************************************************

tbt: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
%block TBT.Contours
    neq
%endblock TBT.Contours

%block TBT.Contour.neq
     from -3.00000 eV to 3.00000 eV
      delta 0.01000 eV
        method mid-rule
%endblock TBT.Contour.neq
tbt: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

************************ Begin: TBT CHECKS AND WARNINGS ************************
 ** Use TBT.Atoms.Device for faster execution
************************ End: TBT CHECKS AND WARNINGS **************************

Device information (full):
  <sparsity:SCR.TSHS
    nrows_g=371 nrows=371 sparsity=4.7329 nnzs=651447, refcount: 3>

Electrode information:

  <sparsity:../left/LF.TSHS
    nrows_g=54 nrows=54 sparsity=31.0885 nnzs=90654, refcount: 3>
  <sparsity:(TM [--,--, 0] of: ../left/LF.TSHS)
    nrows_g=54 nrows=54 sparsity=23.4342 nnzs=68334, refcount: 3>
  <sparsity:(TM [--,--,-1] of: ../left/LF.TSHS)
    nrows_g=54 nrows=54 sparsity=3.8272 nnzs=11160, refcount: 3>
 Left principal cell is perfect!

  <sparsity:../right/RH.TSHS
    nrows_g=54 nrows=54 sparsity=31.0885 nnzs=90654, refcount: 3>
  <sparsity:(TM [--,--, 0] of: ../right/RH.TSHS)
    nrows_g=54 nrows=54 sparsity=23.4342 nnzs=68334, refcount: 3>
  <sparsity:(TM [--,--, 1] of: ../right/RH.TSHS)
    nrows_g=54 nrows=54 sparsity=3.8272 nnzs=11160, refcount: 3>
 Right principal cell is perfect!

tbtrans: Analyzing electrode sparsity pattern to create optimal tri-diagonal blocks
tbtrans: BTD pivoting scheme for electrode (Left): atom+Left

tbtrans: Analyzing device sparsity pattern to create optimal tri-diagonal blocks
tbtrans: BTD pivoting scheme in device: atom+Left
tbtrans: Done analyzing sparsity pattern

tbtrans: Reducing matrix (H, S) sparsity patterns by: 21854

tbtrans: # of device region orbitals: 263
Region (23): [A]-device
  [ 7 -- 29 ]

tbtrans: # of Left scattering orbitals: 31
tbtrans: # of Left down-folding orbitals: 85
Region (6): [A]-Left folding region
  [ 1 -- 6 ]
Region (4): [A]-Left folding in D
  [ 7 -- 10 ]

tbtrans: # of Right scattering orbitals: 31
tbtrans: # of Right down-folding orbitals: 85
Region (6): [A]-Right folding region
  [ 30 -- 35 ]
Region (4): [A]-Right folding in D
  [ 26 -- 29 ]

tbtrans: Creating electrode tri-diagonal matrix blocks
tbtrans: Creating device tri-diagonal matrix blocks
Region (5): [TRI] device region
  [ 27, 55, 99, 55, 27 ]
tbtrans: Matrix elements in BTD: 45029

tbtrans: Electrodes tri-diagonal matrices
Region (2): [TRI] Left
  [ 54, 31 ]
Region (2): [TRI] Right
  [ 54, 31 ]

tbtrans: Suggested atoms for fastest transmission calculation:
Region (5): [A]-Fast transmission
  [ 10 -- 14 ]

tbtrans: Electrode memory: 2.515 MB
tbtrans: Sparse Hamiltonian and overlap memory: 5.657 MB
tbtrans: Sum of electrode and sparse memory: 8.172 MB

tbtrans: Initializing data file: UP_101/SCR.TBT_UP.nc
tbtrans: LHS Green function size / memory: 45029 / 0.69 MB
tbtrans: RHS Green function size / memory: 45029 / 0.69 MB
tbt: Initial ETA in 11040.290 s
tbt: Calculated 5.000 %, ETA in 4374.115 s
tbt: Calculated 10.000 %, ETA in 4141.795 s
tbt: Calculated 15.001 %, ETA in 3887.214 s
tbt: Calculated 20.001 %, ETA in 3644.441 s
tbt: Calculated 25.001 %, ETA in 3412.905 s
tbt: Calculated 30.001 %, ETA in 3184.357 s
tbt: Calculated 35.001 %, ETA in 2955.717 s
tbt: Calculated 40.002 %, ETA in 2730.026 s
tbt: Calculated 45.002 %, ETA in 2501.074 s
tbt: Calculated 50.002 %, ETA in 2275.362 s
tbt: Calculated 55.002 %, ETA in 2045.915 s
tbt: Calculated 60.002 %, ETA in 1818.143 s
tbt: Calculated 65.003 %, ETA in 1594.635 s
tbt: Calculated 70.003 %, ETA in 1364.316 s
tbt: Calculated 75.003 %, ETA in 1134.887 s
tbt: Calculated 80.003 %, ETA in 905.773 s
tbt: Calculated 85.004 %, ETA in 678.344 s
tbt: Calculated 90.004 %, ETA in 451.205 s
tbt: Calculated 95.005 %, ETA in 225.219 s
tbt: Completed in 4500.135 s

Currents (ensure entire Fermi function window):
Left -> Right, V [V] / I [A]: 0.00000 V / 0.00000 A
Left -> Right, V [V] / P [W]: 0.00000 V / 0.00000 W

             Section Calls Walltime %
 global_section 1 4760.607 100.00
  tbtrans 1 4760.607 100.00
   MPI_COMM_RANK 1 0.000 0.00
   MPI_COMM_SIZE 1 0.000 0.00
   MPI_BCAST 112 0.024 0.00
   MPI_BARRIER 3 0.002 0.00
   tri-init 1 0.057 0.00
    tri-init-elec 1 0.006 0.00
     TS-rgn2tri 1 0.001 0.00
     MPI_BCAST 6 0.000 0.00
    TS-rgn2tri 1 0.014 0.00
     MPI_BCAST 72 0.011 0.00
   TBT 1 4758.857 99.96
    MPI_BCAST 39 0.004 0.00
    MPI_ALLGATHER 173434 11.148 0.23
    read-GS 86717 2492.108 52.35
     MPI_ALLREDUCE 86717 4.537 0.10
     MPI_RECV ****** 6.946 0.15
    SE-dwn 86717 44.788 0.94
     ts_expand 163232 1.669 0.04
    Gf-prep 86717 613.735 12.89
     V_TM_Pinv 81616 567.340 11.92
    DOS-Gf-A-T 86717 689.267 14.48
    MPI_RECV ****** 100.782 2.12
    MPI_BARRIER 1 0.000 0.00
    cdf2ascii 1 230.711 4.85
>> End of run: 11-SEP-2019 23:51:16

    Best regards

    Junwei Tong

Nick Papior (nickpapior) said : #4

You are using an outdated version.

Please try 4.1-b4 and report if this still has issues.

JunweiTong (junweitong) said : #5

Dear Nick,

     Thank you very much. That solved the problem. The PDOS(calculated by 4.1-b4) from the Green function and spectra function were same and there is no negative PDOS.
     And I want to know what is meaning of the DOS from spectral function, such as the DOS from left electrode or right electrode. As the DOS from Green function was equal to the DOS sum of the DOS from left and right electrodes.

     Best regards

     Junwei Tong

Best Nick Papior (nickpapior) said : #6

Please see the equations here slide 19 and 20.
https://github.com/zerothi/ts-tbt-sisl-tutorial/releases/download/v2018.11/talk_1.pdf

ADOS are states coming from the respective electrode.
DOS is states from all electrodes. Hence this should be equal to the sum of all ADOS.

From ADOS you can get a feeling of how far the corresponding electrode couples into the device region.

JunweiTong (junweitong) said : #7

Thanks Nick Papior, that solved my question.