Keyword SIZE_LATTICE_SUM in GW to control accuracy of computing V_PQ(k)

This commit is contained in:
JWilhelm 2024-12-29 16:18:36 +01:00 committed by Ole Schütt
parent 610ba735f2
commit baccfaddc5
2 changed files with 13 additions and 5 deletions

View file

@ -282,6 +282,7 @@ CONTAINS
CALL section_vals_val_get(gw_sec, "CUTOFF_RADIUS_RI", r_val=bs_env%ri_metric%cutoff_radius)
CALL section_vals_val_get(gw_sec, "MEMORY_PER_PROC", r_val=bs_env%input_memory_per_proc_GB)
CALL section_vals_val_get(gw_sec, "APPROX_KP_EXTRAPOL", l_val=bs_env%approx_kp_extrapol)
CALL section_vals_val_get(gw_sec, "SIZE_LATTICE_SUM", i_val=bs_env%size_lattice_sum_V)
CALL section_vals_val_get(gw_sec, "HEDIN_SHIFT", l_val=bs_env%do_hedin_shift)
CALL timestop(handle)
@ -1471,11 +1472,6 @@ CONTAINS
CALL timeset(routineN, handle)
! Determines number of cells used for summing the cells R in the Coulomb matrix,
! V_PQ(k) = \sum_R <P,cell=0 | 1/r | Q,cell=R>. SIZE_LATTICE_SUM_V 3 gives
! good convergence
bs_env%size_lattice_sum_V = 3
! for generating numerically stable minimax Fourier integration weights
bs_env%num_points_per_magnitude = 200

View file

@ -2137,6 +2137,18 @@ CONTAINS
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create(keyword, __LOCATION__, name="SIZE_LATTICE_SUM", &
description="Parameter determines how many neighbor cells $\mathbf{R}$ "// &
"are used for computing "// &
"$V_{PQ}(\mathbf{k}) = "//&
"\sum_{\mathbf{R}} e^{i\mathbf{k}\cdot\mathbf{R}}\,\langle P, "// &
"\text{cell}{=}\mathbf{0}|1/r|Q,\text{cell}{=}\mathbf{R}\rangle$."// &
"Normally, parameter does not need to be touched.", &
usage="SIZE_LATTICE_SUM 4", &
default_i_val=3)
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create(keyword, __LOCATION__, name="HEDIN_SHIFT", &
description="If true, use Hedin's shift in G0W0, evGW and evGW0. "// &
"Details see in Li et al. JCTC 18, 7570 "// &