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, force_host)
 
subroutine xc_vxc_oct_m::xc_update_internal_quantities (gr, xcs, st, kpoints, namespace, space, rho, quantities, ispin, rcell_volume, force_orbitalfree, force_host)
 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 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)
 

Variables

type(accel_kernel_t), save xc_vxc_oct_m::kernel_xc_dens_extract_block
 
type(accel_kernel_t), save xc_vxc_oct_m::kernel_xc_dens_apply_corrections
 

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 942 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 1046 of file xc_vxc.F90.

◆ lda_end()

subroutine xc_compute_vxc::lda_end
private

deallocate variables allocated in lda_init

Definition at line 1074 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 1091 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 1131 of file xc_vxc.F90.

◆ gga_end()

subroutine xc_compute_vxc::gga_end
private

cleans up memory allocated in gga_init

Definition at line 1144 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 1159 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 1223 of file xc_vxc.F90.

◆ mgga_end()

subroutine xc_compute_vxc::mgga_end
private

clean up memory allocated in mgga_init

Definition at line 1235 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 1245 of file xc_vxc.F90.

◆ mgga_process()

subroutine xc_compute_vxc::mgga_process
private

calculate the mgga contribution to vxc

Definition at line 1372 of file xc_vxc.F90.