(git:c5411e0)
Loading...
Searching...
No Matches
soc_pseudopotential_methods Module Reference

Functions/Subroutines

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, see Hartwigsen, Goedecker, Hutter, Eq.(18), (19) (doi.org/10.1103/PhysRevB.58.3641) Caution: V^SOC_µν^(α) is purely imaginary and Hermitian; V^SOC_µν^(α) is stored as real dbcsr matrix mat_V_SOC_xyz without symmetry; V^SOC_µν^(α) is stored without the imaginary unit, i.e. mat_V_SOC_xyz is real and antisymmetric.
 
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^(α)_σσ', see Hartwigsen, Goedecker, Hutter, Eq.(18) (doi.org/10.1103/PhysRevB.58.3641)
 
subroutine, public remove_soc_outside_energy_window_ao (mat_v_soc_xyz, e_win, fm_mo_coeff, homo, eigenval, fm_s)
 Remove SOC outside of energy window (otherwise, numerical problems arise because energetically low semicore states and energetically very high unbound states couple to the states around the Fermi level). This routine is for mat_V_SOC_xyz being in the atomic-orbital (ao) basis.
 
subroutine, public remove_soc_outside_energy_window_mo (cfm_ks_spinor, e_win, eigenval, e_homo, e_lumo)
 ...
 

Function/Subroutine Documentation

◆ v_soc_xyz_from_pseudopotential()

subroutine, public soc_pseudopotential_methods::v_soc_xyz_from_pseudopotential ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:, :), pointer  mat_v_soc_xyz 
)

Compute V^SOC_µν^(α) = ħ/2 < ϕ_µ | sum_ℓ ΔV_ℓ^SO(r,r') L^(α) | ϕ_ν >, α = x, y, z, see Hartwigsen, Goedecker, Hutter, Eq.(18), (19) (doi.org/10.1103/PhysRevB.58.3641) Caution: V^SOC_µν^(α) is purely imaginary and Hermitian; V^SOC_µν^(α) is stored as real dbcsr matrix mat_V_SOC_xyz without symmetry; V^SOC_µν^(α) is stored without the imaginary unit, i.e. mat_V_SOC_xyz is real and antisymmetric.

Parameters
qs_env...
mat_V_SOC_xyz...
History
  • 09.2023 created

Definition at line 73 of file soc_pseudopotential_methods.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ h_ks_spinor()

subroutine, public soc_pseudopotential_methods::h_ks_spinor ( type(cp_cfm_type cfm_ks_spinor_ao,
type(cp_fm_type), dimension(:)  fm_ks,
integer  n_spin,
type(dbcsr_p_type), dimension(:)  mat_v_soc_xyz,
type(cp_cfm_type), optional  cfm_s_double,
type(cp_fm_type), optional  fm_s,
type(cp_cfm_type), optional  cfm_soc_spinor_ao 
)

Spinor KS-matrix H_µν,σσ' = h_µν,σ*δ_σσ' + sum_α V^SOC_µν^(α)*Pauli-matrix^(α)_σσ', see Hartwigsen, Goedecker, Hutter, Eq.(18) (doi.org/10.1103/PhysRevB.58.3641)

Parameters
cfm_ks_spinor_ao...
fm_ks...
n_spin...
mat_V_SOC_xyz...
cfm_s_double...
fm_s...
cfm_SOC_spinor_ao...

Definition at line 171 of file soc_pseudopotential_methods.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_soc_outside_energy_window_ao()

subroutine, public soc_pseudopotential_methods::remove_soc_outside_energy_window_ao ( type(dbcsr_p_type), dimension(:)  mat_v_soc_xyz,
real(kind=dp)  e_win,
type(cp_fm_type fm_mo_coeff,
integer  homo,
real(kind=dp), dimension(:)  eigenval,
type(cp_fm_type fm_s 
)

Remove SOC outside of energy window (otherwise, numerical problems arise because energetically low semicore states and energetically very high unbound states couple to the states around the Fermi level). This routine is for mat_V_SOC_xyz being in the atomic-orbital (ao) basis.

Parameters
mat_V_SOC_xyz...
e_win...
fm_mo_coeff...
homo...
eigenval...
fm_s...

Definition at line 243 of file soc_pseudopotential_methods.F.

Here is the call graph for this function:

◆ remove_soc_outside_energy_window_mo()

subroutine, public soc_pseudopotential_methods::remove_soc_outside_energy_window_mo ( type(cp_cfm_type cfm_ks_spinor,
real(kind=dp)  e_win,
real(kind=dp), dimension(:)  eigenval,
real(kind=dp)  e_homo,
real(kind=dp)  e_lumo 
)

...

Parameters
cfm_ks_spinor...
e_win...
eigenval...
E_HOMO...
E_LUMO...

Definition at line 337 of file soc_pseudopotential_methods.F.

Here is the call graph for this function:
Here is the caller graph for this function: