Octopus
xc_vxc_oct_m Module Reference

Functions/Subroutines

subroutine, public 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_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_release_internal_quantities (quantities)
 
subroutine xc_compute_vxc (der, xcs, st, psolver, namespace, space, quantities, ispin, vxc, ex, ec, deltaxc, vtau, ex_density, ec_density, stress_xc)
 
pure logical function functional_needs_laplacian (functl)
 
subroutine xc_density_correction_calc (xcs, der, psolver, namespace, space, nspin, density, refvx, vxc, deltaxc)
 
real(real64) function get_qxc (mesh, nxc, density, ncutoff)
 
subroutine copy_global_to_local (global, local, n_block, nspin, ip)
 
subroutine copy_local_to_global (local, global, n_block, spin_channels, ip)
 

Function/Subroutine Documentation

◆ xc_get_vxc()

subroutine, public xc_vxc_oct_m::xc_get_vxc ( type(grid_t), intent(in)  gr,
type(xc_t), intent(inout), target  xcs,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
type(poisson_t), intent(in)  psolver,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
real(real64), dimension(:,:), intent(in), target  rho,
integer, intent(in)  ispin,
real(real64), intent(in)  rcell_volume,
real(real64), dimension(:,:), intent(inout), optional, contiguous  vxc,
real(real64), intent(inout), optional  ex,
real(real64), intent(inout), optional  ec,
real(real64), intent(inout), optional  deltaxc,
real(real64), dimension(:,:), intent(inout), optional, contiguous  vtau,
real(real64), dimension(:), intent(out), optional, target  ex_density,
real(real64), dimension(:), intent(out), optional, target  ec_density,
real(real64), dimension(:,:), intent(out), optional  stress_xc,
logical, intent(in), optional  force_orbitalfree 
)
Parameters
[in]grDiscretization and the derivative operators and details
[in,out]xcsDetails about the xc functional used
[in]stState of the system (wavefunction,eigenvalues...)
[in]ispinNumber of spin channels
[in]rcell_volumeLattice unit cell volume.
[in,out]vxcXC potential
[in,out]exExchange energy.
[in,out]ecCorrelation energy.
[in,out]deltaxcThe XC derivative discontinuity
[in,out]vtauDerivative wrt (two times kinetic energy density)
[out]ex_densityThe exchange energy density
[out]ec_densityThe correlation energy density
[out]stress_xcGGA and beyond contribution to the stress tensor
[in]force_orbitalfreeForce doing a calculation without orbitals

Definition at line 183 of file xc_vxc.F90.

◆ xc_update_internal_quantities()

subroutine xc_vxc_oct_m::xc_update_internal_quantities ( type(grid_t), intent(in)  gr,
type(xc_t), intent(inout), target  xcs,
type(states_elec_t), intent(in)  st,
type(kpoints_t), intent(in)  kpoints,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
real(real64), dimension(:,:), intent(in), target  rho,
type(internal_quantities_t), intent(inout)  quantities,
integer, intent(in)  ispin,
real(real64), intent(in)  rcell_volume,
logical, intent(in), optional  force_orbitalfree 
)
private

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.

Parameters
[in]grDiscretization and the derivative operators and details
[in,out]xcsDetails about the xc functional used
[in]stState of the system (wavefunction,eigenvalues...)
[in,out]quantitiesInternal quantities
[in]ispinNumber of spin channels
[in]rcell_volumeLattice unit cell volume.
[in]force_orbitalfreeForce doing a calculation without orbitals

Definition at line 222 of file xc_vxc.F90.

◆ xc_release_internal_quantities()

subroutine xc_vxc_oct_m::xc_release_internal_quantities ( type(internal_quantities_t), intent(inout)  quantities)
private

Definition at line 393 of file xc_vxc.F90.

◆ xc_compute_vxc()

subroutine xc_vxc_oct_m::xc_compute_vxc ( type(derivatives_t), intent(in)  der,
type(xc_t), intent(inout), target  xcs,
type(states_elec_t), intent(in)  st,
type(poisson_t), intent(in)  psolver,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(internal_quantities_t), intent(inout)  quantities,
integer, intent(in)  ispin,
real(real64), dimension(:,:), intent(inout), optional, contiguous  vxc,
real(real64), intent(inout), optional  ex,
real(real64), intent(inout), optional  ec,
real(real64), intent(inout), optional  deltaxc,
real(real64), dimension(:,:), intent(inout), optional, contiguous  vtau,
real(real64), dimension(:), intent(out), optional, target  ex_density,
real(real64), dimension(:), intent(out), optional, target  ec_density,
real(real64), dimension(:,:), intent(out), optional  stress_xc 
)
private
Parameters
[in]derDiscretization and the derivative operators and details
[in,out]xcsDetails about the xc functional used
[in]stState of the system (wavefunction,eigenvalues...)
[in,out]quantitiesInternal quantities
[in]ispinNumber of spin channels
[in,out]vxcXC potential
[in,out]exExchange energy.
[in,out]ecCorrelation energy.
[in,out]deltaxcThe XC derivative discontinuity
[in,out]vtauDerivative wrt (two times kinetic energy density)
[out]ex_densityThe exchange energy density
[out]ec_densityThe correlation energy density
[out]stress_xcGGA and beyond contribution to the stress tensor

Definition at line 408 of file xc_vxc.F90.

◆ functional_needs_laplacian()

pure logical function xc_vxc_oct_m::functional_needs_laplacian ( type(xc_functional_t), dimension(:), intent(in)  functl)
private

Definition at line 1120 of file xc_vxc.F90.

◆ xc_density_correction_calc()

subroutine xc_vxc_oct_m::xc_density_correction_calc ( type(xc_t), intent(in)  xcs,
type(derivatives_t), intent(in)  der,
type(poisson_t), intent(in)  psolver,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
integer, intent(in)  nspin,
real(real64), dimension(:, :), intent(in)  density,
real(real64), dimension(:), intent(inout)  refvx,
real(real64), dimension(:, :), intent(inout)  vxc,
real(real64), intent(out), optional  deltaxc 
)
private

Definition at line 1135 of file xc_vxc.F90.

◆ get_qxc()

real(real64) function xc_vxc_oct_m::get_qxc ( type(mesh_t), intent(in)  mesh,
real(real64), dimension(:), intent(in)  nxc,
real(real64), dimension(:), intent(in)  density,
real(real64), intent(in)  ncutoff 
)
private

Definition at line 1330 of file xc_vxc.F90.

◆ copy_global_to_local()

subroutine xc_vxc_oct_m::copy_global_to_local ( real(real64), dimension(:,:), intent(in)  global,
real(real64), dimension(:,:), intent(out)  local,
integer, intent(in)  n_block,
integer, intent(in)  nspin,
integer, intent(in)  ip 
)
private

Definition at line 1365 of file xc_vxc.F90.

◆ copy_local_to_global()

subroutine xc_vxc_oct_m::copy_local_to_global ( real(real64), dimension(:,:), intent(in)  local,
real(real64), dimension(:,:), intent(inout)  global,
integer, intent(in)  n_block,
integer, intent(in)  spin_channels,
integer, intent(in)  ip 
)
private

Definition at line 1386 of file xc_vxc.F90.