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.