Octopus
xc_vxc.F90 File Reference

Go to the source code of this file.

Modules

module  xc_vxc_oct_m
 

Functions/Subroutines

subroutine, public xc_vxc_oct_m::xc_get_vxc (gr, xcs, st, kpoints, psolver, namespace, space, rho, ispin, rcell_volume, vxc, ex, ec, deltaxc, vtau, ex_density, ec_density, stress_xc, force_orbitalfree)
 
subroutine xc_vxc_oct_m::xc_update_internal_quantities (gr, xcs, st, kpoints, namespace, space, rho, quantities, ispin, rcell_volume, force_orbitalfree)
 Given a functional, we are updating/transfering/computing the needed internal quantities that are later needed to perform an actual call to xc_compute_vxc. More...
 
subroutine xc_vxc_oct_m::xc_release_internal_quantities (quantities)
 
subroutine xc_vxc_oct_m::xc_compute_vxc (der, xcs, st, psolver, namespace, space, quantities, ispin, vxc, ex, ec, deltaxc, vtau, ex_density, ec_density, stress_xc)
 
subroutine space_loop_init (ip, np, nblock)
 
subroutine lda_init ()
 Takes care of the initialization of the LDA part of the functionals *) allocates density and dedd, and their local variants *) calculates the density taking into account nlcc and non-collinear spin. More...
 
subroutine lda_end ()
 deallocate variables allocated in lda_init More...
 
subroutine lda_process ()
 calculates the LDA part of vxc, taking into account non-collinear spin More...
 
subroutine gga_init ()
 initialize GGAs *) allocates gradient of the density (gdens), dedgd, and its local variants More...
 
subroutine gga_end ()
 cleans up memory allocated in gga_init More...
 
subroutine gga_process ()
 calculates the GGA contribution to vxc More...
 
subroutine mgga_init ()
 initialize meta-GGAs *) allocate the kinetic-energy density, dedtau, and local variants More...
 
subroutine mgga_end ()
 clean up memory allocated in mgga_init More...
 
subroutine local_allocate ()
 THREADSAFE (no SAFE ALLOCATE or PUSH/POP SUB) More...
 
subroutine local_deallocate ()
 THREADSAFE (no SAFE ALLOCATE or PUSH/POP SUB) More...
 
subroutine mgga_process ()
 calculate the mgga contribution to vxc More...
 
pure logical function xc_vxc_oct_m::functional_needs_laplacian (functl)
 
subroutine xc_vxc_oct_m::xc_density_correction_calc (xcs, der, psolver, namespace, space, nspin, density, refvx, vxc, deltaxc)
 
real(real64) function xc_vxc_oct_m::get_qxc (mesh, nxc, density, ncutoff)
 
subroutine xc_vxc_oct_m::copy_global_to_local (global, local, n_block, nspin, ip)
 
subroutine xc_vxc_oct_m::copy_local_to_global (local, global, n_block, spin_channels, ip)
 

Function/Subroutine Documentation

◆ space_loop_init()

subroutine xc_compute_vxc::space_loop_init ( integer, intent(in)  ip,
integer, intent(in)  np,
integer, intent(out)  nblock 
)
private

Definition at line 803 of file xc_vxc.F90.

◆ lda_init()

subroutine xc_compute_vxc::lda_init
private

Takes care of the initialization of the LDA part of the functionals *) allocates density and dedd, and their local variants *) calculates the density taking into account nlcc and non-collinear spin.

Definition at line 847 of file xc_vxc.F90.

◆ lda_end()

subroutine xc_compute_vxc::lda_end
private

deallocate variables allocated in lda_init

Definition at line 875 of file xc_vxc.F90.

◆ lda_process()

subroutine xc_compute_vxc::lda_process
private

calculates the LDA part of vxc, taking into account non-collinear spin

Definition at line 892 of file xc_vxc.F90.

◆ gga_init()

subroutine xc_compute_vxc::gga_init
private

initialize GGAs *) allocates gradient of the density (gdens), dedgd, and its local variants

Definition at line 936 of file xc_vxc.F90.

◆ gga_end()

subroutine xc_compute_vxc::gga_end
private

cleans up memory allocated in gga_init

Definition at line 949 of file xc_vxc.F90.

◆ gga_process()

subroutine xc_compute_vxc::gga_process
private

calculates the GGA contribution to vxc

For the spinor case, we follow Peralta, Scuseria, and Frisch, PRB 75, 125119 (2007). This correspond to compute the GGAs in the local frame and then rotate back. This does not lead to any exchange-correlation torque

Definition at line 964 of file xc_vxc.F90.

◆ mgga_init()

subroutine xc_compute_vxc::mgga_init
private

initialize meta-GGAs *) allocate the kinetic-energy density, dedtau, and local variants

Definition at line 1028 of file xc_vxc.F90.

◆ mgga_end()

subroutine xc_compute_vxc::mgga_end
private

clean up memory allocated in mgga_init

Definition at line 1040 of file xc_vxc.F90.

◆ local_allocate()

subroutine xc_compute_vxc::local_allocate
private

THREADSAFE (no SAFE ALLOCATE or PUSH/POP SUB)

Definition at line 1050 of file xc_vxc.F90.

◆ local_deallocate()

subroutine xc_compute_vxc::local_deallocate
private

THREADSAFE (no SAFE ALLOCATE or PUSH/POP SUB)

Definition at line 1076 of file xc_vxc.F90.

◆ mgga_process()

subroutine xc_compute_vxc::mgga_process
private

calculate the mgga contribution to vxc

Definition at line 1098 of file xc_vxc.F90.