mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-21 06:25:15 -04:00
Fix perturbative SOC sign bug and molecular SOC path (#5513)
This commit is contained in:
parent
9ac08c90f1
commit
1ae7fa728c
15 changed files with 472 additions and 49 deletions
|
|
@ -626,11 +626,11 @@ CONTAINS
|
|||
MATMUL(alkint(1:na, 1:np, 3), TRANSPOSE(bcint(1:nb, 1:np, 1)))
|
||||
|
||||
ELSE
|
||||
l_block_x(1:nb, 1:na) = l_block_x(1:nb, 1:na) - &
|
||||
l_block_x(1:nb, 1:na) = l_block_x(1:nb, 1:na) + &
|
||||
MATMUL(blkint(1:nb, 1:np, 1), TRANSPOSE(acint(1:na, 1:np, 1)))
|
||||
l_block_y(1:nb, 1:na) = l_block_y(1:nb, 1:na) - &
|
||||
l_block_y(1:nb, 1:na) = l_block_y(1:nb, 1:na) + &
|
||||
MATMUL(blkint(1:nb, 1:np, 2), TRANSPOSE(acint(1:na, 1:np, 1)))
|
||||
l_block_z(1:nb, 1:na) = l_block_z(1:nb, 1:na) - &
|
||||
l_block_z(1:nb, 1:na) = l_block_z(1:nb, 1:na) + &
|
||||
MATMUL(blkint(1:nb, 1:np, 3), TRANSPOSE(acint(1:na, 1:np, 1)))
|
||||
END IF
|
||||
END IF
|
||||
|
|
|
|||
|
|
@ -2695,13 +2695,34 @@ CONTAINS
|
|||
CALL section_add_keyword(section, keyword)
|
||||
CALL keyword_release(keyword)
|
||||
|
||||
CALL keyword_create(keyword, __LOCATION__, name="ENERGY_WINDOW", &
|
||||
description="Apply SOC only for states with eigenvalues in the "// &
|
||||
"interval $[\varepsilon_\mathrm{VBM}-E_\mathrm{window}/2, "// &
|
||||
"\varepsilon_\mathrm{CBM}+E_\mathrm{window}/2]$. Might be necessary "// &
|
||||
CALL keyword_create(keyword, __LOCATION__, name="SOC_WINDOW_OCC", &
|
||||
description="Apply SOC only for states with eigenvalues below VBM "// &
|
||||
"in the interval $[\varepsilon_\mathrm{VBM}-E_\mathrm{window\_occ}, \ "// &
|
||||
"\varepsilon_\mathrm{VBM}]$. "// &
|
||||
"to use for large systems to prevent numerical instabilities.", &
|
||||
usage="ENERGY_WINDOW 5.0", &
|
||||
default_r_val=cp_unit_to_cp2k(value=40.0_dp, unit_str="eV"), &
|
||||
usage="SOC_WINDOW_OCC 5.0", &
|
||||
default_r_val=-1.0_dp, &
|
||||
unit_str="eV")
|
||||
CALL section_add_keyword(section, keyword)
|
||||
CALL keyword_release(keyword)
|
||||
|
||||
CALL keyword_create(keyword, __LOCATION__, name="SOC_WINDOW_VIRT", &
|
||||
description="Apply SOC only for states with eigenvalues above CBM "// &
|
||||
"in the interval $[\varepsilon_\mathrm{CBM},\ "// &
|
||||
"\varepsilon_\mathrm{CBM}+E_\mathrm{window\_virt}]$, "// &
|
||||
"to use for large systems to prevent numerical instabilities.", &
|
||||
usage="SOC_WINDOW_VIRT 5.0", &
|
||||
default_r_val=-1.0_dp, &
|
||||
unit_str="eV")
|
||||
CALL section_add_keyword(section, keyword)
|
||||
CALL keyword_release(keyword)
|
||||
|
||||
CALL keyword_create(keyword, __LOCATION__, name="SOC_WINDOW_SMEARING", &
|
||||
description="Width of the Fermi-like smoothing at the SOC energy-window edge. "// &
|
||||
"Default reproduces the value of 1 eV. "// &
|
||||
"only effective when at least one SOC window is active.", &
|
||||
usage="SOC_WINDOW_SMEARING 1.0", &
|
||||
default_r_val=cp_unit_to_cp2k(value=1.0_dp, unit_str="eV"), &
|
||||
unit_str="eV")
|
||||
CALL section_add_keyword(section, keyword)
|
||||
CALL keyword_release(keyword)
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ MODULE post_scf_bandstructure_types
|
|||
USE libint_2c_3c, ONLY: libint_potential_type
|
||||
USE message_passing, ONLY: mp_para_env_release,&
|
||||
mp_para_env_type
|
||||
USE physcon, ONLY: evolt
|
||||
USE qs_tensors_types, ONLY: neighbor_list_3c_type
|
||||
#include "./base/base_uses.f90"
|
||||
|
||||
|
|
@ -303,7 +304,9 @@ MODULE post_scf_bandstructure_types
|
|||
trunc_coulomb = libint_potential_type()
|
||||
|
||||
! parameters for SOC calculation
|
||||
REAL(KIND=dp) :: energy_window_soc = -1.0_dp
|
||||
REAL(KIND=dp) :: soc_window_occ = -1.0_dp
|
||||
REAL(KIND=dp) :: soc_window_virt = -1.0_dp
|
||||
REAL(KIND=dp) :: soc_window_smearing = 1.0_dp/evolt
|
||||
! sizes: mat_V_SOC_xyz: xyz, img
|
||||
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: mat_V_SOC_xyz => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(3) :: fm_V_SOC_xyz_mo = cp_fm_type()
|
||||
|
|
|
|||
|
|
@ -216,7 +216,9 @@ CONTAINS
|
|||
soc_sec => section_vals_get_subs_vals(bs_sec, "SOC")
|
||||
CALL section_vals_get(soc_sec, explicit=bs_env%do_soc)
|
||||
|
||||
CALL section_vals_val_get(soc_sec, "ENERGY_WINDOW", r_val=bs_env%energy_window_soc)
|
||||
CALL section_vals_val_get(soc_sec, "SOC_WINDOW_OCC", r_val=bs_env%soc_window_occ)
|
||||
CALL section_vals_val_get(soc_sec, "SOC_WINDOW_VIRT", r_val=bs_env%soc_window_virt)
|
||||
CALL section_vals_val_get(soc_sec, "SOC_WINDOW_SMEARING", r_val=bs_env%soc_window_smearing)
|
||||
|
||||
NULLIFY (dos_pdos_sec)
|
||||
dos_pdos_sec => section_vals_get_subs_vals(bs_sec, "DOS")
|
||||
|
|
@ -768,7 +770,7 @@ CONTAINS
|
|||
|
||||
CHARACTER(LEN=*), PARAMETER :: routineN = 'diagonalize_ks_matrix'
|
||||
|
||||
INTEGER :: handle, ispin
|
||||
INTEGER :: handle, ikp, ispin
|
||||
REAL(KIND=dp) :: CBM, VBM
|
||||
|
||||
CALL timeset(routineN, handle)
|
||||
|
|
@ -801,6 +803,13 @@ CONTAINS
|
|||
|
||||
CALL timestop(handle)
|
||||
|
||||
! Gamma-only path for molecules: eigenval_scf is filled here from the Gamma eigenvalues
|
||||
DO ispin = 1, bs_env%n_spin
|
||||
DO ikp = 1, bs_env%nkp_bs_and_DOS
|
||||
bs_env%eigenval_scf(:, ikp, ispin) = bs_env%eigenval_scf_Gamma(:, ispin)
|
||||
END DO
|
||||
END DO
|
||||
|
||||
END SUBROUTINE diagonalize_ks_matrix
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -1193,10 +1202,25 @@ CONTAINS
|
|||
|
||||
IF (bs_env%unit_nr > 0) THEN
|
||||
WRITE (bs_env%unit_nr, '(A)') ''
|
||||
WRITE (bs_env%unit_nr, '(T2,A,F43.1,A)') 'SOC requested, SOC energy window:', &
|
||||
bs_env%energy_window_soc*evolt, ' eV'
|
||||
IF (bs_env%soc_window_occ > 0.0_dp) THEN
|
||||
WRITE (bs_env%unit_nr, '(T2,A,T71,F10.2)') 'SOC requested, SOC energy window occ (eV):', &
|
||||
bs_env%soc_window_occ*evolt
|
||||
ELSE
|
||||
WRITE (bs_env%unit_nr, '(T2,A,T71,A10)') 'SOC requested, SOC energy window occ (eV):', &
|
||||
' no window'
|
||||
END IF
|
||||
IF (bs_env%soc_window_virt > 0.0_dp) THEN
|
||||
WRITE (bs_env%unit_nr, '(T2,A,T71,F10.2)') 'SOC requested, SOC energy window virt (eV):', &
|
||||
bs_env%soc_window_virt*evolt
|
||||
ELSE
|
||||
WRITE (bs_env%unit_nr, '(T2,A,T71,A10)') 'SOC requested, SOC energy window virt (eV):', &
|
||||
' no window'
|
||||
END IF
|
||||
IF (bs_env%soc_window_occ > 0.0_dp .OR. bs_env%soc_window_virt > 0.0_dp) THEN
|
||||
WRITE (bs_env%unit_nr, '(T2,A,T71,F10.2)') 'SOC requested, SOC window smearing (eV):', &
|
||||
bs_env%soc_window_smearing*evolt
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
IF (bs_env%do_ldos) THEN
|
||||
|
|
@ -1300,7 +1324,7 @@ CONTAINS
|
|||
END IF
|
||||
|
||||
! compute DFT+SOC eigenvalues; based on these, compute band edges, DOS and LDOS
|
||||
CALL SOC_ev(bs_env, qs_env, ikp, bs_env%eigenval_scf, band_edges_scf, &
|
||||
CALL SOC_ev(bs_env, qs_env, ikp, bs_env%eigenval_scf, &
|
||||
E_min, cfm_mos_ikp, DOS_scf_SOC, PDOS_scf_SOC, &
|
||||
band_edges_scf_SOC, eigenval_spinor, cfm_spinor_wf_ikp)
|
||||
|
||||
|
|
@ -1316,7 +1340,7 @@ CONTAINS
|
|||
IF (bs_env%do_gw) THEN
|
||||
|
||||
! compute G0W0+SOC eigenvalues; based on these, compute band edges, DOS and LDOS
|
||||
CALL SOC_ev(bs_env, qs_env, ikp, bs_env%eigenval_G0W0, band_edges_G0W0, &
|
||||
CALL SOC_ev(bs_env, qs_env, ikp, bs_env%eigenval_G0W0, &
|
||||
E_min, cfm_mos_ikp, DOS_G0W0_SOC, PDOS_G0W0_SOC, &
|
||||
band_edges_G0W0_SOC, eigenval_spinor_G0W0, cfm_spinor_wf_ikp)
|
||||
|
||||
|
|
@ -1639,7 +1663,6 @@ CONTAINS
|
|||
!> \param qs_env ...
|
||||
!> \param ikp ...
|
||||
!> \param eigenval_no_SOC ...
|
||||
!> \param band_edges_no_SOC ...
|
||||
!> \param E_min ...
|
||||
!> \param cfm_mos_ikp ...
|
||||
!> \param DOS ...
|
||||
|
|
@ -1648,14 +1671,13 @@ CONTAINS
|
|||
!> \param eigenval_spinor ...
|
||||
!> \param cfm_spinor_wf_ikp ...
|
||||
! **************************************************************************************************
|
||||
SUBROUTINE SOC_ev(bs_env, qs_env, ikp, eigenval_no_SOC, band_edges_no_SOC, E_min, cfm_mos_ikp, &
|
||||
SUBROUTINE SOC_ev(bs_env, qs_env, ikp, eigenval_no_SOC, E_min, cfm_mos_ikp, &
|
||||
DOS, PDOS, band_edges, eigenval_spinor, cfm_spinor_wf_ikp)
|
||||
|
||||
TYPE(post_scf_bandstructure_type), POINTER :: bs_env
|
||||
TYPE(qs_environment_type), POINTER :: qs_env
|
||||
INTEGER :: ikp
|
||||
REAL(KIND=dp), DIMENSION(:, :, :) :: eigenval_no_SOC
|
||||
TYPE(band_edges_type) :: band_edges_no_SOC
|
||||
REAL(KIND=dp) :: E_min
|
||||
TYPE(cp_cfm_type), DIMENSION(2) :: cfm_mos_ikp
|
||||
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: DOS
|
||||
|
|
@ -1673,6 +1695,8 @@ CONTAINS
|
|||
cfm_ks_ikp_spinor, cfm_mos_ikp_spinor, &
|
||||
cfm_SOC_ikp_spinor, cfm_work_ikp_spinor
|
||||
|
||||
!TYPE(band_edges_type) :: band_edges_no_SOC
|
||||
|
||||
CALL timeset(routineN, handle)
|
||||
|
||||
n_ao = bs_env%n_ao
|
||||
|
|
@ -1730,12 +1754,13 @@ CONTAINS
|
|||
! unbound states couple to the states around the Fermi level)
|
||||
eigenval_spinor_no_SOC(1:n_ao) = eigenval_no_SOC(1:n_ao, ikp, 1)
|
||||
eigenval_spinor_no_SOC(n_ao + 1:) = eigenval_no_SOC(1:n_ao, ikp, bs_env%n_spin)
|
||||
IF (bs_env%energy_window_soc > 0.0_dp) THEN
|
||||
IF (bs_env%soc_window_occ > 0.0_dp .OR. bs_env%soc_window_virt > 0.0_dp) THEN
|
||||
CALL remove_soc_outside_energy_window_mo(cfm_ks_ikp_spinor, &
|
||||
bs_env%energy_window_soc, &
|
||||
bs_env%soc_window_virt, &
|
||||
bs_env%soc_window_smearing, &
|
||||
eigenval_spinor_no_SOC, &
|
||||
band_edges_no_SOC%VBM, &
|
||||
band_edges_no_SOC%CBM)
|
||||
bs_env%e_fermi(1))
|
||||
|
||||
END IF
|
||||
|
||||
! 4. h^G0W0+SOC_nn',σσ'(k_i) = ε_nσ^G0W0(k_i) δ_nn' δ_σσ' + V^SOC_nn',σσ'(k_i)
|
||||
|
|
@ -2792,12 +2817,27 @@ CONTAINS
|
|||
|
||||
! careful: inside add_dbcsr_submat, mat_V_SOC_xyz is multiplied by i because the real matrix
|
||||
! mat_V_SOC_xyz is antisymmetric as V_SOC matrix is purely imaginary and Hermitian
|
||||
! V_x * sigma_x: sigma_x = ((0,1),(1,0))
|
||||
! ud block (1,s): +i*V_x
|
||||
CALL add_dbcsr_submat(bs_env%cfm_SOC_spinor_ao(1), bs_env%mat_V_SOC_xyz(1, 1)%matrix, &
|
||||
str, s, 1, z_one, .TRUE.)
|
||||
str, 1, s, z_one, .FALSE.)
|
||||
! du block (s,1): +i*V_x
|
||||
CALL add_dbcsr_submat(bs_env%cfm_SOC_spinor_ao(1), bs_env%mat_V_SOC_xyz(1, 1)%matrix, &
|
||||
str, s, 1, z_one, .FALSE.)
|
||||
|
||||
! V_y * sigma_y: sigma_y = ((0,-i),(i,0))
|
||||
! ud block (1,s): i*(i*V_y) = -V_y (extra gaussi factor)
|
||||
CALL add_dbcsr_submat(bs_env%cfm_SOC_spinor_ao(1), bs_env%mat_V_SOC_xyz(2, 1)%matrix, &
|
||||
str, s, 1, gaussi, .TRUE.)
|
||||
str, 1, s, gaussi, .FALSE.)
|
||||
! du block (s,1): -i*(i*V_y) = +V_y (extra -gaussi factor)
|
||||
CALL add_dbcsr_submat(bs_env%cfm_SOC_spinor_ao(1), bs_env%mat_V_SOC_xyz(2, 1)%matrix, &
|
||||
str, s, 1, -gaussi, .FALSE.)
|
||||
|
||||
! V_z * sigma_z: sigma_z = ((1,0),(0,-1))
|
||||
! uu block (1,1): +i*V_z
|
||||
CALL add_dbcsr_submat(bs_env%cfm_SOC_spinor_ao(1), bs_env%mat_V_SOC_xyz(3, 1)%matrix, &
|
||||
str, 1, 1, z_one, .FALSE.)
|
||||
! dd block (s,s): -i*V_z
|
||||
CALL add_dbcsr_submat(bs_env%cfm_SOC_spinor_ao(1), bs_env%mat_V_SOC_xyz(3, 1)%matrix, &
|
||||
str, s, s, -z_one, .FALSE.)
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ MODULE soc_pseudopotential_methods
|
|||
USE qs_neighbor_list_types, ONLY: get_neighbor_list_set_p,&
|
||||
neighbor_list_set_p_type
|
||||
USE virial_types, ONLY: virial_type
|
||||
!USE physcon, ONLY: evolt
|
||||
#include "./base/base_uses.f90"
|
||||
|
||||
IMPLICIT NONE
|
||||
|
|
@ -182,16 +183,17 @@ CONTAINS
|
|||
! **************************************************************************************************
|
||||
!> \brief ...
|
||||
!> \param cfm_ks_spinor ...
|
||||
!> \param e_win ...
|
||||
!> \param e_win_cbm ...
|
||||
!> \param temp_smear ...
|
||||
!> \param eigenval ...
|
||||
!> \param E_HOMO ...
|
||||
!> \param E_LUMO ...
|
||||
!> \param e_fermi ...
|
||||
! **************************************************************************************************
|
||||
SUBROUTINE remove_soc_outside_energy_window_mo(cfm_ks_spinor, e_win, eigenval, E_HOMO, E_LUMO)
|
||||
SUBROUTINE remove_soc_outside_energy_window_mo(cfm_ks_spinor, e_win_cbm, temp_smear, &
|
||||
eigenval, e_fermi)
|
||||
TYPE(cp_cfm_type) :: cfm_ks_spinor
|
||||
REAL(KIND=dp) :: e_win
|
||||
REAL(KIND=dp) :: e_win_cbm, temp_smear
|
||||
REAL(KIND=dp), DIMENSION(:) :: eigenval
|
||||
REAL(KIND=dp) :: E_HOMO, E_LUMO
|
||||
REAL(KIND=dp) :: e_fermi
|
||||
|
||||
CHARACTER(LEN=*), PARAMETER :: routineN = 'remove_soc_outside_energy_window_mo'
|
||||
|
||||
|
|
@ -199,7 +201,9 @@ CONTAINS
|
|||
ncol_global, ncol_local, nrow_global, &
|
||||
nrow_local
|
||||
INTEGER, DIMENSION(:), POINTER :: col_indices, row_indices
|
||||
REAL(KIND=dp) :: E_i, E_j
|
||||
REAL(KIND=dp) :: E_i, E_j, w_i, w_j, x_i, x_j
|
||||
|
||||
!REAL(KIND=dp) :: E_HOMO, E_LUMO, e_fermi
|
||||
|
||||
! Remove SOC outside of energy window (otherwise, numerical problems arise
|
||||
! because energetically low semicore states and energetically very high
|
||||
|
|
@ -220,6 +224,10 @@ CONTAINS
|
|||
CPASSERT(nrow_global == SIZE(eigenval))
|
||||
CPASSERT(ncol_global == SIZE(eigenval))
|
||||
|
||||
! Apply a smooth energy window to the SOC coupling matrix. Each state gets a
|
||||
! weight in [0,1]: 1 = full SOC, decaying to 0 outside the window via a
|
||||
! Fermi-like function of width temp_smear. A matrix element coupling states i
|
||||
! and j is scaled by SQRT(w_i*w_j), applying the damping symmetrically to both.
|
||||
DO jjB = 1, ncol_local
|
||||
j_glob = col_indices(jjB)
|
||||
DO iiB = 1, nrow_local
|
||||
|
|
@ -227,12 +235,25 @@ CONTAINS
|
|||
|
||||
E_i = eigenval(i_glob)
|
||||
E_j = eigenval(j_glob)
|
||||
|
||||
IF (E_i < E_HOMO - 0.5_dp*e_win .OR. E_i > E_LUMO + 0.5_dp*e_win .OR. &
|
||||
E_j < E_HOMO - 0.5_dp*e_win .OR. E_j > E_LUMO + 0.5_dp*e_win) THEN
|
||||
cfm_ks_spinor%local_data(iiB, jjB) = 0.0_dp
|
||||
IF (E_i <= e_fermi) THEN
|
||||
!x_i = ABS(E_i - e_fermi) - 0.5_dp * e_win_vbm
|
||||
w_i = 1.0_dp
|
||||
ELSE
|
||||
x_i = ABS(E_i - e_fermi) - e_win_cbm
|
||||
w_i = 1.0_dp/(EXP(x_i/temp_smear) + 1.0_dp)
|
||||
END IF
|
||||
|
||||
IF (E_j <= e_fermi) THEN
|
||||
!x_j = ABS(E_j - e_fermi) - 0.5_dp * e_win_vbm
|
||||
w_j = 1.0_dp
|
||||
ELSE
|
||||
x_j = ABS(E_j - e_fermi) - e_win_cbm
|
||||
w_j = 1.0_dp/(EXP(x_j/temp_smear) + 1.0_dp)
|
||||
END IF
|
||||
|
||||
cfm_ks_spinor%local_data(iiB, jjB) = &
|
||||
cfm_ks_spinor%local_data(iiB, jjB)*SQRT(w_i*w_j)
|
||||
|
||||
END DO
|
||||
END DO
|
||||
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@
|
|||
"G0W0_kpoints_in_self_energy_gap_printing.inp" = [{matcher="E_G0W0_gap_old", tol=1e-03, ref=18.7767}]
|
||||
"G0W0_kpoints_in_self_energy_open_shell.inp" = [{matcher="E_G0W0_alpha_gap_old", tol=1e-04, ref=13.9024},
|
||||
{matcher="E_G0W0_beta_gap_old", tol=1e-04, ref=27.5399}]
|
||||
"G0W0_IH_SOC.inp" = [{matcher="E_G0W0_SOC_gap_old", tol=1e-04, ref=17.2425}]
|
||||
"G0W0_IH_SOC.inp" = [{matcher="E_G0W0_SOC_gap_old", tol=5e-02, ref=16.7473}]
|
||||
#EOF
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@
|
|||
NUM_TIME_FREQ_POINTS 10
|
||||
&END GW
|
||||
&SOC
|
||||
ENERGY_WINDOW 3.0
|
||||
&END SOC
|
||||
&END BANDSTRUCTURE
|
||||
&END PROPERTIES
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@
|
|||
NUM_TIME_FREQ_POINTS 10
|
||||
&END GW
|
||||
&SOC
|
||||
ENERGY_WINDOW 4.0
|
||||
&END SOC
|
||||
&END BANDSTRUCTURE
|
||||
&END PROPERTIES
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@
|
|||
NUM_TIME_FREQ_POINTS 10
|
||||
&END GW
|
||||
&SOC
|
||||
ENERGY_WINDOW 3.0
|
||||
&END SOC
|
||||
&END BANDSTRUCTURE
|
||||
&END PROPERTIES
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@
|
|||
NUM_TIME_FREQ_POINTS 10
|
||||
&END GW
|
||||
&SOC
|
||||
ENERGY_WINDOW 3.0
|
||||
&END SOC
|
||||
&END BANDSTRUCTURE
|
||||
&END PROPERTIES
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
&GLOBAL
|
||||
PRINT_LEVEL SILENT
|
||||
PROJECT scalable_GW_kpsym
|
||||
RUN_TYPE ENERGY
|
||||
&TIMINGS
|
||||
THRESHOLD 0.01
|
||||
&END TIMINGS
|
||||
&END GLOBAL
|
||||
|
||||
&FORCE_EVAL
|
||||
METHOD Quickstep
|
||||
&DFT
|
||||
BASIS_SET_FILE_NAME BASIS_MOLOPT
|
||||
BASIS_SET_FILE_NAME HFX_BASIS
|
||||
BASIS_SET_FILE_NAME ./REGTEST_BASIS
|
||||
POTENTIAL_FILE_NAME GTH_SOC_POTENTIALS
|
||||
SORT_BASIS EXP
|
||||
&KPOINTS
|
||||
PARALLEL_GROUP_SIZE -1
|
||||
SCHEME MONKHORST-PACK 1 4 4
|
||||
SYMMETRY ON
|
||||
VERBOSE T
|
||||
&END KPOINTS
|
||||
&MGRID
|
||||
CUTOFF 100
|
||||
REL_CUTOFF 20
|
||||
&END MGRID
|
||||
&QS
|
||||
EPS_DEFAULT 1.0E-15
|
||||
EPS_PGF_ORB 1.0E-15
|
||||
METHOD GPW
|
||||
&END QS
|
||||
&SCF
|
||||
ADDED_MOS -1
|
||||
EPS_SCF 1.0E-5
|
||||
MAX_SCF 100
|
||||
SCF_GUESS ATOMIC
|
||||
&END SCF
|
||||
&XC
|
||||
&XC_FUNCTIONAL PBE
|
||||
&END XC_FUNCTIONAL
|
||||
&END XC
|
||||
&END DFT
|
||||
&PROPERTIES
|
||||
&BANDSTRUCTURE
|
||||
&DOS
|
||||
KPOINTS 1 2 2
|
||||
&END DOS
|
||||
&GW
|
||||
EPS_FILTER 1.0E-5
|
||||
FREQ_MAX_FIT 27.211
|
||||
NUM_TIME_FREQ_POINTS 6
|
||||
&END GW
|
||||
&SOC
|
||||
SOC_WINDOW_OCC 5
|
||||
SOC_WINDOW_SMEARING 2
|
||||
SOC_WINDOW_VIRT 15
|
||||
&END SOC
|
||||
&END BANDSTRUCTURE
|
||||
&END PROPERTIES
|
||||
&SUBSYS
|
||||
&CELL
|
||||
ABC [angstrom] 12.000 6.000 8.000
|
||||
MULTIPLE_UNIT_CELL 1 1 1
|
||||
PERIODIC YZ
|
||||
&END CELL
|
||||
&COORD
|
||||
H 0.0 -0.5 -4.5
|
||||
Te 0.5 0.0 4.5
|
||||
H 0.0 0.5 -4.5
|
||||
&END COORD
|
||||
&KIND H
|
||||
BASIS_SET ORB DZVP-GTH
|
||||
BASIS_SET RI_AUX RI-dummy-regtest
|
||||
POTENTIAL GTH-PBE-q1
|
||||
&END KIND
|
||||
&KIND Te
|
||||
BASIS_SET ORB SZV-MOLOPT-SR-GTH
|
||||
BASIS_SET RI_AUX RI-dummy-regtest
|
||||
POTENTIAL GTH-PBE-q6
|
||||
&END KIND
|
||||
&TOPOLOGY
|
||||
MULTIPLE_UNIT_CELL 1 1 1
|
||||
&END TOPOLOGY
|
||||
&END SUBSYS
|
||||
&END FORCE_EVAL
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
&GLOBAL
|
||||
PRINT_LEVEL SILENT
|
||||
PROJECT scalable_GW
|
||||
RUN_TYPE ENERGY
|
||||
&TIMINGS
|
||||
THRESHOLD 0.01
|
||||
&END TIMINGS
|
||||
&END GLOBAL
|
||||
|
||||
&FORCE_EVAL
|
||||
METHOD Quickstep
|
||||
&DFT
|
||||
BASIS_SET_FILE_NAME BASIS_MOLOPT
|
||||
BASIS_SET_FILE_NAME HFX_BASIS
|
||||
BASIS_SET_FILE_NAME ./REGTEST_BASIS
|
||||
POTENTIAL_FILE_NAME GTH_SOC_POTENTIALS
|
||||
SORT_BASIS EXP
|
||||
&KPOINTS
|
||||
PARALLEL_GROUP_SIZE -1
|
||||
SCHEME MONKHORST-PACK 1 4 4
|
||||
&END KPOINTS
|
||||
&MGRID
|
||||
CUTOFF 100
|
||||
REL_CUTOFF 20
|
||||
&END MGRID
|
||||
&QS
|
||||
EPS_DEFAULT 1.0E-15
|
||||
EPS_PGF_ORB 1.0E-15
|
||||
METHOD GPW
|
||||
&END QS
|
||||
&SCF
|
||||
ADDED_MOS -1
|
||||
EPS_SCF 1.0E-5
|
||||
MAX_SCF 100
|
||||
SCF_GUESS ATOMIC
|
||||
&END SCF
|
||||
&XC
|
||||
&XC_FUNCTIONAL PBE
|
||||
&END XC_FUNCTIONAL
|
||||
&END XC
|
||||
&END DFT
|
||||
&PROPERTIES
|
||||
&BANDSTRUCTURE
|
||||
&DOS
|
||||
KPOINTS 1 2 2
|
||||
&END DOS
|
||||
&GW
|
||||
EPS_FILTER 1.0E-5
|
||||
FREQ_MAX_FIT 27.211
|
||||
NUM_TIME_FREQ_POINTS 6
|
||||
&END GW
|
||||
&SOC
|
||||
SOC_WINDOW_OCC 2
|
||||
&END SOC
|
||||
&END BANDSTRUCTURE
|
||||
&END PROPERTIES
|
||||
&SUBSYS
|
||||
&CELL
|
||||
ABC [angstrom] 12.000 6.000 8.000
|
||||
MULTIPLE_UNIT_CELL 1 1 1
|
||||
PERIODIC YZ
|
||||
&END CELL
|
||||
&COORD
|
||||
H 0.0 -0.5 -4.5
|
||||
Te 0.5 0.0 4.5
|
||||
H 0.0 0.5 -4.5
|
||||
&END COORD
|
||||
&KIND H
|
||||
BASIS_SET ORB DZVP-GTH
|
||||
BASIS_SET RI_AUX RI-dummy-regtest
|
||||
POTENTIAL GTH-PBE-q1
|
||||
&END KIND
|
||||
&KIND Te
|
||||
BASIS_SET ORB SZV-MOLOPT-SR-GTH
|
||||
BASIS_SET RI_AUX RI-dummy-regtest
|
||||
POTENTIAL GTH-PBE-q6
|
||||
&END KIND
|
||||
&TOPOLOGY
|
||||
MULTIPLE_UNIT_CELL 1 1 1
|
||||
&END TOPOLOGY
|
||||
&END SUBSYS
|
||||
&END FORCE_EVAL
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
&GLOBAL
|
||||
PRINT_LEVEL SILENT
|
||||
PROJECT scalable_GW
|
||||
RUN_TYPE ENERGY
|
||||
&TIMINGS
|
||||
THRESHOLD 0.01
|
||||
&END TIMINGS
|
||||
&END GLOBAL
|
||||
|
||||
&FORCE_EVAL
|
||||
METHOD Quickstep
|
||||
&DFT
|
||||
BASIS_SET_FILE_NAME BASIS_MOLOPT
|
||||
BASIS_SET_FILE_NAME HFX_BASIS
|
||||
BASIS_SET_FILE_NAME ./REGTEST_BASIS
|
||||
POTENTIAL_FILE_NAME GTH_SOC_POTENTIALS
|
||||
SORT_BASIS EXP
|
||||
&KPOINTS
|
||||
PARALLEL_GROUP_SIZE -1
|
||||
SCHEME MONKHORST-PACK 1 4 4
|
||||
&END KPOINTS
|
||||
&MGRID
|
||||
CUTOFF 100
|
||||
REL_CUTOFF 20
|
||||
&END MGRID
|
||||
&QS
|
||||
EPS_DEFAULT 1.0E-15
|
||||
EPS_PGF_ORB 1.0E-15
|
||||
METHOD GPW
|
||||
&END QS
|
||||
&SCF
|
||||
ADDED_MOS -1
|
||||
EPS_SCF 1.0E-5
|
||||
MAX_SCF 100
|
||||
SCF_GUESS ATOMIC
|
||||
&END SCF
|
||||
&XC
|
||||
&XC_FUNCTIONAL PBE
|
||||
&END XC_FUNCTIONAL
|
||||
&END XC
|
||||
&END DFT
|
||||
&PROPERTIES
|
||||
&BANDSTRUCTURE
|
||||
&DOS
|
||||
KPOINTS 1 2 2
|
||||
&END DOS
|
||||
&GW
|
||||
EPS_FILTER 1.0E-5
|
||||
FREQ_MAX_FIT 27.211
|
||||
NUM_TIME_FREQ_POINTS 6
|
||||
&END GW
|
||||
&SOC
|
||||
SOC_WINDOW_OCC 5
|
||||
SOC_WINDOW_SMEARING 2
|
||||
SOC_WINDOW_VIRT 15
|
||||
&END SOC
|
||||
&END BANDSTRUCTURE
|
||||
&END PROPERTIES
|
||||
&SUBSYS
|
||||
&CELL
|
||||
ABC [angstrom] 12.000 6.000 8.000
|
||||
MULTIPLE_UNIT_CELL 1 1 1
|
||||
PERIODIC YZ
|
||||
&END CELL
|
||||
&COORD
|
||||
H 0.0 -0.5 -4.5
|
||||
Te 0.5 0.0 4.5
|
||||
H 0.0 0.5 -4.5
|
||||
&END COORD
|
||||
&KIND H
|
||||
BASIS_SET ORB DZVP-GTH
|
||||
BASIS_SET RI_AUX RI-dummy-regtest
|
||||
POTENTIAL GTH-PBE-q1
|
||||
&END KIND
|
||||
&KIND Te
|
||||
BASIS_SET ORB SZV-MOLOPT-SR-GTH
|
||||
BASIS_SET RI_AUX RI-dummy-regtest
|
||||
POTENTIAL GTH-PBE-q6
|
||||
&END KIND
|
||||
&TOPOLOGY
|
||||
MULTIPLE_UNIT_CELL 1 1 1
|
||||
&END TOPOLOGY
|
||||
&END SUBSYS
|
||||
&END FORCE_EVAL
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
&GLOBAL
|
||||
PRINT_LEVEL SILENT
|
||||
PROJECT scalable_GW
|
||||
RUN_TYPE ENERGY
|
||||
&TIMINGS
|
||||
THRESHOLD 0.01
|
||||
&END TIMINGS
|
||||
&END GLOBAL
|
||||
|
||||
&FORCE_EVAL
|
||||
METHOD Quickstep
|
||||
&DFT
|
||||
BASIS_SET_FILE_NAME BASIS_MOLOPT
|
||||
BASIS_SET_FILE_NAME HFX_BASIS
|
||||
BASIS_SET_FILE_NAME ./REGTEST_BASIS
|
||||
POTENTIAL_FILE_NAME GTH_SOC_POTENTIALS
|
||||
SORT_BASIS EXP
|
||||
&KPOINTS
|
||||
PARALLEL_GROUP_SIZE -1
|
||||
SCHEME MONKHORST-PACK 1 4 4
|
||||
&END KPOINTS
|
||||
&MGRID
|
||||
CUTOFF 100
|
||||
REL_CUTOFF 20
|
||||
&END MGRID
|
||||
&QS
|
||||
EPS_DEFAULT 1.0E-15
|
||||
EPS_PGF_ORB 1.0E-15
|
||||
METHOD GPW
|
||||
&END QS
|
||||
&SCF
|
||||
ADDED_MOS -1
|
||||
EPS_SCF 1.0E-5
|
||||
MAX_SCF 100
|
||||
SCF_GUESS ATOMIC
|
||||
&END SCF
|
||||
&XC
|
||||
&XC_FUNCTIONAL PBE
|
||||
&END XC_FUNCTIONAL
|
||||
&END XC
|
||||
&END DFT
|
||||
&PROPERTIES
|
||||
&BANDSTRUCTURE
|
||||
&DOS
|
||||
KPOINTS 1 2 2
|
||||
&END DOS
|
||||
&GW
|
||||
EPS_FILTER 1.0E-5
|
||||
FREQ_MAX_FIT 27.211
|
||||
NUM_TIME_FREQ_POINTS 6
|
||||
&END GW
|
||||
&SOC
|
||||
SOC_WINDOW_VIRT 10
|
||||
&END SOC
|
||||
&END BANDSTRUCTURE
|
||||
&END PROPERTIES
|
||||
&SUBSYS
|
||||
&CELL
|
||||
ABC [angstrom] 12.000 6.000 8.000
|
||||
MULTIPLE_UNIT_CELL 1 1 1
|
||||
PERIODIC YZ
|
||||
&END CELL
|
||||
&COORD
|
||||
H 0.0 -0.5 -4.5
|
||||
Te 0.5 0.0 4.5
|
||||
H 0.0 0.5 -4.5
|
||||
&END COORD
|
||||
&KIND H
|
||||
BASIS_SET ORB DZVP-GTH
|
||||
BASIS_SET RI_AUX RI-dummy-regtest
|
||||
POTENTIAL GTH-PBE-q1
|
||||
&END KIND
|
||||
&KIND Te
|
||||
BASIS_SET ORB SZV-MOLOPT-SR-GTH
|
||||
BASIS_SET RI_AUX RI-dummy-regtest
|
||||
POTENTIAL GTH-PBE-q6
|
||||
&END KIND
|
||||
&TOPOLOGY
|
||||
MULTIPLE_UNIT_CELL 1 1 1
|
||||
&END TOPOLOGY
|
||||
&END SUBSYS
|
||||
&END FORCE_EVAL
|
||||
|
|
@ -1,22 +1,30 @@
|
|||
"01_G0W0_periodic_H2O.inp" = [{matcher="E_G0W0_direct_gap", tol=1e-03, ref=9.861}]
|
||||
|
||||
"02_G0W0_IH_SOC_LDOS.inp" = [{matcher="E_G0W0_direct_gap", tol=1e-03, ref=17.826},
|
||||
{matcher="E_SCF_SOC_gap", tol=1e-03, ref=11.344}]
|
||||
{matcher="E_SCF_SOC_gap", tol=1e-03, ref=11.248}]
|
||||
|
||||
"03_G0W0_bandstructure_IH_chain.inp" = [{matcher="E_G0W0_direct_gap", tol=5e-04, ref=21.962},
|
||||
{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=21.678}]
|
||||
{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=21.622}]
|
||||
|
||||
"04_G0W0_SOC_TeH_chain_open_shell_kp_extrapol.inp" = [{matcher="E_G0W0_direct_gap", tol=1e-03, ref=5.174}]
|
||||
|
||||
"05_G0W0_SOC_TeH_chain_open_shell.inp" = [{matcher="E_G0W0_direct_gap", tol=5e-04, ref=5.178},
|
||||
{matcher="E_SCF_SOC_gap", tol=5e-04, ref=0.306},
|
||||
{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=5.134}]
|
||||
{matcher="E_SCF_SOC_gap", tol=5e-04, ref=0.257},
|
||||
{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=5.127}]
|
||||
|
||||
"06_G0W0_periodic_H2O_Hedin_shift.inp" = [{matcher="E_G0W0_direct_gap", tol=1e-03, ref=10.417}]
|
||||
|
||||
"07_G0W0_periodic_H2Te_kp_sampling_SCF.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.315}]
|
||||
"07_G0W0_periodic_H2Te_kp_sampling_SCF.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.389}]
|
||||
|
||||
"07_G0W0_periodic_H2Te_kp_sampling_SCF_kpsym.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.315}]
|
||||
"07_G0W0_periodic_H2Te_kp_sampling_SCF_occ.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.383}]
|
||||
|
||||
"08_G0W0_periodic_H2Te_kp_sampling_SCF_FREQ_MAX_FIT_10_eV.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.780}]
|
||||
"07_G0W0_periodic_H2Te_kp_sampling_SCF_virt.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.387}]
|
||||
|
||||
"07_G0W0_periodic_H2Te_kp_sampling_SCF_occ_virt_smear.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.388}]
|
||||
|
||||
"07_G0W0_periodic_H2Te_kp_sampling_SCF_kpsym.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.389}]
|
||||
|
||||
"07_G0W0_periodic_H2Te_kp_sampling_SCF_kpsym_occ_virt_smear.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.388}]
|
||||
|
||||
"08_G0W0_periodic_H2Te_kp_sampling_SCF_FREQ_MAX_FIT_10_eV.inp" = [{matcher="E_G0W0_SOC_gap", tol=5e-04, ref=10.871}]
|
||||
#EOF
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue