How to set different third-order processes

Questions and doubts about features of non linear optic in Yambo (yamb_nl)

Moderators: Davide Sangalli, claudio, myrta gruning

Post Reply
lyzhao
Posts: 40
Joined: Tue May 31, 2016 8:02 am

How to set different third-order processes

Post by lyzhao » Sun Apr 12, 2020 8:43 am

Dear all,
Could you tell me how to set frequencies for different third-order processes in yambo_nl?
for example, X(w:w,-w,w), X(3w:w,w,w)

Best regards,
Youzhao Lan
China
Youzhao Lan
College of Chemistry and Materials Science,
Zhejiang Normal University,
Jinhua, Zhejiang, China.
HomePage: http://blog.sciencenet.cn/u/lyzhao

User avatar
claudio
Posts: 448
Joined: Tue Mar 31, 2009 11:33 pm
Contact:

Re: How to set different third-order processes

Post by claudio » Fri Apr 24, 2020 9:52 am

Dear Youzhao Lan

at present, the code can only calculate third-harmonic generation,
you set a laser field at frequency w and calculate the response a 3w.
In the new version we will introduce more possibilities

You can have a look to this tutorial

http://www.attaccalite.com/lumen/thg_in_silicon.html

best
Claudio
Claudio Attaccalite
[CNRS/ Aix-Marseille Université/ CINaM laborarory / TSN department
Campus de Luminy – Case 913
13288 MARSEILLE Cedex 09
web site: http://www.attaccalite.com

r.sanoj@bowdoin.edu
Posts: 2
Joined: Thu Nov 09, 2023 10:37 pm

Re: How to set different third-order processes

Post by r.sanoj@bowdoin.edu » Mon Feb 26, 2024 1:44 am

Hi,

With new tutorial for THG, we can define the field direction and can get response. For example, by define 1 1 1, we can get XXYZ, YXYZ and ZXYZ. I was curious how can can we get XXZZ or YYZZ or XXYY tensor. It's not very clear from the new tutorial. Can someone help with that?

User avatar
claudio
Posts: 448
Joined: Tue Mar 31, 2009 11:33 pm
Contact:

Re: How to set different third-order processes

Post by claudio » Mon Feb 26, 2024 4:01 pm

Dear Youzhao Lan

plase have a look to a updated version of the Tutorial here:

https://www.yambo-code.eu/wiki/index.ph ... fferent_X3

regarding the components you mention

> I was curious how can can we get XXZZ or YYZZ or XXYY

I think you should use more than one external field in input.
Now you can put up to three field in yambo_nl, for example two in Z and one in X and then measure the polarization in X
to get the XXZZ response.
You have to create a script to generate many inputs and run Yambo_nl for the different frequencies,
then you can modify YamboPy to analyse the data:

https://www.yambo-code.eu/wiki/index.ph ... th_YamboPy

we are working on a new version to calculate more complex response functions, we can include a loop on the three field in the new version to simplify these calculations

best
Claudio
Claudio Attaccalite
[CNRS/ Aix-Marseille Université/ CINaM laborarory / TSN department
Campus de Luminy – Case 913
13288 MARSEILLE Cedex 09
web site: http://www.attaccalite.com

r.sanoj@bowdoin.edu
Posts: 2
Joined: Thu Nov 09, 2023 10:37 pm

Re: How to set different third-order processes

Post by r.sanoj@bowdoin.edu » Mon Feb 26, 2024 5:41 pm

Dear Claudio,

Thank you for your response and answering the questions. I do have a follow-up question. When you said
"Now you can put up to three field in yambo_nl, for example two in Z and one in X and then measure the polarization in X to get the XXZZ response", you mean we can set the field direction to be
1 0 2

and, we can get

using 2nd and 3rd column to get XXZZ
using 4th and 5th column to get YXZZ
using 6th and 7th column to get ZXZZ.

Please let me know, if I am thinking in the right direction.

By the way, for now I am using bash script to create different input files for different direction and then measure the response.

Thank you in advance! Look forward to your reply.

Best,
Sanoj

User avatar
claudio
Posts: 448
Joined: Tue Mar 31, 2009 11:33 pm
Contact:

Re: How to set different third-order processes

Post by claudio » Thu Mar 07, 2024 11:18 am

Dear Sanoj

when I say more fields I mean that in the input you do yambo_nl -u p
and set fields as you want:

Code: Select all

% Field1_Freq
 0.100000 | 0.100000 |         eV    # [RT Field1] Frequency
%
Field1_NFreqs= 1                 # [RT Field1] Frequency
Field1_Int=  1000.00       kWLm2 # [RT Field1] Intensity
Field1_Width= 0.000000     fs    # [RT Field1] Width
Field1_kind= "SOFTSIN"           # [RT Field1] Kind(SIN|SOFTSIN| see more on src/modules/mod_fields.F)
Field1_pol= "linear"             # [RT Field1] Pol(linear|circular)
% Field1_Dir
 0.000000 | 1.000000 | 0.000000 |        # [RT Field1] Versor
%
Field1_Tstart= 0.010000    fs    # [RT Field1] Initial Time
% Field2_Freq
 1.000000 | 1.000000 |         eV    # [RT Field2] Frequency
%
Field2_NFreqs= 1                 # [RT Field2] Frequency
Field2_Int=  1000.00       kWLm2 # [RT Field2] Intensity
Field2_Width= 0.000000     fs    # [RT Field2] Width
Field2_kind= "SOFTSIN"           # [RT Field2] Kind(SIN|SOFTSIN| see more on src/modules/mod_fields.F)
Field2_pol= "linear"             # [RT Field2] Pol(linear|circular)
% Field2_Dir
 0.000000 | 0.000000 | 1.000000 |        # [RT Field2] Versor
%
Field2_Tstart= 0.010000    fs    # [RT Field2] Initial Time
% Field3_Freq
 0.100000 | 0.100000 |         eV    # [RT Field3] Frequency
%
Field3_NFreqs= 1                 # [RT Field3] Frequency
Field3_Int= 0.000000       kWLm2 # [RT Field3] Intensity
Field3_Width= 0.000000     fs    # [RT Field3] Width
Field3_kind= "none"              # [RT Field3] Kind(SIN|SOFTSIN| see more on src/modules/mod_fields.F)
Field3_pol= "linear"             # [RT Field3] Pol(linear|circular)
% Field3_Dir
 0.000000 | 0.000000 | 0.000000 |        # [RT Field3] Versor
%
Field3_Tstart= 0.010000    fs    # [RT Field3] Initial Time
but then you have to modify yambopy for the analysys.

Otherwise the solution that you propose, to use 1,0,2... probably it should work but I have to think about it

best
Claudio
Claudio Attaccalite
[CNRS/ Aix-Marseille Université/ CINaM laborarory / TSN department
Campus de Luminy – Case 913
13288 MARSEILLE Cedex 09
web site: http://www.attaccalite.com

Post Reply