![]() |
(git:b77b4be)
|
Utilities for hfx and admm methods. More...
Functions/Subroutines | |
subroutine, public | hfx_admm_init (qs_env, calculate_forces) |
... | |
subroutine, public | aux_admm_init (qs_env, mos, admm_env, admm_control, basis_type) |
Minimal setup routine for admm_env No forces No k-points No DFT correction terms. | |
subroutine, public | hfx_ks_matrix_kp (qs_env, matrix_ks, energy, calculate_forces) |
Add the HFX K-point contribution to the real-space Hamiltonians. | |
subroutine, public | hfx_ks_matrix (qs_env, matrix_ks, rho, energy, calculate_forces, just_energy, v_rspace_new, v_tau_rspace) |
Add the hfx contributions to the Hamiltonian. | |
subroutine, public | create_admm_xc_section (x_data, xc_section, admm_env) |
This routine modifies the xc section depending on the potential type used for the HF exchange and the resulting correction term. Currently three types of corrections are implemented: | |
subroutine, public | tddft_hfx_matrix (matrix_ks, rho_ao, qs_env, update_energy, recalc_integrals, external_hfx_sections, external_x_data, external_para_env) |
Add the hfx contributions to the Hamiltonian. | |
Utilities for hfx and admm methods.
subroutine, public hfx_admm_utils::hfx_admm_init | ( | type(qs_environment_type), pointer | qs_env, |
logical, intent(in), optional | calculate_forces | ||
) |
...
qs_env | ... |
calculate_forces | ... |
Definition at line 163 of file hfx_admm_utils.F.
subroutine, public hfx_admm_utils::aux_admm_init | ( | type(qs_environment_type), pointer | qs_env, |
type(mo_set_type), dimension(:), pointer | mos, | ||
type(admm_type), pointer | admm_env, | ||
type(admm_control_type), pointer | admm_control, | ||
character(len=*) | basis_type | ||
) |
Minimal setup routine for admm_env No forces No k-points No DFT correction terms.
qs_env | ... |
mos | ... |
admm_env | ... |
admm_control | ... |
basis_type | ... |
Definition at line 396 of file hfx_admm_utils.F.
subroutine, public hfx_admm_utils::hfx_ks_matrix_kp | ( | type(qs_environment_type), pointer | qs_env, |
type(dbcsr_p_type), dimension(:, :), pointer | matrix_ks, | ||
type(qs_energy_type), pointer | energy, | ||
logical, intent(in) | calculate_forces | ||
) |
Add the HFX K-point contribution to the real-space Hamiltonians.
qs_env | ... |
matrix_ks | ... |
energy | ... |
calculate_forces | ... |
Definition at line 958 of file hfx_admm_utils.F.
subroutine, public hfx_admm_utils::hfx_ks_matrix | ( | type(qs_environment_type), pointer | qs_env, |
type(dbcsr_p_type), dimension(:, :), pointer | matrix_ks, | ||
type(qs_rho_type), pointer | rho, | ||
type(qs_energy_type), pointer | energy, | ||
logical, intent(in) | calculate_forces, | ||
logical, intent(in) | just_energy, | ||
type(pw_r3d_rs_type), dimension(:), pointer | v_rspace_new, | ||
type(pw_r3d_rs_type), dimension(:), pointer | v_tau_rspace | ||
) |
Add the hfx contributions to the Hamiltonian.
qs_env | ... |
matrix_ks | ... |
rho | ... |
energy | ... |
calculate_forces | ... |
just_energy | ... |
v_rspace_new | ... |
v_tau_rspace | ... |
Definition at line 1134 of file hfx_admm_utils.F.
subroutine, public hfx_admm_utils::create_admm_xc_section | ( | type(hfx_type), dimension(:, :), pointer | x_data, |
type(section_vals_type), pointer | xc_section, | ||
type(admm_type), pointer | admm_env | ||
) |
This routine modifies the xc section depending on the potential type used for the HF exchange and the resulting correction term. Currently three types of corrections are implemented:
coulomb: Ex,hf = Ex,hf' + (PBEx-PBEx') shortrange: Ex,hf = Ex,hf' + (XWPBEX-XWPBEX') truncated: Ex,hf = Ex,hf' + ( (XWPBEX0-PBE_HOLE_TC_LR) -(XWPBEX0-PBE_HOLE_TC_LR)' )
with ' denoting the auxiliary basis set and
PBEx: PBE exchange functional XWPBEX: PBE exchange hole for short-range potential (erfc(omega*r)/r) XWPBEX0: PBE exchange hole for standard coulomb potential PBE_HOLE_TC_LR: PBE exchange hole for longrange truncated coulomb potential
Above explanation is correct for the deafult case. If a specific functional is requested for the correction term (cfun), we get Ex,hf = Ex,hf' + (cfun-cfun') for all cases of operators.
x_data | ... |
xc_section | the original xc_section |
admm_env | the ADMM environment |
Definition at line 1459 of file hfx_admm_utils.F.
subroutine, public hfx_admm_utils::tddft_hfx_matrix | ( | type(dbcsr_p_type), dimension(:), intent(inout), target | matrix_ks, |
type(dbcsr_p_type), dimension(:), intent(inout), target | rho_ao, | ||
type(qs_environment_type), pointer | qs_env, | ||
logical, intent(in), optional | update_energy, | ||
logical, intent(in), optional | recalc_integrals, | ||
type(section_vals_type), optional, pointer | external_hfx_sections, | ||
type(hfx_type), dimension(:, :), optional, target | external_x_data, | ||
type(mp_para_env_type), optional, pointer | external_para_env | ||
) |
Add the hfx contributions to the Hamiltonian.
matrix_ks | Kohn-Sham matrix (updated on exit) |
rho_ao | electron density expressed in terms of atomic orbitals |
qs_env | Quickstep environment |
update_energy | whether to update energy (default: yes) |
recalc_integrals | whether to recalculate integrals (default: value of HFTREAT_LSD_IN_CORE) |
external_hfx_sections | ... |
external_x_data | ... |
external_para_env | ... |
Definition at line 2476 of file hfx_admm_utils.F.