Page 1 of 2

Empty Screening input file

Posted: Sun Oct 01, 2023 9:41 am
by KinawyM
Dear all,

I am trying to calculate the optical absorption spectrum of a silicate compound but when I try to create an input file to calculate static screening using the command "yambo -X s -F Screening.in", Yambo generates an empty input file. The initialization and p2y steps worked with no errors.

I also tried including the "NoDiagSC" in an install file and re initialized the calculations, but it yielded another error as follows;

[ERROR] STOP signal received while in[03] Transferred momenta grid and indexing
[ERROR] [RL indx] error in mapping

Please find the ground state and yambo files attached. The "r_setup" is the report after initializations without including "NoDiagSC", and the "r_setup_01" is the one after.

I will be very grateful for your help and thoughts,

Mohamed,
PhD student, Ain Shams University, Egypt

Re: Empty Screening input file

Posted: Mon Oct 02, 2023 4:08 pm
by Daniele Varsano
Dear Mohamed,

the problem here is that Yambo does not recognize your k point grid as uniform. As you can see in your r_setup report:

Code: Select all

 [WR./SAVE//ndb.kindx]-----------------------------------------------------------
  Fragmentation                                    : no
  Polarization last K ( bz)                        :  3072
  Polarization last K (ibz)                        :   806
  QP states                                        :     1   806
  X grid is uniform                                : no
Usually this is solved by adding the keyword NoDiagSC.
If this does not solve the problem, inspect your QE input file, you can try to change the k point sampling.

Best,
Daniele

Re: Empty Screening input file

Posted: Tue Oct 03, 2023 1:15 pm
by KinawyM
Dear Daniele,

Thanks for your reply, time, and concern. Changing the K-grid from 0.5NNN to NNN solved the problem of creating empty input files. But does this mean I can only chose a NNN grid so that Yambo identify it as a uniform one? Although, in the hBN tutorial a grid of 662 was used and Yambo didn't recognize it as non-uniform.


All the best,
Mohamed
PhD student, Ain Shams University, Egypt

Re: Empty Screening input file

Posted: Wed Oct 04, 2023 7:43 am
by Daniele Varsano
Dear Mohamed,
But does this mean I can only chose a NNN grid so that Yambo identify it as a uniform one?
No, this is not a constraint. It seems that in your calculation you have come across an unfortunate situation where yambo has difficulties in building up a regular q point grid.

Best,
Daniele

Re: Empty Screening input file

Posted: Fri Oct 06, 2023 9:06 am
by KinawyM
Dear Daniele,

Thanks again for your concern. Now 'everything-1' works fine. This one thing is the diagonalization of the BSE kernel. I ran the diagonalization step using 24 cores for an nscf K-grid of 121212 and everything worked well. But when I tried to run it for an nscf K-grid of 141414 and keeping every Yambo input file intact, it kept crashing with different errors like "insufficient memory" and "=SIGNAL KILLED".

Any idea about the cause of such errors? Is it related to parallelism of Yambo? and if so, is there a certain strategy to assign the correct number of cores to a specific case?

All the best and beyond,

Re: Empty Screening input file

Posted: Fri Oct 06, 2023 9:08 am
by Daniele Varsano
Dear Mohamed,

you can tune the parallelization strategy to distribute the memory among CPUs.
There are specific variables to be assigned, but in order to guide, you should provide an input/report/log file in order to see in which part of the calculation the code is crashing.

Daniele

Re: Empty Screening input file

Posted: Fri Oct 06, 2023 1:22 pm
by KinawyM
Dear Daniele,

Here you are attached the Yambo input and output files. Thanks a ton for your time.

Best regards,
Mohamed

Re: Empty Screening input file

Posted: Mon Oct 09, 2023 3:28 pm
by Daniele Varsano
Dear Mohamed,
indeed, you have a quite large matrix. You can try to solve the BSE iteratively:
If you are interested in the spectrum and not in the eigenvectors, you can try to set haydock solver:
BSSmod= "h"
You can also obtain first eigenvectors by using slepc library, but you would need to recompile the code asking for that using the flag --enable-slepc-linalg (in configure).

You can also try to diagonalize as you are oding now by using parallel linear algebra (scalapack) by using the flag --enable-par-linalg whren configuring.

Finally, please note that 2Ry in BSENGBlk and particularly for BSENGexx are most probably out of convergence.
Consider also that in the case you can lower the BSEBands window, this will reduce a lot the matrix dimension and it would help a lot.

Best,
Daniele

Re: Empty Screening input file

Posted: Tue Oct 10, 2023 8:27 am
by KinawyM
Dear Daniele,

Yes, I am only interested in the optical spectrum and I have tried haydoc solver with one case and it worked well and fast. But when I try to widen the bands window, Yambo yields different errors in the step of creating the BSE kernel.

"You can also try to diagonalize as you are doing now by using parallel linear algebra (scalapack) by using the flag --enable-par-linalg when configuring."

I will try it out and see what Yambo says. Thanks again.

"Finally, please note that 2Ry in BSENGBlk and particularly for BSENGexx are most probably out of convergence.
Consider also that in the case you can lower the BSEBands window, this will reduce a lot the matrix dimension and it would help a lot."

Yeah, I am trying to converge the BSENGBlk and the BSEBands but it seems it will take quit a lot of time to just understand how to assign the correct number of cores to each case.

All the best,

Mohamed

Re: Empty Screening input file

Posted: Tue Oct 10, 2023 10:24 am
by Daniele Varsano
Dear Mohamed,

most probably, you need to increase the number of nodes to have available to build the kernel.
You can then try to use different combination of the parallelization strategy for building the kernel:
BS_CPU= " n_k n_eh n_t" # [PARALLEL] CPUs for each role
BS_ROLEs= "k eh t" # [PARALLEL] CPUs roles (k,eh,t)

To have an estimation of the memory needed, you can recompile the code using the flag --enable-memory-profile in the configure procedure.
This will give you an estimation of the memory used in each step of the calculation ion the LOG files.

Best,
Daniele