BSE with / without symmetry give different results

You can post here problems arising when using the devel release of Yambo. Issues as parallelization strategy, performance issues and other technical aspects realted to the new release.

Moderators: Daniele Varsano, andrea.ferretti, andrea marini, Conor Hogan, myrta gruning

BSE with / without symmetry give different results

Postby wufeng » Wed Apr 18, 2018 8:33 pm

Hi all,
I found in my BSE calculation of Si, with different symmetry setting in QE, the final BSE dielectric functions are different beyond numerical error.

The two calculations are attached. The only difference is nosym=.true. and noinv=.true. in QE nscf calculation before yambo runs.

I wonder if it is a correct behavior or there is something wrong in the input. Thanks.



Best,
Feng
You do not have the required permissions to view the files attached to this post.
Feng Wu
Chemistry and Biochemistry department,
University of California, Santa Cruz
95064 CA, United States
wufeng
 
Posts: 24
Joined: Fri Dec 15, 2017 4:17 am

Re: BSE with / without symmetry give different results

Postby Daniele Varsano » Thu Apr 19, 2018 9:18 am

Dear Feng,
thanks for reporting, we will look into it in detail.

Best,
Daniele
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/
User avatar
Daniele Varsano
 
Posts: 1950
Joined: Tue Mar 17, 2009 2:23 pm

Re: BSE with / without symmetry give different results

Postby Davide Sangalli » Thu Apr 19, 2018 9:40 am

Dear Feng,
I think the reason of the differences is that yambo is imposing two different cutoff on the correlation.

See the two different messages:
Code: Select all
[BSE-W] W size forced by symmetry to be :  65

and
Code: Select all
[BSE-W] W size forced by symmetry to be : 27


I do not remember why it is doing that. The subroutine responsible for it is src/bse/K_driver.F
Code: Select all
 !
 ! W RL size setup looking at the max index of G-G'
 ! =========
 !
 if (.not.l_rpa_IP) then
   Max_G_m_G=eval_G_minus_G(BS_n_g_W,maxval(qindx_B(:,:,2)))
   if (BS_n_g_W/= Max_G_m_G ) then
     BS_n_g_W= Max_G_m_G
     call warning (' W size reduced due to symmetry constraints')
     call msg('s','[BSE-W] W size forced by symmetry to be :',BS_n_g_W)
   endif
 endif


Can you try to change the check into
Code: Select all
   if (BS_n_g_W> Max_G_m_G ) then

recompile the code and run both cases with
Code: Select all
BSENGBlk=  27          RL

?

The results should be identical (also you have to pay attention not to break degenerate bands when you select the band range in the BSE).

Then
i) I do not remember why the check is not just ">" but it is "/=" (it maybe an error to fix)
ii) I will test if we can avoid such reduction somehow. I think it is in principle possible. It just maybe more demanding numerically

Best,
D.
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
http://www.ism.cnr.it/en/davide-sangalli-cv/
http://www.max-centre.eu/
User avatar
Davide Sangalli
 
Posts: 314
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy

Re: BSE with / without symmetry give different results

Postby wufeng » Fri Apr 20, 2018 12:03 am

Davide Sangalli wrote:Dear Feng,
I think the reason of the differences is that yambo is imposing two different cutoff on the correlation.

See the two different messages:
Code: Select all
[BSE-W] W size forced by symmetry to be :  65

and
Code: Select all
[BSE-W] W size forced by symmetry to be : 27


I do not remember why it is doing that. The subroutine responsible for it is src/bse/K_driver.F
Code: Select all
 !
 ! W RL size setup looking at the max index of G-G'
 ! =========
 !
 if (.not.l_rpa_IP) then
   Max_G_m_G=eval_G_minus_G(BS_n_g_W,maxval(qindx_B(:,:,2)))
   if (BS_n_g_W/= Max_G_m_G ) then
     BS_n_g_W= Max_G_m_G
     call warning (' W size reduced due to symmetry constraints')
     call msg('s','[BSE-W] W size forced by symmetry to be :',BS_n_g_W)
   endif
 endif


Can you try to change the check into
Code: Select all
   if (BS_n_g_W> Max_G_m_G ) then

recompile the code and run both cases with
Code: Select all
BSENGBlk=  27          RL

?

The results should be identical (also you have to pay attention not to break degenerate bands when you select the band range in the BSE).

Then
i) I do not remember why the check is not just ">" but it is "/=" (it maybe an error to fix)
ii) I will test if we can avoid such reduction somehow. I think it is in principle possible. It just maybe more demanding numerically

Best,
D.


Dear Davide,
Thanks for the instruction, but I tested this code fix and unfortunately no change.
The qindx_B (and Max_G_m_G) is already different between two cases. The value maxval(qindx_B(:,:,2)) in the case with symmetry is 45 while that in the case without symmetry is 27.
This can be traced back to the difference of Xk%qtbz and q%qtbz between two cases.


Best,
Feng
Feng Wu
Chemistry and Biochemistry department,
University of California, Santa Cruz
95064 CA, United States
wufeng
 
Posts: 24
Joined: Fri Dec 15, 2017 4:17 am

Re: BSE with / without symmetry give different results

Postby Davide Sangalli » Fri Apr 20, 2018 8:18 am

The qindx_B (and Max_G_m_G) is already different between two cases. The value maxval(qindx_B(:,:,2)) in the case with symmetry is 45 while that in the case without symmetry is 27.
This can be traced back to the difference of Xk%qtbz and q%qtbz between two cases.


This is why I suggested to set:
Code: Select all
BSENGBlk=  27          RL

in input. Together with the change in the code you'll have both cases running at that cutoff.

Then the check to the max value of qindx_B(:,:,2) can probably be overcome/changed.
But that would require some coding and testing.

Best,
D.
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
http://www.ism.cnr.it/en/davide-sangalli-cv/
http://www.max-centre.eu/
User avatar
Davide Sangalli
 
Posts: 314
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy

Re: BSE with / without symmetry give different results

Postby wufeng » Sat Apr 21, 2018 12:50 am

Davide Sangalli wrote:
The qindx_B (and Max_G_m_G) is already different between two cases. The value maxval(qindx_B(:,:,2)) in the case with symmetry is 45 while that in the case without symmetry is 27.
This can be traced back to the difference of Xk%qtbz and q%qtbz between two cases.


This is why I suggested to set:
Code: Select all
BSENGBlk=  27          RL

in input. Together with the change in the code you'll have both cases running at that cutoff.

Then the check to the max value of qindx_B(:,:,2) can probably be overcome/changed.
But that would require some coding and testing.

Best,
D.


Hi Davide,

Thanks, yes that is true, with a low BSENGBlk = 27 RL two calculations are identical, as large Gvectors in qindx_B are removed.


Best,
Feng
Feng Wu
Chemistry and Biochemistry department,
University of California, Santa Cruz
95064 CA, United States
wufeng
 
Posts: 24
Joined: Fri Dec 15, 2017 4:17 am


Return to Yambo version 4.0

Who is online

Users browsing this forum: No registered users and 1 guest

cron