Can excitons at different K points be computed?

Hi Exciting users
I have followed the tutorial, but I don’t know if the Exciting code can calculate the excitons at different K points (Such as the hole locates at the M point, and the electron locates at the Gamma point). Can q-dependent BSE cacluate this property?

Best regards

Hi ttbook,

The exciting code is able to do q-dependent BSE but it is not possible to locate the electron and hole at a specific point in the reciprocal space directly.

Though you could try the following workaround:

The element qpointset can be used for q-dependent BSE. Here you specify all q-points to calculate. Technically, it displaces the occupied states about +q/2 and the unoccupied states about -q/2.
The attribute vkloff sets up an offset to the k-points.
Thus the first k-point for the occupied states is vkloff / N_k + q/2 and for the unoccupied states
vkloff / N_k - q/2.

If you want to calculate excitons where the hole locates at the M point and the electron at the Gamma point you could do the following:

  1. Set the Number of k-points (ngridk and ngridq in the xs element) to 1 1 1

  2. Set a qpoint element in the qpointset element to q = Gamma - M

  3. Set vkloff to ** - (Gamma + M) / 2**

The occupied stats (where the hole sits) are now calculated at the k-point
vkloff / N_k + q/2 = -(Gamma + M) / 2 + (Gamma - M) / 2 = M*,

And the unoccupied states (where the electron sits) are calculated at the k-point
vkloff / N_k - q/2 = -(Gamma + M) / 2 - (Gamma - M) / 2 = -Gamma = Gamma*.

Is this what you need? Also, I’ve never tried this, so I can not guarantee good results!!!

Cheers

Hi maurerben, thanks for your reply, I will try to calculate it first.

Dear maurerben,
I did the tests according to the methods you suggested. When set the Number of k-points (ngridk and ngridq in the xs element) to 1 1 1, no documents related to EPSILON and LOSS were produced. The EXCCOEFF_BSE-singlet-TDA-BAR_SCR-full_QMT001.OUT also was not produced. The input.xml has been pasted.

Best regards

<input>
   <title>Graphene</title>
     <structure speciespath="/public1/home/sch3140/soft/exciting/species">
       <crystal scale="4.65">
         <basevect> 1.0 0.0000000000 0.0000 </basevect>
         <basevect> -0.5 0.8660254040 0.0000 </basevect>
         <basevect> 0.0 0.0000000000 10.077 </basevect>
       </crystal>

       <species speciesfile="B.xml" rmt="1.2805">
         <atom coord="0.3333333333333357  0.6666666666666643  0.50"/>
       </species>
       <species speciesfile="N.xml" rmt="1.3296">
         <atom coord="0.6666666666666643  0.3333333333333357  0.50"/>
       </species>
      </structure>

      <groundstate
        do="fromscratch"
        xctype="GGA_PBE_SOL"
        ngridk="8 8 1"
        rgkmax="4"
        swidth="0.01"
        nosym='true'>
      </groundstate>

      <properties>
        <bandstructure>
          <plot1d>
            <path steps="100">
              <point coord="0.0 0.0 0.0" label="GAMMA"/>
              <point coord="0.5 0.0 0.0" label="M" />
              <point coord="-0.33333333 -0.33333333 0.0" label="K" />
              <point coord="0.0 0.0 0.0" label="GAMMA"/>
            </path>
          </plot1d>
        </bandstructure>
      </properties>

     <xs
        xstype="BSE"
        ngridk="1 1 1"
        vkloff="0.097 0.273 0.03"
        ngridq="1 1 1"
        nempty="30"
        gqmax="3.0"
        broad="0.007"
        scissor="0.0001"
        tappinfo="true"
        tevout="true">

      <energywindow
        intv="0.0 1.0"
        points="1200"/>

      <screening
        screentype="full"
        nempty="100"/>

      <BSE
          bsetype="singlet"
          nstlbse="1 4 1 4"/>
      <qpointset>
          <qpoint> 0.0 0.0 0.0</qpoint>
      </qpointset>

      <storeexcitons
         selectenergy="false"
         MinNumberExcitons="1"
         MaxNumberExcitons="20"
         MinEnergyExcitons="0"
         MaxEnergyExcitons="13.8"/>

   </xs>

 </input>

Dear ttbook,

Can you please attach the INFOXS.OUT?

Cheers

Dear maurerben,
The INFOXS.OUT file has been pasted.

Ttbook

================================================================================
| EXCITING OXYGEN started for task xsgeneigvec (301)                           =
| version hash id:                                                             =
|                                                                              =
| Date (DD-MM-YYYY) : 10-05-2022                                               =
================================================================================
================================================================================
One-shot GS runs for BSE calculations
================================================================================
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
One-shot GS runs for k+qmt/2 grids
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(xsgeneigvec): Generating eigenvectors for Q-point      1
--------------------------------------------------------------------------------
Info(xsgeneigvec): Generation of eigenvectors finished
 
Info(xsfinit): task Nr.     301 stopped gracefully
 
 Timings: 
     Date (DD-MM-YYYY)      : 10-05-2022
     Time (hh:mm:ss)        : 10:55:46
     CPU time               : 1.49 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 01 s )
     wall time              : 1.56 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 02 s )
     CPU load               : 95.64 %
     CPU time  (cumulative) : 124.63 sec; 0.03 hrs; ( 0 d, 00 h, 02 m, 05 s )
     wall time (cumulative) : 1.56 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 02 s )
     CPU load  (cumulative) : 95.64 %
 
================================================================================
= EXCITING OXYGEN stopped for task    301                                      =
================================================================================
 
 
================================================================================
| EXCITING OXYGEN started for task writepmatxs (320)                           =
| Date (DD-MM-YYYY) : 10-05-2022                                               =
================================================================================
Info(writepmatxs): Momentum matrix elements finished
Info(xsfinit): task Nr.     320 stopped gracefully
 
 Timings: 
     Date (DD-MM-YYYY)      : 10-05-2022
     Time (hh:mm:ss)        : 10:55:47
     CPU time               : 1.16 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 01 s )
     wall time              : 1.16 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 01 s )
     CPU load               : 99.46 %
     CPU time  (cumulative) : 125.78 sec; 0.03 hrs; ( 0 d, 00 h, 02 m, 06 s )
     wall time (cumulative) : 2.72 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 03 s )
     CPU load  (cumulative) : 99.46 %
 
================================================================================
= EXCITING OXYGEN stopped for task    320                                      =
================================================================================
 
 
================================================================================
| EXCITING OXYGEN started for task scrgeneigvec (401)                          =
| Date (DD-MM-YYYY) : 10-05-2022                                               =
================================================================================
 
Info(xsinit): mapping screening-specific parameters
 
================================================================================
One-shot GS runs for BSE calculations
================================================================================
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
One-shot GS runs for k+qmt/2 grids
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(xsgeneigvec): Generating eigenvectors for Q-point      1
Using screening GS parameters.
--------------------------------------------------------------------------------
Info(xsgeneigvec): Generation of eigenvectors finished
 
Info(xsfinit): task Nr.     401 stopped gracefully
 
 Timings: 
     Date (DD-MM-YYYY)      : 10-05-2022
     Time (hh:mm:ss)        : 10:55:48
     CPU time               : 1.15 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 01 s )
     wall time              : 1.21 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 01 s )
     CPU load               : 95.19 %
     CPU time  (cumulative) : 126.94 sec; 0.04 hrs; ( 0 d, 00 h, 02 m, 07 s )
     wall time (cumulative) : 3.93 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 04 s )
     CPU load  (cumulative) : 95.19 %
 
================================================================================
= EXCITING OXYGEN stopped for task    401                                      =
================================================================================
 
 
================================================================================
| EXCITING OXYGEN started for task scrwritepmat (420)                          =
| Date (DD-MM-YYYY) : 10-05-2022                                               =
================================================================================
 
