Page 1 of 1

BSE for spin polarized calculations

Posted: Wed Oct 16, 2024 2:49 am
by Danslie
Dear developers,

I started the yambo calculation from a spin-polarized calculation ((ie without spin-orbit coupling) of a AFM material. The GW was done correctly, but the BSE calculation always stop abruptly at Diago Solver step without any warrnings.

[04.02.01] Diago Solver @q1
===========================

What's wrong with it?
The input and output files are attached.

Re: BSE for spin polarized calculations

Posted: Wed Oct 16, 2024 7:08 am
by Daniele Varsano
Dear Danslie,

please sign your post with your name and affiliation, this is a rule of the forum, and you can do once for all by filling the signature in your user profile.

Most probably it is a memory issue, you are trying to diagonalize a quite large matrix.

You can try the following:
1) Use the scalapack (parallel linear algebra) for full diagonalization by setting, e.g. :

Code: Select all

BS_nCPU_LinAlg_DIAGO=4
but I'm not very confident it will work. This should have been activated by default, but it seems that did not happen, as I can see in the log that yambo is using serial linear algebra.

2) If you are interested in the spectrum only (i.e. without eigenvectors) you can consider using the haydock solver setting:
BSSmod= "h"

3) If you are also interested in eigenvectors, you can use the slepc algorithm, this will provide you the first eigenvectors.

Code: Select all

BSSmod= "s"
In order to use the slepc procedure, you will need to recompile the code linking these libraries.

Code: Select all

./configure --enable-slepc-linalg ...
Best,

Daniele

Re: BSE for spin polarized calculations

Posted: Wed Oct 16, 2024 7:40 am
by Danslie
Thank you for your quick reply. Sorry for the missing of my name and affiliation in my first post.

I will try your suggestions to see if it works.

Best
Dan Wang

Re: BSE for spin polarized calculations

Posted: Wed Oct 16, 2024 8:54 am
by Danslie
Daniele Varsano wrote: Wed Oct 16, 2024 7:08 am Dear Danslie,

please sign your post with your name and affiliation, this is a rule of the forum, and you can do once for all by filling the signature in your user profile.

Most probably it is a memory issue, you are trying to diagonalize a quite large matrix.

You can try the following:
1) Use the scalapack (parallel linear algebra) for full diagonalization by setting, e.g. :

Code: Select all

BS_nCPU_LinAlg_DIAGO=4
but I'm not very confident it will work. This should have been activated by default, but it seems that did not happen, as I can see in the log that yambo is using serial linear algebra.

2) If you are interested in the spectrum only (i.e. without eigenvectors) you can consider using the haydock solver setting:
BSSmod= "h"

3) If you are also interested in eigenvectors, you can use the slepc algorithm, this will provide you the first eigenvectors.

Code: Select all

BSSmod= "s"
In order to use the slepc procedure, you will need to recompile the code linking these libraries.

Code: Select all

./configure --enable-slepc-linalg ...
Best,

Daniele
It should be a memory issue. When I turned into haydock solver, it works. But I'm instrested in eigenvectors, maybe I sholud try your third suggestions.

When I turn on spin-orbital coupling and use the same settings as in spin-polarized calculations, the diagonalization of BSE was done successfully. Does it mean spin-polarized calculation needs more memory?

Best,

Dan Wang

Re: BSE for spin polarized calculations

Posted: Thu Oct 17, 2024 6:43 am
by Daniele Varsano
Dear Dan,

you can track the memory footprint in the log file.

Best,
Daniele