yambo-code / yambo

This is the official GPL repository of the yambo code
http://www.yambo-code.eu/
GNU General Public License v2.0
98 stars 38 forks source link

Yambo behaviour when computing EELS/ABS spectra #59

Closed palful closed 7 months ago

palful commented 11 months ago

Following discussions with @sangallidavide, @daniele-varsano, @andrea-ferretti and Savio Laricchia, I am posting this table with the issues and caveats that I have compiled while trying different Lkind, BSEmod, BSSmod, and architecture (GPU/CPU) options.

The last column of the table is written from the perspective of a user who is not familiar with everything behind the scenes (such as how an iterative solver works).

Some of the issues (such as the scalapack bug or being able to use BSEmod="coupling" on GPU) already have a solution/patch/workaround which however is not generally available.

Other issues may be tackled by changing the logic of the code (such as: if I have Lfull I get EELS directly as 1+vX with no inversions/KKR, if I have Lbar I get ABS directly as 1-vX with no inversions/KKR).

Finally, some issues are solved by simply telling the user what the code is doing via Warning/Error messages. Particular attention should be given to the cases where the code prints wrong spectra without warning.

Table_solvers

sangallidavide commented 11 months ago

Some of the issues (such as the scalapack bug or being able to use BSEmod="coupling" on GPU) already have a solution/patch/workaround which however is not generally available.

These will hopefully enter in the release soon.

Other issues may be tackled by changing the logic of the code (such as: if I have Lfull I get EELS directly as 1+vX with no inversions/KKR, if I have Lbar I get ABS directly as 1-vX with no inversions/KKR)

I think that this is the first point to be fixed.

sangallidavide commented 11 months ago

I add that this (line 3 of the above table)

  if (trim(BSE_L_kind)=="full".and.(STRING_match(BSE_mode,'causal').or.STRING_match(BSE_mode,'retarded'))) then
   call warning(' Lkind=full with retarded leads to bad epsilon. Use either resonant or coupling. Setting resonant. ')
   BSE_mode="resonant"                                                  
 endif   

makes no sense. It should be removed. In particular after working on the previous point, e.g.

Lfull I get EELS directly as 1+vX with no inversions/KKR, if I have Lbar I get ABS directly as 1-vX with no inversions/KKR

sangallidavide commented 7 months ago

Fixed with last merge.