20#include "./base/base_uses.f90"
26 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'post_scf_bandstructure_methods'
43 CHARACTER(LEN=*),
PARAMETER :: routinen =
'post_scf_bandstructure'
47 CALL timeset(routinen, handle)
53 IF (qs_env%bs_env%do_soc)
THEN
54 CALL soc(qs_env, qs_env%bs_env)
58 IF (qs_env%bs_env%do_gw)
THEN
59 CALL gw(qs_env, qs_env%bs_env, post_scf_bandstructure_section)
68 IF (qs_env%bs_env%do_bs_primitive_cell)
THEN
69 CALL bandstructure_primitive_cell_all_methods(qs_env, qs_env%bs_env)
81 SUBROUTINE soc(qs_env, bs_env)
85 CHARACTER(LEN=*),
PARAMETER :: routinen =
'soc'
89 CALL timeset(routinen, handle)
97 CALL h_ks_spinor(bs_env%cfm_ks_spinor_ao_Gamma, bs_env%fm_ks_Gamma(1:2), bs_env%n_spin, &
98 bs_env%mat_V_SOC_xyz(:, 1), bs_env%cfm_s_spinor_Gamma, bs_env%fm_s_Gamma, &
99 bs_env%cfm_SOC_spinor_ao_Gamma)
101 CALL timestop(handle)
110 SUBROUTINE bandstructure_primitive_cell_all_methods(qs_env, bs_env)
115 CHARACTER(LEN=*),
PARAMETER :: routinen =
'bandstructure_primitive_cell_all_methods'
119 CALL timeset(routinen, handle)
122 bs_env%eigenval_prim_cell_scf, &
123 "bandstructure_SCF.bs", &
124 bs_env%fm_ks_Gamma(1))
125 IF (bs_env%do_gw)
THEN
127 bs_env%eigenval_prim_cell_G0W0, &
128 "bandstructure_G0W0.bs", &
129 bs_env%fm_h_G0W0_Gamma)
132 IF (bs_env%do_soc)
THEN
134 bs_env%eigenval_prim_cell_scf_soc, &
135 "bandstructure_SCF_SOC.bs", &
136 bs_env%cfm_ks_spinor_ao_Gamma)
139 CALL timestop(handle)
141 END SUBROUTINE bandstructure_primitive_cell_all_methods
subroutine, public gw(qs_env, bs_env, post_scf_bandstructure_section)
Perform GW band structure calculation.
subroutine, public post_scf_bandstructure(qs_env, post_scf_bandstructure_section)
Perform post-SCF band structure calculations from higher level methods.
subroutine, public dos_pdos_ldos(qs_env, bs_env)
...
subroutine, public bandstructure_primitive_cell_spinor(qs_env, bs_env, eigenvalues, filename, cfm_h_gamma_spinor)
...
subroutine, public bandstructure_primitive_cell(qs_env, bs_env, eigenvalues, filename, fm_h_gamma)
...
subroutine, public create_and_init_bs_env(qs_env, bs_env, post_scf_bandstructure_section)
...
Routines for the Quickstep SCF run.
subroutine, public scf(qs_env, has_converged, total_scf_steps)
perform an scf procedure in the given qs_env
subroutine, public h_ks_spinor(cfm_ks_spinor_ao, fm_ks, n_spin, mat_v_soc_xyz, cfm_s_double, fm_s, cfm_soc_spinor_ao)
Spinor KS-matrix H_µν,σσ' = h_µν,σ*δ_σσ' + sum_α V^SOC_µν^(α)*Pauli-matrix^(α)_σσ',...
subroutine, public v_soc_xyz_from_pseudopotential(qs_env, mat_v_soc_xyz)
Compute V^SOC_µν^(α) = ħ/2 < ϕ_µ | sum_ℓ ΔV_ℓ^SO(r,r') L^(α) | ϕ_ν >, α = x, y, z,...