Info(xsinit): mapping screening-specific parameters
 
Info(writepmatxs): Momentum matrix elements finished
Info(scrwritepmat): Momentum matrix elements for screening finished
Info(xsfinit): task Nr.     420 stopped gracefully
 
 Timings: 
     Date (DD-MM-YYYY)      : 10-05-2022
     Time (hh:mm:ss)        : 10:55:49
     CPU time               : 1.19 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 01 s )
     wall time              : 1.21 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 01 s )
     CPU load               : 98.40 %
     CPU time  (cumulative) : 128.13 sec; 0.04 hrs; ( 0 d, 00 h, 02 m, 08 s )
     wall time (cumulative) : 5.15 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 05 s )
     CPU load  (cumulative) : 98.40 %
 
================================================================================
= EXCITING OXYGEN stopped for task    420                                      =
================================================================================
 
 
================================================================================
| EXCITING OXYGEN started for task screen (430)                                =
| Date (DD-MM-YYYY) : 10-05-2022                                               =
================================================================================
 
Info(xsinit): mapping screening-specific parameters
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(screenlauncher): Calculating screening for unshifted q-grid.
Info(screenlauncher): Number of q points:       1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
Info(screenlauncher): lowest (partially)  unoccupied state:      5
Info(screenlauncher): highest (partially) occupied state  :      4
Info(screenlauncher): number of occupied states considered:    4
Info(screenlauncher): number of unoccupied states considered:  101
--------------------------------------------------------------------------------
 
Info(screenlauncher): Starting loop over q-points
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(screenlauncher): Screening for unshifted q-grid finished
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
Info(screenlauncher): Screening finished
Info(xsfinit): task Nr.     430 stopped gracefully
 
 Timings: 
     Date (DD-MM-YYYY)      : 10-05-2022
     Time (hh:mm:ss)        : 10:55:55
     CPU time               : 5.44 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 05 s )
     wall time              : 5.50 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 05 s )
     CPU load               : 98.98 %
     CPU time  (cumulative) : 133.57 sec; 0.04 hrs; ( 0 d, 00 h, 02 m, 14 s )
     wall time (cumulative) : 10.65 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 11 s )
     CPU load  (cumulative) : 98.98 %
 
================================================================================
= EXCITING OXYGEN stopped for task    430                                      =
================================================================================
 
 
================================================================================
| EXCITING OXYGEN started for task scrcoulint (440)                            =
| Date (DD-MM-YYYY) : 10-05-2022                                               =
================================================================================
 
Info(xsinit): mapping BSE-specific parameters
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(scrcoulintlauncher): Setting up screened Coulomb interaction matrix W.
Info(scrcoulintlauncher): Using momentum transfer vectors from list :   1 to  1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(scrcoulintlauncher): Calculating screened Coulomb interaction matrix W
Info(scrcoulintlauncher): Momentum transfer list index: iqmt=  1
Info(scrcoulintlauncher): Momentum transfer: vqmtl=   0.000   0.000   0.000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
Info(scrcoulintlauncher): Calculating RR block of W
 
--------------------------------------------------------------------------------
Info(scrcoulint): Inspecting occupations...
Info(setranges_modxs): Determining k+qmt/2 grid
Info(setranges_modxs): Determining k-qmt/2 grid
Info(setranges_modxs): Number of non-reduced k-points:        1
Info(setranges_modxs): Number of states considered:       35
Info(setranges_modxs): Number of (partially) occupied states:        4
Info(setranges_modxs): Highest (partially) occupied states:        4
Info(setranges_modxs): Number of (partially) unoccupied states:       31
Info(setranges_modxs): Lowest (partially) unoccupied states:        5
--------------------------------------------------------------------------------
Info(scrcoulint): Selecting transitions...
Info(select_transitions): Inspecting transitions in the  band interval:
  lowest occupied state:   1
  highest occupied state:   4
  lowest unoccupied state:   5
  highest unoccupied state:   8
  Opening gap with a scissor of:      0.000/H      0.003/eV
