(git:6a2e663)
qs_2nd_kernel_ao Module Reference

Routines to calculate 2nd order kernels from a given response density in ao basis linear response scf. More...

Functions/Subroutines

subroutine, public build_dm_response (c0, c1, dm)
 This routine builds response density in dbcsr format. More...
 
subroutine, public apply_2nd_order_kernel (qs_env, p_env, recalc_hfx_integrals, calc_forces, calc_virial, virial)
 Calculate a second order kernel (DFT, HF, ADMM correction) for a given density. More...
 
subroutine, public apply_hfx_ao (qs_env, p_env, recalc_integrals)
 This routine applies the Hartree-Fock Exchange kernel to a perturbation density matrix considering ADMM. More...
 
subroutine, public apply_xc_admm_ao (qs_env, p_env, calc_forces, calc_virial, virial)
 apply the kernel from the ADMM exchange correction More...
 

Detailed Description

Routines to calculate 2nd order kernels from a given response density in ao basis linear response scf.

History
created 08-2020 [Frederick Stein], Code by M. Iannuzzi
Author
Frederick Stein

Function/Subroutine Documentation

◆ build_dm_response()

subroutine, public qs_2nd_kernel_ao::build_dm_response ( type(cp_fm_type), dimension(:), intent(in)  c0,
type(cp_fm_type), dimension(:), intent(in)  c1,
type(dbcsr_p_type), dimension(:), intent(inout)  dm 
)

This routine builds response density in dbcsr format.

Parameters
c0coefficients of unperturbed system (not changed)
c1coefficients of response (not changed)
dmresponse density matrix

Definition at line 80 of file qs_2nd_kernel_ao.F.

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

◆ apply_2nd_order_kernel()

subroutine, public qs_2nd_kernel_ao::apply_2nd_order_kernel ( type(qs_environment_type), intent(in), pointer  qs_env,
type(qs_p_env_type)  p_env,
logical, intent(in), optional  recalc_hfx_integrals,
logical, intent(in), optional  calc_forces,
logical, intent(in), optional  calc_virial,
real(kind=dp), dimension(3, 3), intent(inout), optional  virial 
)

Calculate a second order kernel (DFT, HF, ADMM correction) for a given density.

Parameters
qs_env...
p_envperturbation environment containing the correct density matrices p_envp1, p_envp1_admm, the kernel will be saved in p_envkpp1, p_envkpp1_admm
recalc_hfx_integralswhether to recalculate the HFX integrals
calc_forceswhether to calculate forces
calc_virialwhether to calculate virials
virialcollect the virial terms from the XC + ADMM parts (terms from integration will be added to pv_virial)

Definition at line 112 of file qs_2nd_kernel_ao.F.

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

◆ apply_hfx_ao()

subroutine, public qs_2nd_kernel_ao::apply_hfx_ao ( type(qs_environment_type), intent(in), pointer  qs_env,
type(qs_p_env_type), intent(in)  p_env,
logical, intent(in), optional  recalc_integrals 
)

This routine applies the Hartree-Fock Exchange kernel to a perturbation density matrix considering ADMM.

Parameters
qs_envthe Quickstep environment
p_envperturbation environment from which p1/p1_admm and kpp1/kpp1_admm are taken
recalc_integralswhether the integrals are to be recalculated (default: no)

Definition at line 186 of file qs_2nd_kernel_ao.F.

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

◆ apply_xc_admm_ao()

subroutine, public qs_2nd_kernel_ao::apply_xc_admm_ao ( type(qs_environment_type), intent(in), pointer  qs_env,
type(qs_p_env_type)  p_env,
logical, intent(in), optional  calc_forces,
logical, intent(in), optional  calc_virial,
real(kind=dp), dimension(3, 3), intent(inout), optional  virial 
)

apply the kernel from the ADMM exchange correction

Parameters
qs_env...
p_envperturbation environment
calc_forceswhether to calculate forces
calc_virialwhether to calculate gradients
virialcollects the virial terms from the XC functional (virial terms from integration are collected in pv_virial)

Definition at line 267 of file qs_2nd_kernel_ao.F.

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