# 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"
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

--------------------------------------------------------------------------------

``````

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.