Coulomb cutoff

Deals with issues related to computation of optical spectra in reciprocal space: RPA, TDDFT, local field effects.

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

dariorocca
Posts: 1
Joined: Fri Apr 24, 2009 6:22 pm

Coulomb cutoff

Post by dariorocca » Fri Apr 24, 2009 8:34 pm

Dear developers
I was wondering how to setup a coulomb cutoff for 0D systems in the BSE calculations. It does not seem that there is any option
in the input variables.
Thanks
Dario Rocca, UC Davis

User avatar
myrta gruning
Posts: 242
Joined: Tue Mar 17, 2009 11:38 am
Contact:

Re: Coulomb cutoff

Post by myrta gruning » Sat Apr 25, 2009 5:20 pm

Hello Dario,

to activate the keywords relative to the coulomb interaction, i.e. coulomb cutoff and the random integration method use the option -c (either alone or in combination with the BSE or GW options).
>~/yambo_gpl/bin/yambo -c
open this input in the editor:
#
# GPL Version 3.2.1 Revision 387
# http://www.yambo-code.org
#
rim_cut # [R RIM CUT] Coulomb interaction
RandQpts=0 # [RIM] Number of random q-points in the BZ
RandGvec=0 RL # [RIM] Coulomb interaction RS components
CUTGeo= "none" # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere
% CUTBox
0.000 | 0.000 | 0.000 | # [CUT] [au] Box sides
%
CUTRadius= 0.000000 # [CUT] [au] Sphere/Cylinder radius
CUTCylLen= 0.000000 # [CUT] [au] Cylinder length

Cheers,
m
Dr Myrta Grüning
School of Mathematics and Physics
Queen's University Belfast - Northern Ireland

http://www.researcherid.com/rid/B-1515-2009

User avatar
Daniele Varsano
Posts: 4231
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: Coulomb cutoff

Post by Daniele Varsano » Mon Apr 27, 2009 10:01 am

Dear Dario,
effectively this part is not well documented.
The procedure to activate it has been previously described by Myrta.
For 0D system, you can use different shapes:

box, cylinder and sphere.
To activate it just type your choice in CutGeo variable, followed by the
direction where you want to cut (or principal axis in the case of a cylinder).
For example if you want a sphere:
CUTGeo= "sphere xyz"

If you are in 0D (gamma point) you don't need to perform any Random Integration,
it is needed if you want to cut the Coulomb potential with the box shape and you
have a finite grid of k-points.

The sphere is analytical, the other two are obtained numerically,
and it is easier to manage. So I suggest you to use the sphere, unless you have
very elongated molecules.

Adding the verbosity in your input you can see the shape in real space of your cut Coulomb potential,
by activating the flag Col_test. It is just a FFT if the G-space cut potential and it
will depend on the FFTGvec you are including in your calculation.

You can find more detail on the implementation and the condition of your supercell to
be fulfilled in the papers:

Phys. Rev. B 73, 205119 (2006)
Phys. Rev. B 56, 14972 (1997) for the sphere

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/

silvanabotti
Posts: 3
Joined: Fri Jun 26, 2009 10:34 am

Re: Coulomb cutoff

Post by silvanabotti » Fri Jun 26, 2009 12:36 pm

Hello everybody,
I am trying to understand how to use the cutoff to run BSE calculations for nanowires (I have a cell of about 30 a.u. in x and y directions)

I added something like that to my input for the calculation of W

RandQpts=3000000 # [RIM] Number of random q-points in the BZ
RandGvec=10 RL # [RIM] Coulomb interaction RS components
#QpgFull # [F RIM] Coulomb interaction: Full matrix
CUTGeo= "cylinder z" # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere
CUTRadius= 13.000000 # [CUT] [au] Sphere/Cylinder radius
CUTCylLen= 50.000000

