LRC

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

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

Re: LRC

Post by Daniele Varsano » Sat Feb 22, 2020 6:36 pm

Dear Haseeb,
you can estimate the plasma frequency by looking at the peak of the electron energy loss function (eels).
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/

haseebphysics1
Posts: 169
Joined: Sat Aug 17, 2019 2:48 pm

Re: LRC

Post by haseebphysics1 » Sat Feb 22, 2020 7:42 pm

Thanks for your quick response!

Yes, plasma frequency can be determined by electron energy loss spectroscopy(EELS). Experimentally, in EELS we accelerate electrons and shoot them through a thin specimen with a well-defined energy.
Q0: Here we are throwing light to pull out the electrons to accelerate?

Q1: Do I really need to be careful in the energy range for EELS? I've done absorption spectra up to 10 eV, I will do the eels up to this energy range and max peak position will correspond to the plasma frequency (in my given energy range) of the semiconductor? Am I correct?

Q2: I need to pick my q-point (2nd number in Xd parameter), but I don't know which q-point to pick from a large number of points (976 in my case!) or a range of q-points should be provided?

% QpntsRXd
1 | 976 | # [Xd] Transferred momenta

Q3: Can I use RPA and TDDFT theories and all the stuff of absorption spectroscopy in eels finding as well?

Regards,
Haseeb Ahmad
MS - Physics,
LUMS - Pakistan

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

Re: LRC

Post by Daniele Varsano » Sat Feb 22, 2020 8:27 pm

Q0: Here we are throwing light to pull out the electrons to accelerate?
We are not throwing anything, we are looking at the response of the system to an electric field in dipolar approximation. The response change if you consider transverse of longitudinal fields.
Q2: I need to pick my q-point (2nd number in Xd parameter), but I don't know which q-point to pick from a large number of points (976 in my case!) or a range of q-points should be provided?
If you want to look at the plasmon dispersion you calculate for different q, otherwise, you look at it at q=0.
Q3: Can I use RPA and TDDFT theories and all the stuff of absorption spectroscopy in eels finding as well?
Yes

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/

haseebphysics1
Posts: 169
Joined: Sat Aug 17, 2019 2:48 pm

Re: LRC

Post by haseebphysics1 » Mon Feb 24, 2020 12:23 pm

Dear Daniele, for eels and plasma frequency calculations, I chose two q points (1|2) and hence obtaining two output files for each q point (output attached).

Q1: To get the eels spectra which data is to be plotted against the energy, q1 /q2?

Q2: Moreover, there are two columns in eels ( EEL-Im[2] EEL-Re[3]) for imaginary and real eels spectra in each file, what does it mean and which one to plot for plasma frequency?

o.eel_q1_inv_LRC_dyson
o.eps_q1_inv_LRC_dyson
o.eel_q2_inv_LRC_dyson
o.eps_q2_inv_LRC_dyson

Q3: You can see the data in my output attached files since my area of interest is 0-6 eV and I have calculated the spectra for 0-10 eV but eels values seem to be increasing continuously even up to 10 eV! So, according to you, which value to take as plasma frequency (for my data as attached).

Thanks,
You do not have the required permissions to view the files attached to this post.
Haseeb Ahmad
MS - Physics,
LUMS - Pakistan

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

Re: LRC

Post by Daniele Varsano » Mon Feb 24, 2020 1:27 pm

Dear Haseeb,
A1: Q1, it is the q=0 limit, you are not interested in the plasmon dispersion
A2: The imaginary part gives you the spectrum and you need to look at the peak
A3: Of course, the plasmon peak is at higher energies than the absorption.

Note that all these three questions are not related to the use of the code but with physical quantities and the physics of your system:
I suggest you to look at textbooks and discuss them with your supervisor and colleagues.

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/

haseebphysics1
Posts: 169
Joined: Sat Aug 17, 2019 2:48 pm

Re: LRC

Post by haseebphysics1 » Mon Feb 24, 2020 1:55 pm

Sorry Daniele, but the following question is particularly related to the code and issue I am facing with memory allocation. Kindly have a look at the input and a LOG files attached.

How can I solve this memory issue? In the LOG file, I can't see the memory usage apart from couple of GBs and I have 128 GB single node (calculation is running on a single node). How can I find the total RAM needed from the LOGs?

Yambo was compiled with --enable-memory-profile ...


Thanks,
You do not have the required permissions to view the files attached to this post.
Haseeb Ahmad
MS - Physics,
LUMS - Pakistan

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

Re: LRC

Post by Daniele Varsano » Mon Feb 24, 2020 2:32 pm

Dear Haseeb,
I have the impression that the input and log files you included do not correspond to the same calculations are they have different parallelization setting or at least the input file setting is inconsistent with the CPU you requested as you can see:
I think you asked for 4 cpus in input but you launched using 2 CPU:

Code: Select all

 Response_G_space_Finite_Momentum parallel ENVIRONMENT is incomplete. Switching to defaults
Next, the code switches allocating 2 CPU in G parallelization which is not efficient to distribute the memory.
Anyway, here the code crashes before printing the memory needed to be allocated.
What you can do is to set a parallelization strategy parallelizing on bands (c,v):
Then you need to lower the ETStpsXd variable, you are requesting to calculate for a lot of frequencies (500) and this is not needed.
If you need such amount of resolution you can think to split your run in different runs with different energy range, each of one with a lower number of frequencies.
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/

haseebphysics1
Posts: 169
Joined: Sat Aug 17, 2019 2:48 pm

Re: LRC

Post by haseebphysics1 » Mon Feb 24, 2020 3:51 pm

Dear Daniele,
the input and log files you included do not correspond to the same calculations
Since I was tweaking the input parallelization strategy that's why I think it got different in the attachment. But I have tried different numbers, not working for me! I am not able to run even on 2 processor cores while I have 48 available! I am using fewer cores just to reduce RAM requirements! It is interesting that static LRC TDDFT is working with 118 GB RAM!

And dynamic LRC will take demand more RAM with all other parameters remaining the same.

As you suggested, I reduce the energy steps to mere 10 to see if this is a major memory consumption chuck but it didn't help either!

Now, can you please suggest the numerical value of these parameters? for say any number of cores, I have 48 cores and 128 GB RAM! Or I need to increase physically the memory in the machine (apart from trying double-grid!)?

Code: Select all

NLogCPUs=0                     # [PARALLEL] Live-timing CPU`s (0 for all)
PAR_def_mode= "memory"       # [PARALLEL] Default distribution mode ("balanced"/"memory"/"workload")
DIP_CPU= "1 2 1"                    # [PARALLEL] CPUs for each role
DIP_ROLEs= "k c v"                  # [PARALLEL] CPUs roles (k,c,v)
DIP_Threads=0                  # [OPENMP/X] Number of threads for dipoles
X_CPU= "1 1 1 2 2 "                      # [PARALLEL] CPUs for each role
X_ROLEs= "q g k c v"                    # [PARALLEL] CPUs roles (q,g,k,c,v)
X_nCPU_LinAlg_INV= 1           # [PARALLEL] CPUs for Linear Algebra
X_finite_q_CPU= ""             # [PARALLEL] CPUs for each role
X_finite_q_ROLEs= ""           # [PARALLEL] CPUs roles (q,g,k,c,v)
X_finite_q_nCPU_LinAlg_INV= 1  # [PARALLEL] CPUs for Linear Algebra
X_Threads=0                    # [OPENMP/X] Number of threads for response functions
NonPDirs= "none"               # [X/BSS] Non periodic chartesian directions (X,Y,Z,XY...)
Thanks,
Haseeb Ahmad
MS - Physics,
LUMS - Pakistan

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

Re: LRC

Post by Daniele Varsano » Mon Feb 24, 2020 3:59 pm

Dear Haseeb,
as you can see this is inconsistent!!
DIP_CPU= "1 2 1"
X_CPU= "1 1 1 2 2 "

and it should also fit with the number of cpu you request otherwise Yambo switch to a default that cannot be optimal for memory distribution.
Anyway from the previous log it seems you have already calculated the dipoles, you can try:
X_CPU= "1 1 1 2 2 "
launch with 4 cpu and reduce the frequency steps to 10 or so, in order to see if it runs.
You can also try to reduce the blocks and the bands.
Fill also
X_finite_q_CPU= "" # [PARALLEL] CPUs for each role
X_finite_q_ROLEs= ""

in case you want also qpt different from (1|1).

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/

haseebphysics1
Posts: 169
Joined: Sat Aug 17, 2019 2:48 pm

Re: LRC

Post by haseebphysics1 » Mon Feb 24, 2020 4:41 pm

Dear Daniele,

All these now tried but still not able to proceed. Bands range, the block size is now already very small, new log and input is attached.



Regards,
You do not have the required permissions to view the files attached to this post.
Haseeb Ahmad
MS - Physics,
LUMS - Pakistan

Post Reply