Info(select_transitions): Number of participating transitions:      16
--------------------------------------------------------------------------------
Info(scrcoulint): Size of file SCCLI will be about     0.000004 GB
Info(scrcoulint): Using q-grid
Info(scrcoulint): Number of reduced q-points:      1
Info(scrcoulint): Number of non-reduced q-points:      1
 
Info(scrcoulint): Calculating W(G1,G2,qr) fourier coefficients
Info(scrcoulint): Calculating W matrix elements
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(scrcoulintlauncher): Screened coulomb interaction finished for iqmt=   1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(xsfinit): task Nr.     440 stopped gracefully
 
 Timings: 
     Date (DD-MM-YYYY)      : 10-05-2022
     Time (hh:mm:ss)        : 10:56:00
     CPU time               : 5.49 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 05 s )
     wall time              : 5.57 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 06 s )
     CPU load               : 98.50 %
     CPU time  (cumulative) : 139.06 sec; 0.04 hrs; ( 0 d, 00 h, 02 m, 19 s )
     wall time (cumulative) : 16.22 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 16 s )
     CPU load  (cumulative) : 98.50 %
 
================================================================================
= EXCITING OXYGEN stopped for task    440                                      =
================================================================================
 
 
================================================================================
| EXCITING OXYGEN started for task exccoulint (441)                            =
| Date (DD-MM-YYYY) : 10-05-2022                                               =
================================================================================
 
Info(xsinit): mapping BSE-specific parameters
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(exccoulintlauncher): Setting up exchange interaction matrix V.
Info(exccoulintlauncher): Using momentum transfer vectors from list :   1 to  1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(exccoulintlauncher):Calculating exchange interaction matrix V
Info(exccoulintlauncher): Momentum transfer list index: iqmt=  1
Info(exccoulintlauncher): Momentum transfer: vqmtl=   0.000   0.000   0.000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
Info(exccoulintlauncher): Calculating RR block of V
 
--------------------------------------------------------------------------------
Info(exccoulint): Inspecting occupations...
Info(setranges_modxs): Determining k+qmt/2 grid
Info(setranges_modxs): Determining k-qmt/2 grid
Info(setranges_modxs): Number of non-reduced k-points:        1
Info(setranges_modxs): Number of states considered:       35
Info(setranges_modxs): Number of (partially) occupied states:        4
Info(setranges_modxs): Highest (partially) occupied states:        4
Info(setranges_modxs): Number of (partially) unoccupied states:       31
Info(setranges_modxs): Lowest (partially) unoccupied states:        5
--------------------------------------------------------------------------------
Info(exccoulint): Selecting transitions...
Info(select_transitions): Inspecting transitions in the  band interval:
  lowest occupied state:   1
  highest occupied state:   4
  lowest unoccupied state:   5
  highest unoccupied state:   8
  Opening gap with a scissor of:      0.000/H      0.003/eV
Info(select_transitions): Number of participating transitions:      16
--------------------------------------------------------------------------------
Info(exccoulint): Size of file EXCLI will be about     0.000004 GB
 
Info(exccoulint): Generating plane wave matrix elements for momentum transfer iqmt=   1
  Timing (in seconds)	   :       0.345
 
Info(exccoulint): Generating V matrix elements
Info(exccoulint): Zeroing Coulomb potential at G+qmt index:  1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(exccoulintlauncher): Exchange interaction finished for iqmt=   1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(xsfinit): task Nr.     441 stopped gracefully
 
 Timings: 
     Date (DD-MM-YYYY)      : 10-05-2022
     Time (hh:mm:ss)        : 10:56:05
     CPU time               : 4.29 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 04 s )
     wall time              : 4.33 sec; 0.00 hrs; ( 0 d, 00 h, 00 m, 04 s )
     CPU load               : 99.01 %
     CPU time  (cumulative) : 143.35 sec; 0.04 hrs; ( 0 d, 00 h, 02 m, 23 s )
     wall time (cumulative) : 20.55 sec; 0.01 hrs; ( 0 d, 00 h, 00 m, 21 s )
     CPU load  (cumulative) : 99.01 %
 
