Documentation for module xc_xlda_hole_t_c_lr

Calculates the lda exchange hole in a truncated coulomb potential. Can be used as longrange correction for truncated hfx calculations

source: xc_xlda_hole_t_c_lr.F
Loading...

public Subroutines/Functions:

low level routine
evaluates the truncated lda exchange hole
returns various information on the functional
evaluates the truncated lsd exchange hole. Calls the lda routine and applies spin scaling relation
returns various information on the functional

SUBROUTINExlda_hole_t_c_lr_lda_calc_0(order, rho, e_0, e_rho, sx, r)

low level routine

Arguments:
INTEGER,
INTENT(in)
:: order ...
REAL(dp),
INTENT(in)
:: rho ...
REAL(dp),
INTENT(inout)
:: e_0 ...
REAL(dp),
INTENT(inout)
:: e_rho ...
REAL(dp),
INTENT(in)
:: sx ...
REAL(dp),
INTENT(in)
:: r ...

SUBROUTINExlda_hole_t_c_lr_lda_eval(rho_set, deriv_set, order, params)

evaluates the truncated lda exchange hole

Arguments:
POINTER
:: rho_set the density where you want to evaluate the functional
POINTER
:: deriv_set place where to store the functional derivatives (they are added to the derivatives)
INTEGER,
INTENT(in)
:: order degree of the derivative that should be evalated, if positive all the derivatives up to the given degree are evaluated, if negative only the given degree is calculated
POINTER
:: params input parameters (scaling, cutoff_radius)

SUBROUTINExlda_hole_t_c_lr_lda_info(reference, shortform, needs, max_deriv)

returns various information on the functional

Arguments:
CHARACTER(*),
INTENT(out),
OPTIONAL
:: reference string with the reference of the actual functional
CHARACTER(*),
INTENT(out),
OPTIONAL
:: shortform string with the shortform of the functional name
INTENT(inout),
OPTIONAL
:: needs the components needed by this functional are set to true (does not set the unneeded components to false)
INTEGER,
INTENT(out),
OPTIONAL
:: max_deriv controls the number of derivatives

SUBROUTINExlda_hole_t_c_lr_lsd_eval(rho_set, deriv_set, order, params)

evaluates the truncated lsd exchange hole. Calls the lda routine and applies spin scaling relation

Arguments:
POINTER
:: rho_set the density where you want to evaluate the functional
POINTER
:: deriv_set place where to store the functional derivatives (they are added to the derivatives)
INTEGER,
INTENT(in)
:: order degree of the derivative that should be evalated, if positive all the derivatives up to the given degree are evaluated, if negative only the given degree is calculated
POINTER
:: params input parameters (scaling, cutoff_radius)

SUBROUTINExlda_hole_t_c_lr_lsd_info(reference, shortform, needs, max_deriv)

returns various information on the functional

Arguments:
CHARACTER(*),
INTENT(out),
OPTIONAL
:: reference string with the reference of the actual functional
CHARACTER(*),
INTENT(out),
OPTIONAL
:: shortform string with the shortform of the functional name
INTENT(inout),
OPTIONAL
:: needs the components needed by this functional are set to true (does not set the unneeded components to false)
INTEGER,
INTENT(out),
OPTIONAL
:: max_deriv controls the number of derivatives