Octopus
xc_sic_oct_m Module Reference

Data Types

type  xc_sic_t
 This class contains information about the self-interaction correction. More...
 

Functions/Subroutines

subroutine, public xc_sic_init (sic, namespace, gr, st, mc, space)
 initialize the SIC object More...
 
subroutine, public xc_sic_end (sic)
 finalize the SIC and, if needed, the included OEP More...
 
subroutine, public xc_sic_write_info (sic, iunit, namespace)
 
subroutine, public xc_sic_calc_adsic (sic, namespace, space, gr, st, hm, xc, density, vxc, ex, ec)
 Computes the ADSIC potential and energy. More...
 

Variables

integer, parameter, public sic_none = 1
 no self-interaction correction More...
 
integer, parameter, public sic_pz_oep = 2
 Perdew-Zunger SIC (OEP way) More...
 
integer, parameter, public sic_amaldi = 3
 Amaldi correction term. More...
 
integer, parameter, public sic_adsic = 4
 Averaged density SIC. More...
 

Function/Subroutine Documentation

◆ xc_sic_init()

subroutine, public xc_sic_oct_m::xc_sic_init ( type(xc_sic_t), intent(out)  sic,
type(namespace_t), intent(in)  namespace,
type(grid_t), intent(inout)  gr,
type(states_elec_t), intent(in)  st,
type(multicomm_t), intent(in)  mc,
class(space_t), intent(in)  space 
)

initialize the SIC object

Definition at line 167 of file xc_sic.F90.

◆ xc_sic_end()

subroutine, public xc_sic_oct_m::xc_sic_end ( type(xc_sic_t), intent(inout)  sic)

finalize the SIC and, if needed, the included OEP

Definition at line 236 of file xc_sic.F90.

◆ xc_sic_write_info()

subroutine, public xc_sic_oct_m::xc_sic_write_info ( type(xc_sic_t), intent(in)  sic,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)

Definition at line 250 of file xc_sic.F90.

◆ xc_sic_calc_adsic()

subroutine, public xc_sic_oct_m::xc_sic_calc_adsic ( type(xc_sic_t), intent(in)  sic,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(hamiltonian_elec_t), intent(in)  hm,
type(xc_t), intent(inout)  xc,
real(real64), dimension(:,:), intent(in), contiguous  density,
real(real64), dimension(:,:), intent(inout), contiguous  vxc,
real(real64), intent(inout), optional  ex,
real(real64), intent(inout), optional  ec 
)

Computes the ADSIC potential and energy.

ADSIC potential is:

\[ V_ADSIC[n] = V_ks[n] - (V_h[n/N] + V_xc[n_{up}/N_{up},0] + Vxc(0, n_{dn}/N_{dn})) \]

\[ E_ADSIC[n] = E - [N E_H[n/N] + N_{up} E_xc[n_{up}/N_{up},0] + N_{dn} Exc(0, n_{dn}/N_{dn}) \]

C. Legrand et al., J. Phys. B: At. Mol. Opt. Phys. 35 (2002) 1115–1128

Note
The Hartree term is wrong in the above reference, see See Eq. 15 in [Pietezak and Vieira, Theoretical Chemistry Accounts (2021) 140:130] instead or Eq. 38 in the Perdew-Zunger paper.

Definition at line 281 of file xc_sic.F90.

Variable Documentation

◆ sic_none

integer, parameter, public xc_sic_oct_m::sic_none = 1

no self-interaction correction

Definition at line 148 of file xc_sic.F90.

◆ sic_pz_oep

integer, parameter, public xc_sic_oct_m::sic_pz_oep = 2

Perdew-Zunger SIC (OEP way)

Definition at line 148 of file xc_sic.F90.

◆ sic_amaldi

integer, parameter, public xc_sic_oct_m::sic_amaldi = 3

Amaldi correction term.

Definition at line 148 of file xc_sic.F90.

◆ sic_adsic

integer, parameter, public xc_sic_oct_m::sic_adsic = 4

Averaged density SIC.

Definition at line 148 of file xc_sic.F90.