Yambo Kerr

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

Post Reply
michele guerrini
Posts: 11
Joined: Thu Mar 28, 2019 10:53 am

Yambo Kerr

Post by michele guerrini » Thu Mar 28, 2019 11:20 am

Dear developers, I would need to perform optical simulations at RPA level resolved in polarization and then to access (or extract in a log file) the full dielectric tensor by using three orthogonal polarizations per each frequency. I know there is the routine Yambo_kerr but, since I have never used it before, I was wondering how should I proceed.

Many thanks!

Michele
Dr. Michele Guerrini
Humboldt-Universität zu Berlin
Institut für Physik und IRIS Adlershof
Zum Grossen Windkanal 6, 12489 Berlin, Germany
e-mail: guerrini@physik.hu-berlin.de
Skype: merlin__88

User avatar
Davide Sangalli
Posts: 640
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
Contact:

Re: Yambo Kerr

Post by Davide Sangalli » Thu Mar 28, 2019 1:03 pm

Dear Michele,
it depends a bit on what you need to compute.

OPT 1
yambo kerr is able to directly compute the off-diagonal matrix elements of the dielectric tensor.
But i is limited to the xy plane. It works as follow.
(i) prepare the input file for a calculation in eh space (yambo -o b) using yambo_kerr in place of yambo
(ii) uncomment the EvalKerr flag
(iii) specify the direction "i" along which you want to compute the dielectric function. It must lie in the xy plane
For "i=x"

Code: Select all

% BLongDir
 1.000000 | 0.000000 | 0.000000 |        # [BSS] [cc] Electric Field
%
yambo_kerr will give you in output eps_ii and eps_ij where "j" is the direction rotated by 90 degree (in the xy plane) compared to i.
Accordingly "i=x" then "j=y".

OPT 2
Alternatively you can do six standard calculations with yambo specifying each time a different direction and then reconstruct the whole dielectric tensor.
Yo will need (1,1,0), (1,0,1), (1,0,0), (0,1,1), (0,1,0) and (0,0,1). There are relations you can find in the literature.
Again the relevant variable is

Code: Select all

% BLongDir
 1.000000 | 0.000000 | 0.000000 |        # [BSS] [cc] Electric Field
%
In this second case you will obtain only the symmetric part of the off diagonal elements, while in the first there will be an eventual contribution from the anti-symmetric part in case it exist in your system (for example in presence of a magnetizaton and SOC or of an external magnetic field)

Best,
D.
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/

michele guerrini
Posts: 11
Joined: Thu Mar 28, 2019 10:53 am

Re: Yambo Kerr

Post by michele guerrini » Thu Mar 28, 2019 2:42 pm

Dear Davide,
thank you very much for the advices. So, regarding Option 1 you are suggesting, if I would like to calculate the component eps_yz, I should choose to polarize the E field along i=y and for component eps_zx , along i=z ? Right ?

Bests

Michele
Dr. Michele Guerrini
Humboldt-Universität zu Berlin
Institut für Physik und IRIS Adlershof
Zum Grossen Windkanal 6, 12489 Berlin, Germany
e-mail: guerrini@physik.hu-berlin.de
Skype: merlin__88

User avatar
Davide Sangalli
Posts: 640
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
Contact:

Re: Yambo Kerr

Post by Davide Sangalli » Thu Mar 28, 2019 3:53 pm

Option one, for now, is limited to compute eps_xy basically.
So a way to get eps_yz without touching the code would be to rotate the atoms in the supercell, in such a way that "x" beomes "y" and "z" becomes "y" ...

Otherwise one could change the code. It is quite easy.
Just open the subroutine
src/pol_function/DIPOLE_project_along_q.F

Then "field_dir" is the direction defined in the input (what I called "i") and "dipole_dir" is the direction rotated by 90_degrees (what I called "j").
You can just manually change the two to get the ij component you prefer.
Pay attention to the "q0_def_norm" factor.
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/

Post Reply