BSE solvers overview: Difference between revisions

From The Yambo Project
Jump to navigation Jump to search
No edit summary
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
''' Work in progress (please come back after 04/04/2021)'''
This tutorial explores the options available in Yambo for the numerical solution of the Bethe-Salpeter equation. Before running this tutorial, you should have carried out the tutorial '''[[Calculating optical spectra including excitonic effects: a step-by-step guide]]'''. We will use the same example system (bulk hBN). The various options correspond to different numerical methods for solving (large) eigenvalue problems. The numerical methods are not covered in this tutorial and the interested user is directed to the references.
This tutorial explores the options available in Yambo for the numerical solution of the Bethe-Salpeter equation. Before running this tutorial, you should have carried out the tutorial '''[[Calculating optical spectra including excitonic effects: a step-by-step guide]]'''. We will use the same example system (bulk hBN). The various options correspond to different numerical methods for solving (large) eigenvalue problems. The numerical methods are not covered in this tutorial and the interested user is directed to the references.


Line 8: Line 6:
__TOC__
__TOC__
===Full diagonalization solver===
===Full diagonalization solver===
Diagonalization of the full Hamiltonian using the standard LAPACK library. (ScaLAPACK?!)
Diagonalization of the full Hamiltonian using the standard LAPACK library.
 