I know that I have to check convergence with respect to the radius and the high of the cylinder.
Could you explain me if I need the random q-points and G-vec? I didn't get what they are..
What are these other keywords? In which case may I need them?
QpgFull # [F RIM] Coulomb interaction: Full matrix
% Em1Anys
0.000 | 0.000 | 0.000 | # [RIM] X Y Z Static Inverse dielectric matrix
%
IDEm1Ref=0 # [RIM] Dielectric matrix reference component 1(x)/2(y)/3(z)

Thanks,
Silvana
--
Dr. Silvana Botti
silvana.botti@polytechnique.edu

Present Address:
ETSF Scientific Development Center
Centro Joxe Mari Korta
Avenida de Tolosa, 72
20018 Donostia-San Sebastian
Spain
Tel +34 943 01 8534
Fax +34 943 01 8390

Permanent Address:
European Theoretical Spectroscopy Facility (ETSF)
and Laboratoire des Solides Irradiés (LSI)
Ecole Polytechnique
91128 Palaiseau
France
Tel +33 (0)1 6933 4523
Fax +33 (0)1 6933 4543

User avatar
Daniele Varsano
Posts: 4231
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: Coulomb cutoff

Post by Daniele Varsano » Fri Jun 26, 2009 3:52 pm

Dear Silvana,
Could you explain me if I need the random q-points and G-vec? I didn't get what they are..
The random q-points are used to integrate the BZ in particular sampling condition. For instances in
1D k-sampling the coulomb integral, as sum over q-point will not converge, so a 3D sampling in needed, and
the RIM (Random Integration method) perform such integral via Monte Carlo. If you use a cylinder-cutoff, the resulting Coulomb potential in q-space does not diverge anymore, so you don't have use it. It is different the situation for a box cutoff, because in order to calculate the components of a box-shaped Coulomb potential you need to perform an integration over the BZ. You can find some explanation of the RIM in the yambo paper that can be downloaded here, or in the doc file of the code.
I know that I have to check convergence with respect to the radius and the high of the cylinder.
Yes, the radius should be checked, anyway you can have an idea about a good value considering that the cylinder have to contain your system and does not touch any replica of your system. You can find more detail here
Phys. Rev. B 73, 205119 (2006), where there are reported the exact conditions (size of the cell vs cutoff parameters), anyway for my experience you don't need to fullfill exactly and you can save time.
If you are considering an infinte cylinder, you does not have to specify the length (L), the coulomb cutoff will be constructed infinte in one direction, except some components, that diverge, and a finite long cylinder is considered, for that components, the larger available value for L=1/dk is used. dk is the spacing of your k-mesh. So the convergence have to be checked on the k-points sampling.

Hope it helps,

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/

silvanabotti
Posts: 3
Joined: Fri Jun 26, 2009 10:34 am

Re: Coulomb cutoff

Post by silvanabotti » Fri Jun 26, 2009 5:12 pm

Dear Daniele,
yes, it helps!
thank you,
Silvana

--
Dr. Silvana Botti
silvana.botti@polytechnique.edu

Present Address:
ETSF Scientific Development Center
Centro Joxe Mari Korta
Avenida de Tolosa, 72
20018 Donostia-San Sebastian
Spain
Tel +34 943 01 8534
Fax +34 943 01 8390

Permanent Address:
European Theoretical Spectroscopy Facility (ETSF)
and Laboratoire des Solides Irradiés (LSI)
Ecole Polytechnique
91128 Palaiseau
France
Tel +33 (0)1 6933 4523
Fax +33 (0)1 6933 4543

hplan
Posts: 58
Joined: Thu Mar 26, 2009 2:26 pm

Re: Coulomb cutoff

Post by hplan » Tue Jul 28, 2009 2:26 pm

Dear Daniele:
I have a question about Coulomb cutoff.
When we define the cutoff geometry , whatever cylinder, box or sphere, we just consider its border side like radius or box length. But where is the origin for these geometries ? Does it mean that yambo takes the origin of supercell for it as default ?
Since when i applied a 'box' coulomb cutoff along z direction,i found the potentials along z direction are almost symmery :

