Documentation for module xc_xpbe_hole_t_c_lr

Calculates the exchange energy for the pbe hole model in a truncated coulomb potential, considering the long range part only. Can be used as longrange correction to a truncated Hartree Fock calculation

source: xc_xpbe_hole_t_c_lr.F
Loading...

public Subroutines/Functions:

low level routine that calculates the energy derivatives in one point
low level routine that calculates the energy derivatives in one point
evaluates the pbe-hole exchange in a truncated coulomb potential
returns various information on the functional
evaluates the pbe-hole exchange in a truncated coulomb potential
returns various information on the functional

SUBROUTINExpbe_hole_t_c_lr_lda_calc_1(e_0, e_rho, e_ndrho, rho, ndrho, sscale, sx, r, order)

low level routine that calculates the energy derivatives in one point

Arguments:
REAL(dp),
INTENT(inout)
:: e_0 derivatives of the energy on the grid
REAL(dp),
INTENT(inout)
:: e_rho derivatives of the energy on the grid
REAL(dp),
INTENT(inout)
:: e_ndrho derivatives of the energy on the grid
REAL(dp),
INTENT(in)
:: rho value of density on the grid
REAL(dp),
INTENT(in)
:: ndrho value of gradient on the grid
REAL(dp),
INTENT(in)
:: sscale functional parameters
REAL(dp),
INTENT(in)
:: sx functional parameters
REAL(dp),
INTENT(in)
:: r functional parameters
INTEGER,
INTENT(in)
:: order order of the derivatives

SUBROUTINExpbe_hole_t_c_lr_lda_calc_2(e_0, e_rho, e_ndrho, rho, ndrho, sscale, sx, r, order)

low level routine that calculates the energy derivatives in one point

Arguments:
REAL(dp),
INTENT(inout)
:: e_0 derivatives of the energy on the grid
REAL(dp),
INTENT(inout)
:: e_rho derivatives of the energy on the grid
REAL(dp),
INTENT(inout)
:: e_ndrho derivatives of the energy on the grid
REAL(dp),
INTENT(in)
:: rho value of density on the grid
REAL(dp),
INTENT(in)
:: ndrho value of gradient on the grid
REAL(dp),
INTENT(in)
:: sscale functional parameters
REAL(dp),
INTENT(in)
:: sx functional parameters
REAL(dp),
INTENT(in)
:: r functional parameters
INTEGER,
INTENT(in)
:: order order of the derivatives

SUBROUTINExpbe_hole_t_c_lr_lda_eval(rho_set, deriv_set, order, params)

evaluates the pbe-hole exchange in a truncated coulomb potential

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)

SUBROUTINExpbe_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

SUBROUTINExpbe_hole_t_c_lr_lsd_eval(rho_set, deriv_set, order, params)

evaluates the pbe-hole exchange in a truncated coulomb potential

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)

SUBROUTINExpbe_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