Yambo Kerr
Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, andrea marini, Daniele Varsano, Conor Hogan
-
michele guerrini
- Posts: 11
- Joined: Thu Mar 28, 2019 10:53 am
Yambo Kerr
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
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
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
- Davide Sangalli
- Posts: 662
- Joined: Tue May 29, 2012 4:49 pm
- Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
- Contact:
Re: Yambo Kerr
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"
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
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.
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
%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
%Best,
D.
Davide Sangalli, PhD
Piazza Leonardo Da Vinci, 32, 20133 – Milano
CNR, Istituto di Struttura della Materia (ISM)
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/
Piazza Leonardo Da Vinci, 32, 20133 – Milano
CNR, Istituto di Struttura della Materia (ISM)
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
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
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
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
- Davide Sangalli
- Posts: 662
- Joined: Tue May 29, 2012 4:49 pm
- Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
- Contact:
Re: Yambo Kerr
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.
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
Piazza Leonardo Da Vinci, 32, 20133 – Milano
CNR, Istituto di Struttura della Materia (ISM)
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/
Piazza Leonardo Da Vinci, 32, 20133 – Milano
CNR, Istituto di Struttura della Materia (ISM)
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/
-
Ehsanulazim
- Posts: 15
- Joined: Fri Nov 01, 2024 3:04 am
Re: Yambo Kerr
Hi Professor,
Would anybody please suggest any reference to find the relation:
Lets say for eps_xy and eps_yz:
eps_xy = eps @(1,1,0) - [eps @(1,0,0)+eps @(0,1,0) / 2]
eps_yz = eps @(0,1,1) - [eps @(0,1,0)+eps @(0,0,1) / 2]
Thank you
Best regards
Ehsanul Azim
MSc, Mechanical Engg, UTRGV, USA
Would anybody please suggest any reference to find the relation:
I tried a lot but couldn't find very specific relation for that. Would it be something as followsYo 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.
Lets say for eps_xy and eps_yz:
eps_xy = eps @(1,1,0) - [eps @(1,0,0)+eps @(0,1,0) / 2]
eps_yz = eps @(0,1,1) - [eps @(0,1,0)+eps @(0,0,1) / 2]
Thank you
Best regards
Ehsanul Azim
MSc, Mechanical Engg, UTRGV, USA
- Davide Sangalli
- Posts: 662
- Joined: Tue May 29, 2012 4:49 pm
- Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
- Contact:
Re: Yambo Kerr
Dear Ehsanul Azim,
I have some old notes with the following relations (right now I do not find the reference to them) However, with the more recent implementation (yambo 5.3 for example) you can directly get all matrix elements of the dielectric tensor.
By setting in input
you will get epsilon_{ii} and epsilon_{ij} with j an axis rotated by 90° w.r.t. i
The "i" axis is determined by
The "j" axis is determined by
The two values above are to get epsilon_{xx} and epsilon_{xy}
By setting "xz" you would get also epsilon_{xz}.
Similarly you can put "yx" and "yz" with
"zx" and "zy" with
See also here: https://www.lumen-code.org/wiki/index.p ... err_effect
Please double check the output, because this part of the code is not used very much. The values of BSE_dipole_geometry are given in input to the subroutine "v_rotate" inside src/modules/mod_vec_operate.F, called by src/bse/K_dipoles.F
You can easyly check the code there
Best,
D.
I have some old notes with the following relations (right now I do not find the reference to them) However, with the more recent implementation (yambo 5.3 for example) you can directly get all matrix elements of the dielectric tensor.
By setting in input
Code: Select all
BSEprop="abs kerr"The "i" axis is determined by
Code: Select all
% BLongDir
1.000000 | 0.000000 | 0.000000 | # [BSS] [cc] Electric Field
%
Code: Select all
BSEdips="xy" # [BSS] Can be "trace/none" or "xy/xz/yz" to define off-diagonal rotation plane By setting "xz" you would get also epsilon_{xz}.
Similarly you can put "yx" and "yz" with
Code: Select all
% BLongDir
0.000000 | 1.000000 | 0.000000 | # [BSS] [cc] Electric Field
%
Code: Select all
% BLongDir
0.000000 | 0.000000 | 1.000000 | # [BSS] [cc] Electric Field
%
Please double check the output, because this part of the code is not used very much. The values of BSE_dipole_geometry are given in input to the subroutine "v_rotate" inside src/modules/mod_vec_operate.F, called by src/bse/K_dipoles.F
You can easyly check the code there
Best,
D.
You do not have the required permissions to view the files attached to this post.
Davide Sangalli, PhD
Piazza Leonardo Da Vinci, 32, 20133 – Milano
CNR, Istituto di Struttura della Materia (ISM)
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/
Piazza Leonardo Da Vinci, 32, 20133 – Milano
CNR, Istituto di Struttura della Materia (ISM)
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/
-
Ehsanulazim
- Posts: 15
- Joined: Fri Nov 01, 2024 3:04 am
Re: Yambo Kerr
Hi Professor,
Thank you so much for your reply. Would you please check whether the following statement is right or wrong? I want to make sure that I am going in the right direction.
If we want to calculate dielectric tensor for anisotropic materials where ϵ_ij or ϵ_ji is not equal to zero,
1) If the material is nonmagnetic and symmetric (ϵ_ij = ϵ_ji), we can use the six standard calculations in reciprocal space. Even if the material is magnetic and it has a symmetric part (ϵ_ij = ϵ_ji), we can use the six standard calculations.
2)If the material is magnetic and antisymmetric (ϵ_ij != ϵ_ji), we should use Yambo Kerr in the e–h space.
Thank you
Best regards
Ehsanul Azim
MSc, Mechanical Engg, UTRGV, USA
Thank you so much for your reply. Would you please check whether the following statement is right or wrong? I want to make sure that I am going in the right direction.
If we want to calculate dielectric tensor for anisotropic materials where ϵ_ij or ϵ_ji is not equal to zero,
1) If the material is nonmagnetic and symmetric (ϵ_ij = ϵ_ji), we can use the six standard calculations in reciprocal space. Even if the material is magnetic and it has a symmetric part (ϵ_ij = ϵ_ji), we can use the six standard calculations.
2)If the material is magnetic and antisymmetric (ϵ_ij != ϵ_ji), we should use Yambo Kerr in the e–h space.
Thank you
Best regards
Ehsanul Azim
MSc, Mechanical Engg, UTRGV, USA
- Davide Sangalli
- Posts: 662
- Joined: Tue May 29, 2012 4:49 pm
- Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
- Contact:
Re: Yambo Kerr
Dear Ehsanul Azim,
I think you are right.
Indeed, the kerr would be proportional, in the most general case, to the anti-symmetric term eps^A_{ij} = 1/2 (eps_{ij} - eps_{ji})
I think you are right.
Indeed, the kerr would be proportional, in the most general case, to the anti-symmetric term eps^A_{ij} = 1/2 (eps_{ij} - eps_{ji})
Davide Sangalli, PhD
Piazza Leonardo Da Vinci, 32, 20133 – Milano
CNR, Istituto di Struttura della Materia (ISM)
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/
Piazza Leonardo Da Vinci, 32, 20133 – Milano
CNR, Istituto di Struttura della Materia (ISM)
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/