Code: Select all

#  X [au]     Z [au]     V_Dlat     V_Rlat
 -2.388     -31.20      0.000     -.6147E-3
 -2.388     -28.49      0.000     -.1077E-2
 -2.388     -25.77      0.000     0.4065E-3
 -2.388     -23.06      0.000     0.1607E-3
 -2.388     -20.35      0.000     -.1042E-2
 -2.388     -17.63      0.000     -.1672E-2
 -2.388     -14.92      0.000     -.3638E-2
  -2.38822  -12.20870    0.08039    0.07841
  -2.38822   -9.49565    0.10213    0.09776
 -2.388218  -6.782608   0.139067   0.138886
 -2.388218  -4.069567   0.211928   0.208915
 -2.388218  -1.356522   0.364088   0.365754
 -2.388218   1.356522   0.364088   0.365754
 -2.388218   4.069565   0.211928   0.208916
 -2.388218   6.782608   0.139067   0.138886
  -2.38822    9.49565    0.10213    0.09776
  -2.38822   12.20869    0.08039    0.07841
 -2.388      14.92      0.000     -.3638E-2
 -2.388      17.63      0.000     -.1672E-2
 -2.388      20.35      0.000     -.1042E-2
 -2.388      23.06      0.000     0.1607E-3
 -2.388      25.77      0.000     0.4065E-3
 -2.388      28.49      0.000     -.1077E-2
 -2.388      31.20      0.000     -.6147E-3
The input setting for this cutoff is below, would you please give me some comments or suggestion ?

Code: Select all

#
# .-Input file : yambo.in
# | rim_cut                      # [R RIM CUT] Coulomb interaction
# | RandQpts= 1000000            # [RIM] Number of random q-points in the BZ
# | RandGvec= 1              RL  # [RIM] Coulomb interaction RS components
# | CUTGeo= "box z"              # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere
# | % CUTBox
# |   0.00000 |  0.00000 | 26.00000 |      # [CUT] [au] Box sides
# | %
# | CUTRadius= 0.000000          # [CUT] [au] Sphere/Cylinder radius
# | CUTCylLen= 0.000000          # [CUT] [au] Cylinder length
# | CUTCol_test                  # [CUT] Perform a cutoff test in R-space


Regards,
Hai-Ping
Hai-Ping LAN,
Department Of Electronics,
Peking University, 100871,Beijing, CHINA

User avatar
Daniele Varsano
Posts: 4231
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: Coulomb cutoff

Post by Daniele Varsano » Wed Jul 29, 2009 9:36 am

Dear Hai PIng,
the cutoff coulomb potential, as the bare potential in real space is a function
of |r-r'|, so there is not any origin defined, but is a function of distance
between two point in your simulation box. So it have to be symmetric
with respect each point. In other word, every point in
your simulation will interact with another point at distance r, with
the function that you can see in the file you attached.
So, in order to have effect you have to take care of the length of
your cutoff box with respect the cell volume and the system size in
order to avoid interaction between replicas of your system.
In the file you attached, the third column is the cutoff potential in real space constructed
by "hand" (1/r beteween -L/2 and L/2 and 0 otherwie) , the 4th column if the FT
of your the G-component of the potential you calculate, and as you can see they reseamble each other.

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/

yping
Posts: 22
Joined: Sat Apr 04, 2009 4:35 am

Re: Coulomb cutoff

Post by yping » Thu Apr 22, 2010 6:20 pm

Hi, developers

