Octopus
xc_noncollinear.F90 File Reference

Go to the source code of this file.

Modules

module  xc_noncollinear_oct_m
 

Functions/Subroutines

subroutine, public xc_noncollinear_oct_m::xc_get_nc_vxc (gr, xcs, st, kpoints, space, namespace, rho, vxc, ex, ec, vtau, ex_density, ec_density)
 This routines is similar to xc_get_vxc but for noncollinear functionals, which are not implemented in libxc. More...
 
subroutine xc_noncollinear_oct_m::xc_nc_update_internal_quantities (gr, xcs, st, kpoints, space, namespace, rho, quantities)
 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_noncollinear_oct_m::xc_compute_vxc_nc (gr, xcs, st, namespace, quantities, vxc, ex, ec, vtau, ex_density, ec_density)
 This routines is similar to xc_update_internal_quantities but for noncollinear functionals, which are not implemented in libxc. More...
 
subroutine space_loop_init (ip, np, nblock)
 
subroutine nc_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 nc_lda_end ()
 deallocate variables allocated in nc_lda_init More...
 
subroutine nc_lda_process ()
 calculates the LDA part of vxc More...
 
subroutine nc_gga_init ()
 initialize GGAs *) allocates gradient of the density (gdens), dedgd, and its local variants More...
 
subroutine nc_gga_end ()
 cleans up memory allocated in gga_init More...
 
subroutine nc_gga_process ()
 calculates the GGA contribution to vxc More...
 
subroutine nc_mgga_init ()
 initialize meta-GGAs *) allocate the kinetic-energy density, dedtau, and local variants More...
 
subroutine nc_mgga_end ()
 clean up memory allocated in nc_mgga_init More...
 
subroutine nc_mgga_process ()
 calculate the mgga contribution to vxc 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 xc_noncollinear_oct_m::nc_mgga_exc_vxc (functl, namespace, n_block, l_dens, l_sigma, l_ldens, l_tau, l_dedd, l_vsigma, l_deddldens, l_dedtau, l_zk)
 Interface between the generic call to get the energy and potential and the calls to each specific functionals. More...
 
subroutine xc_noncollinear_oct_m::nc_br_vxc_exc (l_dens, l_sigma, l_ldens, l_tau, gamma, explicit, l_dedd, l_vsigma, l_dedldens, l_dedtau, l_zk)
 Computes the local curvature of the exchange-hole and get the corresponding values of x and b. More...
 
real(real64) function xc_noncollinear_oct_m::nc_br_get_x (ldens, lcurv)
 Computes the coefficient x from the local density and the local curvature of the exchange hole, see Eq. B7 in PRB 107, 165111 (2023) More...
 
real(real64) function xc_noncollinear_oct_m::nc_br_get_x_explicit (ldens, lcurv)
 Computes the coefficient x from the local density and the local curvature of the exchange hole, see Eq. B7 in PRB 107, 165111 (2023) More...
 
real(real64) function xc_noncollinear_oct_m::nc_br_rtsafe (rhs, tol)
 This is inspired by the safe Newton-Raphson method from numerical recipies This function returns the value of x that fulfill the equation \(x exp(-2/3*x)/(x-2) = rhs\). More...
 
subroutine xc_noncollinear_oct_m::nc_cs_vxc_exc (l_dens, l_sigma, l_ldens, l_tau, l_dedd, l_vsigma, l_dedldens, l_dedtau, l_zk)
 Implements the correlation energy functional defined in Tancogne-Dejean et al., PRB 107, 165111 (2023) More...
 
subroutine xc_noncollinear_oct_m::copy_global_to_local (global, local, n_block, nspin, ip)
 
subroutine xc_noncollinear_oct_m::copy_local_to_global (local, global, n_block, spin_channels, ip)
 
subroutine xc_noncollinear_oct_m::xc_release_internal_quantities (quantities)
 

Function/Subroutine Documentation

◆ space_loop_init()

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

Definition at line 518 of file xc_noncollinear.F90.

◆ nc_lda_init()

subroutine xc_compute_vxc_nc::nc_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 552 of file xc_noncollinear.F90.

◆ nc_lda_end()

subroutine xc_compute_vxc_nc::nc_lda_end
private

deallocate variables allocated in nc_lda_init

Definition at line 580 of file xc_noncollinear.F90.

◆ nc_lda_process()

subroutine xc_compute_vxc_nc::nc_lda_process
private

calculates the LDA part of vxc

Definition at line 596 of file xc_noncollinear.F90.

◆ nc_gga_init()

subroutine xc_compute_vxc_nc::nc_gga_init
private

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

Definition at line 611 of file xc_noncollinear.F90.

◆ nc_gga_end()

subroutine xc_compute_vxc_nc::nc_gga_end
private

cleans up memory allocated in gga_init

Definition at line 623 of file xc_noncollinear.F90.

◆ nc_gga_process()

subroutine xc_compute_vxc_nc::nc_gga_process
private

calculates the GGA contribution to vxc

Definition at line 633 of file xc_noncollinear.F90.

◆ nc_mgga_init()

subroutine xc_compute_vxc_nc::nc_mgga_init
private

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

Definition at line 654 of file xc_noncollinear.F90.

◆ nc_mgga_end()

subroutine xc_compute_vxc_nc::nc_mgga_end
private

clean up memory allocated in nc_mgga_init

Definition at line 666 of file xc_noncollinear.F90.

◆ nc_mgga_process()

subroutine xc_compute_vxc_nc::nc_mgga_process
private

calculate the mgga contribution to vxc

Definition at line 676 of file xc_noncollinear.F90.

◆ local_allocate()

subroutine xc_compute_vxc_nc::local_allocate
private

THREADSAFE (no SAFE ALLOCATE or PUSH/POP SUB)

Definition at line 698 of file xc_noncollinear.F90.

◆ local_deallocate()

subroutine xc_compute_vxc_nc::local_deallocate
private

THREADSAFE (no SAFE ALLOCATE or PUSH/POP SUB)

Definition at line 717 of file xc_noncollinear.F90.