GW BSE for Hexagonal III Nitride SC

Post here any question you encounter when running the scripts of the yambo-py suite. Post here problem strictly to the python interface as problem coming from the yambo runs should go in the appropriate subforum.

Moderators: palful, amolina, mbonacci

Post Reply
deliciousnai
Posts: 10
Joined: Fri May 26, 2017 11:47 am
Location: Indonesia
Contact:

GW BSE for Hexagonal III Nitride SC

Post by deliciousnai » Sun Jul 09, 2017 2:16 am

Dear Developers,

Before I ask my main question, can anybody help me to understand the BN tutorial?
I did the tutorial for GW caculation of BN, I used "gw_conv_bn.py" to do GW calculation and when I plot the result, I got this:
GW_quasipar_path.png
its a bit 'different' with the tutorial on http://yambopy.readthedocs.io/en/latest/tutorial.html, I wonder if I use wrong package, or maybe I did something wrong with my steps..

and I don't know what is the use of "cols=(lambda x: x[2]+x[3],2)" in this code (gw_conv_bn.py), can you explain it to me?

Code: Select all

    ya.plot_gw_path('qp',path, cols=(lambda x: x[2]+x[3],2))
last is BSE calculation of BN, how tp get more or less exciton in my analyze calculation (bse_bn.py -a)?

Regards,
Naima
You do not have the required permissions to view the files attached to this post.
Naima Amaliah
Physics Department Undergraduate Student
University of Indonesia

deliciousnai
Posts: 10
Joined: Fri May 26, 2017 11:47 am
Location: Indonesia
Contact:

Re: GW BSE for Hexagonal III Nitride SC

Post by deliciousnai » Sun Jul 09, 2017 5:40 am

I have another question, why my calculation shows more gap than tutorial?
figure_xbn.png
I attached my py code.

Best,
Naima
You do not have the required permissions to view the files attached to this post.
Naima Amaliah
Physics Department Undergraduate Student
University of Indonesia

miranda.henrique
Posts: 16
Joined: Thu Jul 23, 2015 2:34 pm

Re: GW BSE for Hexagonal III Nitride SC

Post by miranda.henrique » Mon Jul 10, 2017 9:18 pm

Dear Naima,

With respect to the GW calculation:
This is strange, I just ran the tutorial myself with the latest version from github and I get exactly the same figure as in the tutorial.
Did you modify anything in the scripts provided?

Can you post one of the yambo report (r-*) files?
What is the version of yambo you are using?

As for the question about the "cols= ":
This is an option to choose which column of the output file (o-*) to plot.
It is intended to give more flexibility to the user in representing the data.
It is a tuple where each element is either an index denoting to column or a lambda function that accesses the column.
For example cols=(lambda x: x[0],) will access the first column.

We intend make this function more user friendly.
The scripts should read the data from the ndb.QP files produced directly with yambo and have simple options to plot the data like 'DFT ' or 'GW'.
I will update this as soon as I have time

As for the question related to BSE:
In the tutorial, it is mentioned that the calculation shown is different from the one in the scripts (it was generated with a 30x30 grid).
Henrique Pereira Coutada Miranda
Institute of Condensed Matter and Nanosciences
http://henriquemiranda.github.io/
UNIVERSITÉ CATHOLIQUE DE LOUVAIN

deliciousnai
Posts: 10
Joined: Fri May 26, 2017 11:47 am
Location: Indonesia
Contact:

Re: GW BSE for Hexagonal III Nitride SC

Post by deliciousnai » Tue Jul 11, 2017 5:11 pm

Dear Miranda,

Thank you for your reply! You are right, I copied my script from a friend and I just realized the script was changed. I got the latest version from github and the GW result shows the same with figure.
Can I ask about BSE convergence parameters? The tutorial shows that we need to converge BSE with 'bse_conv_bn.ps', I left all parameters unchanged from default but when I run, my terminal shows this:

Code: Select all

nscf calculation found!
running job...
done!

dielectric
reference.in reference
running job...
--------------------------------------------------------------------------
mpirun has exited due to process rank 0 with PID 2810 on
node delico exiting improperly. There are three reasons this could occur:

1. this process did not call "init" before exiting, but others in
the job did. This can cause a job to hang indefinitely while it waits
for all processes to call "init". By rule, if one process calls "init",
then ALL processes must call "init" prior to termination.

2. this process called "init", but exited without calling "finalize".
By rule, all processes that call "init" MUST call "finalize" prior to
exiting or it will be considered an "abnormal termination"

3. this process called "MPI_Abort" or "orte_abort" and the mca parameter
orte_create_session_dirs is set to false. In this case, the run-time cannot
detect that the abort call was an abnormal termination. Hence, the only
error message you will receive is this one.

This may have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).

You can avoid this message by specifying -quiet on the mpirun command line.

--------------------------------------------------------------------------
done!
but then when I checked folder bse_conv and open all (l-*) file, all of convergence calculation were done. After that, I try to run

Code: Select all

yambopy plotem1s bse_conv/FFTGvecs* bse_conv/reference
again, terminal shows:

Code: Select all

Traceback (most recent call last):
  File "/usr/local/bin/yambopy", line 340, in <module>
    ycmd = YambopyCmd(*sys.argv)
  File "/usr/local/bin/yambopy", line 333, in __init__
    self.cmd = cmdclass(args[2:]) 
  File "/usr/local/bin/yambopy", line 102, in __init__
    epsilons.append([folder,x,np.eye(ys.ngvectors)+vX])
ValueError: operands could not be broadcast together with shapes (5,5) (19,) 
and then no plot generated. Is this also happen because I didn't generate it with 30x30 grid?

Next is about your BSE calculation from your input in 'bse_bn.py'

Code: Select all

    y['FFTGvecs'] = [30,'Ry']
    y['NGsBlkXs'] = [1,'Ry']
    y['BndsRnXs'] = [1,80]
    y['BSEBands'] = [3,6]
    y['BEnSteps'] = 500
    y['BEnRange'] = [[0.0,10.0],'eV']
    y['KfnQP_E']  = [2.91355133,1.0,1.0] #some scissor shift
I just want to ask is it alright to put 'BSEBands' with only 4 bands ( 3 | 6 | )? And why did you put 2.91355133 in here:

Code: Select all

% KfnQP_E
 2.91355133 | 1.0 | 1.0 | 
Where did you got this number, and what is the use of changing this parameter?
Last but not least, analyze BSE. I understand that this script using "ypp" and convert result to ".json" to make plot later. What I can't understand is, is every peak in picture really shows exciton state and energy? If yes then how is the actual calculation works? My advisor said it's pretty strange how YAMBO can do BSE calculation in 'narrow' time span and not using too much memory, I was assuming that YAMBO can do it because we only need to calculate on certain bands (not all bands) but I don't understand its physical meaning (as example in tutorial, it only need to calculate the 4th and 5th band for BN because the last occupied band is 4 and first empty band is 5) why we don't have to calculate all bands? Can you help me to understand it so I can explain to my advisor?

I attached run log and output of reference and one of convergence test in attachment.

Best,
Naima.
You do not have the required permissions to view the files attached to this post.
Naima Amaliah
Physics Department Undergraduate Student
University of Indonesia

miranda.henrique
Posts: 16
Joined: Thu Jul 23, 2015 2:34 pm

Re: GW BSE for Hexagonal III Nitride SC

Post by miranda.henrique » Thu Jul 13, 2017 9:13 am

Dear Naima,

For the BSE convergence parameters, you can start from the tutorial and increase the values until the results do not change.
You can look in the literature for BSE calculations of hBN and use the reported values:
https://doi.org/10.1103/PhysRevB.94.125303

When there is an error like the mpirun error you got, you have to look in the yambo report and log files to find what was the cause.
As for the issue, you had when reading the screening with yambopy, there was indeed a problem which I fixed now.
You can check the new version with:
git pull
python setup.py install

As for the bands, to include this has to be carefully checked.
The 2.91 eV value is a scissor operator to simulate the opening of the gap due to the GW corrections.
This is only for demonstration purposes, for more realistic values check the relevant literature.

For your final question: yes, each peak is an excitonic energy.
The calculation shown in the tutorial is using very low convergence parameters so that it can be run on a personal computer.
When you start to increase the convergence, the calculation starts to take more time.
Henrique Pereira Coutada Miranda
Institute of Condensed Matter and Nanosciences
http://henriquemiranda.github.io/
UNIVERSITÉ CATHOLIQUE DE LOUVAIN

deliciousnai
Posts: 10
Joined: Fri May 26, 2017 11:47 am
Location: Indonesia
Contact:

Re: GW BSE for Hexagonal III Nitride SC

Post by deliciousnai » Fri Jul 14, 2017 2:04 am

Dear Miranda,
miranda.henrique wrote:Dear Naima,
As for the issue, you had when reading the screening with yambopy, there was indeed a problem which I fixed now.
You can check the new version with:
git pull
python setup.py install
where should I run "git pull"? Is it in yambo-master folder? or yambopy-master? or neither?

Regards,
Naima
Naima Amaliah
Physics Department Undergraduate Student
University of Indonesia

miranda.henrique
Posts: 16
Joined: Thu Jul 23, 2015 2:34 pm

Re: GW BSE for Hexagonal III Nitride SC

Post by miranda.henrique » Fri Jul 14, 2017 6:07 am

Dear Naima,

You should run git pull in the yambopy-master folder

Cheers,
Henrique Pereira Coutada Miranda
Institute of Condensed Matter and Nanosciences
http://henriquemiranda.github.io/
UNIVERSITÉ CATHOLIQUE DE LOUVAIN

Post Reply