I have some troubles of running TDHF with one dimensional coulomb cutoff (BTW, I didn't test other dimensions ).
In the output, there are several warnings which I don't completely understand:

[05] External QP corrections (K)
================================
[WARNING]DB () not found

[WARNING] Missing non-local pseudopotential contribution

In the end the calculation either stuck at "[07.01] Diagonalization solver" or skip Bethe-Salpeter equation solvers.

This is my input of TDHF calculation: (in fact the system is the H chain example in Yambo tutorial):

optics # [R OPT] Optics
tdhf
bse # [R BSK] Bethe Salpeter Equation.
bss # [R BSS] Bethe Salpeter Equation solver
rim_cut # [R RIM CUT] Coulomb interaction
RandQpts=0 # [RIM] Number of random q-points in the BZ
RandGvec=0 RL # [RIM] Coulomb interaction RS components
CUTGeo= "cylinder x" # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere
% CUTBox
0.000 | 0.000 | 0.000 | # [CUT] [au] Box sides
%
CUTRadius= 12.000000 # [CUT] [au] Sphere/Cylinder radius
#CUTCylLen= 0.000000 # [CUT] [au] Cylinder length
% KfnQP_E
3.500000 | 1.000000 | 1.000000 | # [EXTQP BSK BSS] E parameters (c/v)
%
BSresKmod= "xc" # [BSK] Resonant Kernel mode. (`x`;`c`;`d`)
% BSEBands
1 | 2| # [BSK] Bands range
%
FFTGvecs= 23583 RL # (FFT) Plane-waves
BSENGexx= 23583 RL # [BSK] Exchange components
BSENGBlk= 23583 RL # [BSK] Screened interaction block size
BSSmod= "d" # [BSS] Solvers `h/d/i/t`
% BEnRange
0.00000 | 15.00000 | eV # [BSS] Energy range
%
% BDmRange
0.0010000 | 0.0010000 | eV # [BSS] Damping range
%
BEnSteps= 100 # [BSS] Energy steps
% BLongDir
1.000000 | 0.000000 | 0.000000 | # [BSS] [cc] Electric Field
%
WRbsWF # (BSS) Write to disk excitonic the FWs

Is anything wrong with my calculation? (In fact, I have succeeded in BSE calculation with infinity coulomb cutoff)
Thanks a lot!

yuan ping
Ph.D. student
Department of Chemistry, University of California, Davis

User avatar
Daniele Varsano
Posts: 4231
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: Coulomb cutoff

Post by Daniele Varsano » Thu Apr 22, 2010 10:03 pm

Dear Yuan,
what's happening is quite strange, and what's look to me stranger it is that it has to do with the coulomb cutoff potential.
I was not able to reproduce your error, but at the moment I just tried to use your input file with a smaller number
of BSENGBlk. When I use the same number of your input, I get also the code stacks, but this not depend if
I use a cutoff potential or not, and I'm not sure if it is really stacked, I will look at it more deeply soon and
I will let you know.

Anyway, in order to clarify some points:
[WARNING]DB () not found

[WARNING] Missing non-local pseudopotential contribution
These warnings they are not related with the cutoff, but anyway they should not be there:
1) The first one, it looks yambo is looking fot a database for QP correction, while in input you are correcting
the energies with a scissor.
2) The second one, yambo does not find the contribution coming from the non-local part of PP. This is a known
problem if you produced the KS structure with pwscf, but if you are using the tutorial database it should not be there.

Have you produced your database using pwscf, or you used the one provided in the tutorial?
Is anything wrong with my calculation? (In fact, I have succeeded in BSE calculation with infinity coulomb cutoff)
Thanks a lot!
At first glance it looks correct, but what do you mean that you succeeded with infinity coulomb cutoff?
in your input you have commented the CUTCylLen variable. If you put is as zero, this correspond to an
infinite cylinder (it could be misleading and we should change this!!). Please let me know.

Let me ask you to try to reproduce the same error you encountered starting a calculation by scratch, and
what happens to you when lowering the BSENGBlk by one or two order of magnitude? I suspect that what
your experiencing is related to the huge number of G's in this term.

Please let us know and we will look it more deeply if there is a problem in the tdhf part.


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/

Post Reply