Documentation for module qs_kpp1_env_methods

module that builds the second order perturbation kernel kpp1 = delta_rho|_P delta_rho|_P E drho(P1) drho

source: qs_kpp1_env_methods.F
Loading...

public Subroutines/Functions:

calcualtes the k_p_p1 kernel of the pertubation theory
calcualtes the k_p_p1 kernel of the pertubation theory with finite differences
SUBROUTINE
kpp1_create (kpp1_env)
allocates and initializes a kpp1_env
function to advise of changes either in the grids or in the the matrix structure (to update kpp1_env internal cache)

SUBROUTINEkpp1_calc_k_p_p1(kpp1_env, p_env, qs_env, k_p_p1, rho, rho1, rho1_xc)

calcualtes the k_p_p1 kernel of the pertubation theory

Arguments:
POINTER
:: kpp1_env the kpp1 environement in which perform the calculation
POINTER
:: p_env ...
POINTER
:: qs_env kpp1's qs_env
POINTER
:: k_p_p1(:) the sparse matrix that will contain the kernel k_p_p1
POINTER
:: rho the density where to evaluate the derivatives (i.e. p along with with its grid representations, that must be valid)
POINTER
:: rho1 the density that represent the first direction along which you should evaluate the derivatives
OPTIONAL, POINTER
:: rho1_xc ...

SUBROUTINEkpp1_calc_k_p_p1_fdiff(qs_env, k_p_p1, rho, rho1, diff)

calcualtes the k_p_p1 kernel of the pertubation theory with finite differences

Arguments:
POINTER
:: qs_env kpp1's qs_env
POINTER
:: k_p_p1(:) the sparse matrix that will contain the kernel k_p_p1
POINTER
:: rho the density where to evaluate the derivatives (i.e. p along with with its grid representations, that must be valid)
POINTER
:: rho1 the density that represent the first direction along which you should evaluate the derivatives
REAL(dp),
INTENT(in),
OPTIONAL
:: diff the amount of the finite difference step

SUBROUTINEkpp1_create(kpp1_env)

allocates and initializes a kpp1_env

Arguments:
POINTER
:: kpp1_env the environement to initialize

SUBROUTINEkpp1_did_change(kpp1_env, s_struct_changed, grid_changed, psi0_changed)

function to advise of changes either in the grids or in the the matrix structure (to update kpp1_env internal cache)

Arguments:
POINTER
:: kpp1_env the kpp1_env
LOGICAL,
INTENT(in),
OPTIONAL
:: s_struct_changed true if the structure of the s matrix has changed
LOGICAL,
INTENT(in),
OPTIONAL
:: grid_changed true if the grids have changed and have to be rebuilt
LOGICAL,
INTENT(in),
OPTIONAL
:: psi0_changed true if the value of psi0 (qs_env%rho) has changed