exercises:2017_uzh_cp2k-tutorial:gw
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
exercises:2017_uzh_cp2k-tutorial:gw [2017/07/03 15:05] – jwilhelm | exercises:2017_uzh_cp2k-tutorial:gw [2022/10/31 14:33] (current) – oschuett | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <note warning> | ||
+ | |||
====== GW method for computing electronic levels ====== | ====== GW method for computing electronic levels ====== | ||
- | The purpose of this section is to explain how to compute the energy of a molecular orbital from GW for molecules and condensed phase systems with CP2K. In DFT, the energy of a molecular orbital corresponds to an eigenvalue of the Kohn-Sham matrix. In GW, the procedure for getting the level energies is to first perform a DFT calculation (commonly with the PBE or PBE0 functional) to get the molecular orbital wavefunctions and then compute a new GW energy for the molecular orbitals of interest. For an introduction into the concept of GW, please read Sec. II and the introduction to Sec. III in [[doi> | + | The purpose of this section is to explain how to compute the energy of a molecular orbital from GW for molecules and condensed phase systems with CP2K. In DFT, the energy of a molecular orbital corresponds to an eigenvalue of the Kohn-Sham matrix. In GW, the procedure for getting the level energies is to first perform a DFT calculation (commonly with the PBE or PBE0 functional) to get the molecular orbital wavefunctions and then compute a new GW energy for the molecular orbitals of interest. For an introduction into the concept of GW, please read Sec. II and the introduction to Sec. III in [[doi> |
- | The GW implementation in CP2K is based on the developments described in [[doi> | + | The GW implementation in CP2K is based on the developments described in [[doi> |
- | In this tutorial, GW values from the GW100 benchmark set [[doi> | + | In this tutorial, GW values from the GW100 benchmark set [[doi> |
- | Since the calculations are rather small, please use a single MPI rank for the calculation | + | Since the calculations are rather small, please use a single MPI rank for the calculation: |
< | < | ||
Line 14: | Line 16: | ||
===== 1. Reproducing values from the GW100 set ===== | ===== 1. Reproducing values from the GW100 set ===== | ||
- | See below the input for a G0W0@PBE calculation of the water molecule in a def2-QZVP basis: A PBE calculation is used for computing the molecular orbitals which can be seen from the keyword " | + | See below the input for a G0W0@PBE calculation of the water molecule in a def2-QZVP basis: A PBE calculation is used for computing the molecular orbitals which can be seen from the keyword " |
- | The G0W0@PBE HOMO value is not in good agreement with the experimental ionization potential of water (12.62 eV). A possible explanation is that PBE may not be a good starting point for G0W0 calculations for molecules in the gas phase, see e.g. [[doi> | + | The G0W0@PBE HOMO value is not in good agreement with the experimental ionization potential of water (12.62 eV). A possible explanation is that PBE may not be a good starting point for G0W0 calculations for molecules in the gas phase, see e.g. [[doi> |
- | < | + | < |
& | & | ||
METHOD Quickstep | METHOD Quickstep | ||
Line 159: | Line 161: | ||
</ | </ | ||
- | For the extrapolation, | + | For the extrapolation, |
The first scheme employs a linear fit on the HOMO or LUMO values when they are plotted against the inverse cardinal number Ncard of the basis set while the second scheme extrapolates versus the inverse number of basis functions Nbasis which can be computed as sum of the number of occupied orbitals and the number of virtual orbitals as printed in RI_INFO in the output. | The first scheme employs a linear fit on the HOMO or LUMO values when they are plotted against the inverse cardinal number Ncard of the basis set while the second scheme extrapolates versus the inverse number of basis functions Nbasis which can be computed as sum of the number of occupied orbitals and the number of virtual orbitals as printed in RI_INFO in the output. | ||
You can check the extrapolation from the table above with your tool of choice. | You can check the extrapolation from the table above with your tool of choice. | ||
- | The basis set extrapolated values from the table above deviate from the values reported in the GW100 paper [[doi> | + | The basis set extrapolated values from the table above deviate from the values reported in the GW100 paper [[doi> |
- | Often, the HOMO-LUMO gap is of interest. In this case, augmented basis sets (e.g. from the EMSL database) can offer an alternative for very fast basis set convergence, | + | Often, the HOMO-LUMO gap is of interest. In this case, augmented basis sets (e.g. from the EMSL database) can offer an alternative for very fast basis set convergence, |
===== 3. Input for large-scale calculations ===== | ===== 3. Input for large-scale calculations ===== | ||
- | An exemplary input for a parallel calculation can be found in the supporting information of [[doi> | + | An exemplary input for a parallel calculation can be found in the supporting information of [[doi> |
===== 4. Periodic GW calculations ===== | ===== 4. Periodic GW calculations ===== | ||
- | For periodic GW calculations, | + | For periodic GW calculations, |
- | The basis can be found in {{exercises: | + | The basis can be found in {{exercises: |
- | < | + | < |
& | & | ||
METHOD Quickstep | METHOD Quickstep | ||
Line 270: | Line 272: | ||
Cubic-scaling GW calculations could be a more efficient alternative for large systems. See below an exemplary input for one water molecule. Compare the results to the ones from Sec. 1. In general, small deviations (< 0.05 eV) for GW levels can be expected from cubic-scaling GW calculations compared to canonical GW calculations due to additional approximations in cubic-scaling GW. | Cubic-scaling GW calculations could be a more efficient alternative for large systems. See below an exemplary input for one water molecule. Compare the results to the ones from Sec. 1. In general, small deviations (< 0.05 eV) for GW levels can be expected from cubic-scaling GW calculations compared to canonical GW calculations due to additional approximations in cubic-scaling GW. | ||
- | Please observe that the input below is much slower than the input for canonical GW. Therefore, it can be benefitial | + | Please observe that the input below is much slower than the input for canonical GW. Therefore, it can be beneficial |
- | < | + | < |
& | & | ||
METHOD Quickstep | METHOD Quickstep | ||
&DFT | &DFT | ||
! retrieve basis set from the CP2K trunk version | ! retrieve basis set from the CP2K trunk version | ||
- | BASIS_SET_FILE_NAME | + | BASIS_SET_FILE_NAME |
POTENTIAL_FILE_NAME POTENTIAL | POTENTIAL_FILE_NAME POTENTIAL | ||
&MGRID | &MGRID | ||
Line 316: | Line 318: | ||
! in imag. time and frequency | ! in imag. time and frequency | ||
MINIMAX | MINIMAX | ||
- | ! If the HOMO-LUMO gap of the system is small, | + | ! If the HOMO-LUMO gap of the system is small, |
- | ! points for the time/ | + | ! points for the time/ |
! (flag RPA_NUM_QUAD_POINTS). The time and frequency grid | ! (flag RPA_NUM_QUAD_POINTS). The time and frequency grid | ||
! are equally large. The maximum grid size is 20. | ! are equally large. The maximum grid size is 20. | ||
- | ! In principle, the grid size is a convergence parameter | + | ! For large-gap systems (as the water molecule), |
- | ! but for many large-gap systems (as the water molecule), | + | ! should be sufficient |
- | ! convergence of this grid is hard to achieve due to | + | |
- | ! numerical instabilities. | + | |
RPA_NUM_QUAD_POINTS | RPA_NUM_QUAD_POINTS | ||
! imaginary time flag enables cubic-scaling RPA or | ! imaginary time flag enables cubic-scaling RPA or | ||
Line 329: | Line 329: | ||
IM_TIME | IM_TIME | ||
& | & | ||
+ | ! EPS_FILTER_IM_TIME should be tuned for the specific | ||
+ | ! application: | ||
+ | ! depends on EPS_FILTER | ||
EPS_FILTER_IM_TIME 1.0E-12 | EPS_FILTER_IM_TIME 1.0E-12 | ||
- | ! for large systems, increase GROUP_SIZE_3C | + | ! for large systems, increase GROUP_SIZE_3C |
- | ! to run out of memory (OOM) | + | ! to prevent |
GROUP_SIZE_3C 1 | GROUP_SIZE_3C 1 | ||
! for extremely large systems, increase GROUP_SIZE_P | ! for extremely large systems, increase GROUP_SIZE_P | ||
- | ! not to run OOM | + | ! to prevent |
! for very large systems, it is also recommended | ! for very large systems, it is also recommended | ||
- | ! to use OMP threads | + | ! to use OMP threads to prevent |
GROUP_SIZE_P 1 | GROUP_SIZE_P 1 | ||
+ | ! for larger systems, MEMORY_CUT must be increased | ||
+ | ! to prevent out of memory (OOM) | ||
+ | MEMORY_CUT | ||
GW | GW | ||
&END IM_TIME | &END IM_TIME |
exercises/2017_uzh_cp2k-tutorial/gw.1499094348.txt.gz · Last modified: (external edit)