This solver outputs the macroscopic dielectric function over a range of energies chosen by the user. It also calculates all exciton energies and composition in terms of electron-hole pairs. Upon user's choice, the latter is stored on disk for use in postprocessing for exciton analysis and plotting as seen in the tutorial '''[[How to analyse excitons - CECAM 2021 school|How to analyse excitons]]'''.


This solver outputs the macroscopic dielectric function over a range of energies chosen by the user. It also calculates all exciton energies and composition in terms of electron-hole pairs. Upon user's choice, the latter is stored on disk for use in postprocessing for exciton analysis and plotting as seen in the tutorial '''[[How to analyse excitons]]'''
Unfortunately, the computational cost of full diagonalization is cubic in the number of electron-hole pairs so this solver can be used for small system only (few light atoms per unit cell).   
Unfortunately, the computational cost of full diagonalization is cubic in the number of matrix elements (CHECK!) and this solver can be used for small system only (few light atoms per unit cell).   
   
   
You should've already carry out the  '''[[Bethe-Salpeter solver: diagonalization]]'''. If you wish, you can run again this part and then '''return to this tutorial'''
You should have already carried out the  '''[[Bethe-Salpeter solver: diagonalization]]'''. If you wish, you can run again this part and then '''return to this tutorial'''


===Lanczos-Haydock solver===
===Lanczos-Haydock solver===
Subspace iterative [https://en.wikipedia.org/wiki/Lanczos_algorithm/| Lanczos algorithm] which by-pass diagonalization with the Haydock approach<ref>R. Haydock, in
Subspace iterative [https://en.wikipedia.org/wiki/Lanczos_algorithm | Lanczos algorithm] which by-pass diagonalization with the Haydock approach<ref>R. Haydock, in
  ''Solid State Phys.'', '''35''' 215 (1980) edited by H. Ehrenfest, F. Seitz, and D. Turnbull, Academic Press</ref>.
  ''Solid State Phys.'', '''35''' 215 (1980) edited by H. Ehrenfest, F. Seitz, and D. Turnbull, Academic Press</ref>.


This solver outputs the macroscopic dielectric function over a range of energies chosen by the user. It can be applied to medium-large systems as it is substantially cheaper than the full diagonalization (quadratic with the number of elements). However, this approach ''does not provide'' the individual exciton energies and composition in terms of electron-hole pairs.
This solver outputs the macroscopic dielectric function over a range of energies chosen by the user. It can be applied to medium-large systems as it is substantially cheaper than the full diagonalization (quadratic with the number of electron-hole pairs). However, this approach ''does not provide'' the individual exciton energies and composition in terms of electron-hole pairs.
 
Follow the link to '''[[Bethe-Salpeter solver: Lanczos-Haydock]]''' then  '''return to this tutorial'''


Follow the link to '''[[Bethe-Salpeter solver: Lanczos-Haydock]]''' then  '''return to this tutorial'''


===SLEPc solver===
===SLEPc solver ===
Subspace iterative algorithm using the external [https://slepc.upv.es/| SLEPc library]<ref>V. Hernandez, J.E. Roman and V. Vidal in '' ACM Transactions on Mathematical Software'', '''31''' 315 (2005)</ref> (SLEPC solver).
Subspace iterative algorithm using the [https://slepc.upv.es SLEPc library]<ref>V. Hernandez, J.E. Roman and V. Vidal in '' ACM Transactions on Mathematical Software'', '''31''' 315 (2005)</ref> (SLEPC solver).


This solver outputs the individual exciton energies and composition about an energy value chosen by the user. It can be applied to medium-large systems but does not provide the overall spectrum. It is usually used after obtaining the spectra from the Lanczos-Haydock solver to analyze a specific peak.  
This solver outputs the individual exciton energies and composition about an energy value chosen by the user. It can be applied to medium-large systems but does not provide the overall spectrum. This solver is typically used after obtaining the spectra from the Lanczos-Haydock solver to either analyze a specific peak or getting the energy and composition of a few low-lying excitons. It can be used for large-medium systems. The computational cost grows with the number of excitons one asks to compute.
   
   
Follow the link to '''[[Bethe-Salpeter solver: SLEPC]]''' then  '''return to this tutorial'''
'''Optional:'''
 
Advanced users can recompile Yambo with the ''--enable-slepc-linalg'' option if they hadn't done so.
If/Once you have a Yambo version compiled with the SLEPc, or you have the Virtual Machine or the Docker (with the yambo-gcc_openmp_petsc [[CECAM_VIRTUAL_2021 | container]]), follow the link to '''[[Bethe-Salpeter solver: SLEPC]]''' then  '''return to this tutorial'''


==Summary==
To summarise, the output (dielectric function, exciton energies and composition) and cost of the three solvers are summarized in this table.


[[File:Solver.png|Yambo tutorial image]]




==Navigate==
* Back to [[Rome 2023#Tutorials]]
* Back to [[BSE hBN Yambo Virtual 2021 version|BSE tutorial sections]]
* Back to [[ICTP 2022]]
* Back to [[CECAM VIRTUAL 2021]]
* [[Modules|Back to technical modules menu]]
* [[Tutorials|Back to tutorials menu]]


=References =
=References =
<references />
<references />

Latest revision as of 16:50, 19 May 2023

This tutorial explores the options available in Yambo for the numerical solution of the Bethe-Salpeter equation. Before running this tutorial, you should have carried out the tutorial Calculating optical spectra including excitonic effects: a step-by-step guide. We will use the same example system (bulk hBN). The various options correspond to different numerical methods for solving (large) eigenvalue problems. The numerical methods are not covered in this tutorial and the interested user is directed to the references.

After completion of this tutorial, you are expected to recognize which solver to use depending on the system, computational load and desired output. Also, for each of the solver, you should be able to choose the values for the key input parameters.

Three main solvers are available in Yambo:

Full diagonalization solver

Diagonalization of the full Hamiltonian using the standard LAPACK library.

This solver outputs the macroscopic dielectric function over a range of energies chosen by the user. It also calculates all exciton energies and composition in terms of electron-hole pairs. Upon user's choice, the latter is stored on disk for use in postprocessing for exciton analysis and plotting as seen in the tutorial How to analyse excitons.

Unfortunately, the computational cost of full diagonalization is cubic in the number of electron-hole pairs so this solver can be used for small system only (few light atoms per unit cell).

You should have already carried out the Bethe-Salpeter solver: diagonalization. If you wish, you can run again this part and then return to this tutorial

Lanczos-Haydock solver

Subspace iterative | Lanczos algorithm which by-pass diagonalization with the Haydock approach[1].

This solver outputs the macroscopic dielectric function over a range of energies chosen by the user. It can be applied to medium-large systems as it is substantially cheaper than the full diagonalization (quadratic with the number of electron-hole pairs). However, this approach does not provide the individual exciton energies and composition in terms of electron-hole pairs.

Follow the link to Bethe-Salpeter solver: Lanczos-Haydock then return to this tutorial

SLEPc solver

Subspace iterative algorithm using the SLEPc library[2] (SLEPC solver).

This solver outputs the individual exciton energies and composition about an energy value chosen by the user. It can be applied to medium-large systems but does not provide the overall spectrum. This solver is typically used after obtaining the spectra from the Lanczos-Haydock solver to either analyze a specific peak or getting the energy and composition of a few low-lying excitons. It can be used for large-medium systems. The computational cost grows with the number of excitons one asks to compute.

Optional: Advanced users can recompile Yambo with the --enable-slepc-linalg option if they hadn't done so. If/Once you have a Yambo version compiled with the SLEPc, or you have the Virtual Machine or the Docker (with the yambo-gcc_openmp_petsc container), follow the link to Bethe-Salpeter solver: SLEPC then return to this tutorial

Summary

To summarise, the output (dielectric function, exciton energies and composition) and cost of the three solvers are summarized in this table.

Yambo tutorial image


Navigate

References

  1. R. Haydock, in Solid State Phys., 35 215 (1980) edited by H. Ehrenfest, F. Seitz, and D. Turnbull, Academic Press
  2. V. Hernandez, J.E. Roman and V. Vidal in ACM Transactions on Mathematical Software, 31 315 (2005)