================================================================================
= EXCITING OXYGEN stopped for task    441                                      =
================================================================================
 
 
================================================================================
| EXCITING OXYGEN started for task bse (445)                                   =
| Date (DD-MM-YYYY) : 10-05-2022                                               =
================================================================================
 
Info(xsinit): mapping BSE-specific parameters
 
Info(bselauncher): Init time:    0.278200
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(bselauncher): Setting up and diagonalizing BSE Hamiltonian.
Info(bselauncher): Using momentum transfer vectors from list :   1 to  1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Info(bselauncher): Serial execution
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--------------------------------------------------------------------------------
Info(bselauncher): Momentum transfer list index: iqmt=  1
Info(bselauncher): Momentum transfer: vqmtl=   0.000   0.000   0.000
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Info(bse): Inspecting occupations...
Info(setranges_modxs): Determining k+qmt/2 grid
Info(setranges_modxs): Determining k-qmt/2 grid
Info(setranges_modxs): Number of non-reduced k-points:        1
Info(setranges_modxs): Number of states considered:       35
Info(setranges_modxs): Number of (partially) occupied states:        4
Info(setranges_modxs): Highest (partially) occupied states:        4
Info(setranges_modxs): Number of (partially) unoccupied states:       31
Info(setranges_modxs): Lowest (partially) unoccupied states:        5
Info(select_transitions): Inspecting transitions in the  band interval:
  lowest occupied state:   1
  highest occupied state:   4
  lowest unoccupied state:   5
  highest unoccupied state:   8
  Opening gap with a scissor of:      0.000/H      0.003/eV
Info(select_transitions): Number of participating transitions:      16
--------------------------------------------------------------------------------
Info(bse): Selecting transitions...
--------------------------------------------------------------------------------
 
Info(bse):bsegap (eV):    10.3562000245665189
Info(bse): Assembling BSE matrix
  RR/RA blocks of global BSE-Hamiltonian:
  Size of the Hamiltonian:      16
  Number of k-points:       1
  Distributing matrix to   1 processes
  Local matrix shape     16 x    16
Info(bse): max local RAM needed for BSE matrices ~     0.000004 GB
 
--------------------------------------------------------------------------------
Info(setup_bse_block): Setting up RR part of hamiltonian
Info(setup_bse_block): Singlet spin state
 Hamiltonian constructed.
All processes build their local matrix
Info(bse): Diagonalizing RR Hamiltonian (TDA)
Info(bse): Invoking Lapack routine ZHEEVR
        16 eigen solutions found in the interval:
         i1=       1 i2=      16
 
--------------------------------------------------------------------------------
[INFOXS.OUT|attachment](upload://2SYvLqyHP6q2ChZsA90Y8Fn6v3v.OUT) (18.0 KB)

Dear ttbook,

I tried the calculation as defined in your input.xml and ran in the following error:

Error(bse): storeexcitons index mismatch.
 iex1, iex2, nreq, nex          1         20         20         16
exciting has terminated

This means that you requested more exciton states (20) then available (16). You have now three options:

  1. Decrease the number of requested excitons to 16. This is the attribute MaxNumberExcitons in the storeexcitons element in the xs element.

  2. Increase the number of exciton solutions by increasing the number of unoccupied bands. This is the last number of the nstlbse quadruple in the BSE element in the xs element.

  3. Increase the number of exciton solutions by increasing the number of k and q points. These are the attributes ngridk and ngridq (must be the same for BSE calculations) in the xs element.