functional_xc Module

DFT calculation for the atomic system using the GPS discretization written by Son, Sang-Kil in Nov. 2004 modified by Son, Sang-Kil in Jul. 2010 implementing more functionals

This module contains potential vectors and energy functional for exchange-correlation parts. You may check supported method in readin.f90 - exchange: LDA, LSDA, Xa, LB, LBa - correlation: VWN, PW

Ref) Parr and Yang, "Density-Functional Theory of Atoms and Molecules" Tong and Chu, PRA 55, 3406 (1997) Other references for each functional are listed for each comment.



Interfaces

public interface potential_c

correlation potential

  • private function potential_c_nospin(p, rho) result(pot)

    Arguments

    Type IntentOptional Attributes Name
    type(param), intent(in) :: p
    real(kind=long), intent(in) :: rho(:)

    Return Value real(kind=long), (size(rho))

  • public interface potential_c()

    correlation potential

    Arguments

    None

public interface functional_c

correlation functional

  • private function functional_c_nospin(p, g, rho) result(e)

    Arguments

    Type IntentOptional Attributes Name
    type(param), intent(in) :: p
    type(grid3d), intent(in) :: g
    real(kind=long), intent(in) :: rho(:)

    Return Value real(kind=long)

  • public interface functional_c()

    correlation functional

    Arguments

    None

Functions

public function potential_xc(p, rho, d_rho) result(pot)

General XC functionals potential_x or functional_x( P, G, rho ) potential_c or functional_c( P, G, rho_a, rho_b )

Read more…

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
real(kind=long), intent(in) :: rho(:)
real(kind=long), intent(in), optional :: d_rho(:)

Return Value real(kind=long), (size(rho))

public function potential_x(p, rho, d_rho) result(pot)

exchange potential

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
real(kind=long), intent(in) :: rho(:)
real(kind=long), intent(in), optional :: d_rho(:)

Return Value real(kind=long), (size(rho))

public function functional_x(p, g, rho, d_rho) result(e)

exchange functional

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(grid3d), intent(in) :: g
real(kind=long), intent(in) :: rho(:)
real(kind=long), intent(in), optional :: d_rho(:)

Return Value real(kind=long)

public function functional_c(p, g, rho_a, rho_b) result(e)

correlation functional

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(grid3d), intent(in) :: g
real(kind=long), intent(in) :: rho_a(:)
real(kind=long), intent(in) :: rho_b(:)

Return Value real(kind=long)