Using Model-BSE to calculate 2D materials optical absorption spectrum

Queries about input and output files, running specific calculations, etc.


Moderators: Global Moderator, Moderator

Post Reply
Message
Author
liang-wen_pi
Newbie
Newbie
Posts: 12
Joined: Fri Dec 19, 2025 7:32 am

Using Model-BSE to calculate 2D materials optical absorption spectrum

#1 Post by liang-wen_pi » Fri Feb 27, 2026 6:53 am

Hello,everyone!
Recently, I have been learning the optical properties of 2D materials, and I have some questions in calculate this example.

1. Can VASP calculate the optical absorption spectrum of two-dimensional materials using the mbse method? (Especially the exciton peak)
2. Are there any other parameters that need to be specially added? Especially in the field of two-dimensional material calculations
3.Which fitting formula were the fitting parameters AEXX and HFSCREEN in the tutorial obtained from?
https://www.vasp.at/wiki/index.php/Impr ... am:scr:6-1
THANKS!
lw Pi


alexey.tal
Global Moderator
Global Moderator
Posts: 510
Joined: Mon Sep 13, 2021 12:45 pm

Re: Using Model-BSE to calculate 2D materials optical absorption spectrum

#2 Post by alexey.tal » Fri Feb 27, 2026 4:17 pm

Dear lw Pi,

In principle it is possible to used the model BSE approach for 2D materials. However, the problem is that this isotropic model is not really a good approximation for anisotropic screening in 2D materials. Hence, it can't be used to fit the dielectric tensor of a 2D material.

Despite these limitaions, there are papers where the same isotropic model was tuned to approximate the full screened potential: Camarasa-Gómez et al., Phys. Rev. Materials, 104001 (2023) and Ramasubramaniam et al., Phys. Rev. Materials, 084007 (2019). If you find the accuracy sufficient, you can try to follow the same procedure for determining the empirical parameters to tune the model.

Best wishes,
Alexey


liang-wen_pi
Newbie
Newbie
Posts: 12
Joined: Fri Dec 19, 2025 7:32 am

Re: Using Model-BSE to calculate 2D materials optical absorption spectrum

#3 Post by liang-wen_pi » Wed Mar 04, 2026 7:33 am

Thanks for your reply.

I have another question.
When doing GW calculations, is it necessary to select the POTCAR file with the GW label?
Example: Ga element has many different types of POTCAR.

Ga/ Ga_d/ Ga_d_GW/ Ga_GW/ Ga_h/ Ga_sv_GW/

lw Pi


ahampel
Global Moderator
Global Moderator
Posts: 197
Joined: Tue Feb 16, 2016 11:41 am

Re: Using Model-BSE to calculate 2D materials optical absorption spectrum

#4 Post by ahampel » Wed Mar 04, 2026 8:06 am

Dear Iw Pi,

yes for reliable GW results you generally should use the POTCAR files specifically labeled for GW.

The reasoning is that in GW calculations VASP explicitly evaluates the screened Coulomb interaction and the polarizability, which depend on accurately describing not just the occupied states but also a large number of high-lying unoccupied states. Standard PBE/PAW potentials are optimized for ground-state total energies and may not have a sufficiently complete basis for the unoccupied part of the spectrum. see also https://www.vasp.at/wiki/Available_pseu ... potentials and https://www.vasp.at/wiki/Choosing_pseud ... ied_states

Best,
Alex


liang-wen_pi
Newbie
Newbie
Posts: 12
Joined: Fri Dec 19, 2025 7:32 am

Re: Using Model-BSE to calculate 2D materials optical absorption spectrum

#5 Post by liang-wen_pi » Thu Mar 05, 2026 9:12 am

Thanks,Alex.
Now, i was calculating heterostructure with Low scaling GW algorithms.I have no idea how the memory required for this method is calculated? My task keeps getting killed.
Here are my basic details: 8 CPU cores to run this task, and there is 2.5 TB of available memory on the server. You can check the log file in the compressed package; according to its prompts, there should be no memory leak issues with my calculation.
ytning@HPE-Debian:~$ free -h
total used free shared buff/cache available
Mem: 3.0Ti 22Gi 2.9Ti 88Mi 2.1Gi 2.9Ti
Swap: 470Gi 25Gi 444Gi

You do not have the required permissions to view the files attached to this post.

ahampel
Global Moderator
Global Moderator
Posts: 197
Joined: Tue Feb 16, 2016 11:41 am

Re: Using Model-BSE to calculate 2D materials optical absorption spectrum

#6 Post by ahampel » Fri Mar 06, 2026 12:53 pm

Hi Iw Pi,

I had a look at your calculation and tried myself the set of input files.

Essentially, the low-scaling GW code will perform a dry run of the calculation going through all routines and collecting the memory requirement. To our knowledge this should work pretty accurately. The first time I run your calculation it was printing:

Code: Select all

estimated memory requirement per rank 300365.0 MB, per node ******** MB

also with 8 ranks. This would be then 2350 GB of memory for all 8 ranks. I could not run this (I had 1TB of mem avail). Interestingly in your log it shows a much lower 202835.1 MB requirement. That is a bit unclear to me how this happened. But I was also lazy and started the calculation without prior calculation of the WAVECAR and WAVEDER file, which is of course not correct to do. But I think it is not unthinkable that this job will go beyond the 2.5 TB memory you have available. What I did do to verify the accuracy of the estimation is to run the GW calculation with these settings: reduce kmesh to 3x2x1 and this INCAR file:

Code: Select all

SYSTEM = hetero      
      
ENCUT  =  300        

LWAVE  = .TRUE.      
LCHARG = .TRUE.      
                     
ISMEAR =  0          
SIGMA  =  0.05       

LORBIT = 11          
                     
LDIPOL = .TRUE.      
IDIPOL = 3           
                     
ALGO = G0W0R         
NOMEGA = 12          
PRECFOCK = Fast      
LOPTICS = .TRUE.     # for insulator recommended

This was giving me the following output:

Code: Select all

estimated memory requirement per rank 109787.8 MB, per node 878302.0 MB

and I monitored RAM usage by running vasp with mpirun -np 8 time -v vasp_std . This will generate a report in the end where you will also find these lines:
...
Maximum resident set size (kbytes): 120153880
...

which are the maximum number of memory used during the RAM. 120153880/1024*8 = 938,702 MB of memory. And this is very close to the 878302 MB reported I would say given that each rank had a slightly different number. From that the error of the estimate should be only around 10%. Can you try with this INCAR file and k-mesh? I would suggest to start with this setting and then increase precision (k-mesh, ntaupar, nomega, encut, etc) . My setting is for performing the GW calculation in one step. This will do a DFT calculation first including WAVEDER calculation (your system is as far as I can see insulating? Otherwise set LOPTICS=False please). You can also use more nodes with the same number of ranks per node to reduce memory load. However, more ranks per node will use more memory.

Best,
Alex


Post Reply