Octopus
|
Data Types | |
type | internal_quantities_t |
type | xc_t |
Functions/Subroutines | |
subroutine, public | xc_write_info (xcs, iunit, namespace) |
subroutine, public | xc_init (xcs, namespace, ndim, periodic_dim, nel, x_id, c_id, xk_id, ck_id, hartree_fock, ispin) |
subroutine, public | xc_end (xcs) |
logical pure function, public | xc_is_orbital_dependent (xcs) |
Is the xc family orbital dependent. More... | |
pure logical function | family_is_gga (family, only_collinear) |
Is the xc function part of the GGA family. More... | |
pure logical function | family_is_supported (family) |
Is the xc family internally supported by Octopus. More... | |
pure logical function, public | family_is_mgga (family, only_collinear) |
Is the xc function part of the mGGA family. More... | |
logical pure function, public | family_is_mgga_with_exc (xcs) |
Is the xc function part of the mGGA family with an energy functional. More... | |
logical pure function, public | family_is_hybrid (xcs) |
Returns true if the functional is an hybrid functional. More... | |
pure logical function, public | in_family (family, xc_families) |
subroutine | copy_global_to_local (global, local, n_block, nspin, ip) |
make a local copy with the correct memory order for libxc More... | |
subroutine | copy_local_to_global (local, global, n_block, spin_channels, ip) |
subroutine | set_hybrid_params (xcs, namespace) |
Sets external parameters for some hybrid functionals. More... | |
logical function, public | xc_is_not_size_consistent (xcs, namespace) |
Is one of the x or c functional is not size consistent. More... | |
logical pure function, public | xc_is_energy_functional (xcs) |
Is one of the x or c functional is not an energy functional. More... | |
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, public | xc_get_fxc (xcs, mesh, namespace, rho, ispin, fxc, zfxc) |
subroutine, public | xc_get_kxc (xcs, mesh, namespace, rho, ispin, kxc) |
subroutine, public | 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_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_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... | |
pure logical function | family_is_nc_mgga (family) |
Returns true is the functional is a noncollinear functional. More... | |
subroutine | 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 | nc_br_vxc_exc (l_dens, l_sigma, l_ldens, l_tau, gamma, 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 | 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 | 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 | 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... | |
Variables | |
real(real64), parameter | tiny = 1.0e-12_real64 |
integer, parameter | lr_none = 0 |
integer, parameter | lr_x = 1 |
subroutine, public xc_oct_m::xc_write_info | ( | type(xc_t), intent(in) | xcs, |
integer, intent(in), optional | iunit, | ||
type(namespace_t), intent(in), optional | namespace | ||
) |
subroutine, public xc_oct_m::xc_init | ( | type(xc_t), intent(out) | xcs, |
type(namespace_t), intent(in) | namespace, | ||
integer, intent(in) | ndim, | ||
integer, intent(in) | periodic_dim, | ||
real(real64), intent(in) | nel, | ||
integer, intent(in) | x_id, | ||
integer, intent(in) | c_id, | ||
integer, intent(in) | xk_id, | ||
integer, intent(in) | ck_id, | ||
logical, intent(in) | hartree_fock, | ||
integer, intent(in) | ispin | ||
) |
subroutine, public xc_oct_m::xc_end | ( | type(xc_t), intent(inout) | xcs | ) |
logical pure function, public xc_oct_m::xc_is_orbital_dependent | ( | type(xc_t), intent(in) | xcs | ) |
|
private |
|
private |
pure logical function, public xc_oct_m::family_is_mgga | ( | integer, intent(in), optional | family, |
logical, intent(in), optional | only_collinear | ||
) |
logical pure function, public xc_oct_m::family_is_mgga_with_exc | ( | type(xc_t), intent(in) | xcs | ) |
logical pure function, public xc_oct_m::family_is_hybrid | ( | type(xc_t), intent(in) | xcs | ) |
pure logical function, public xc_oct_m::in_family | ( | integer, intent(in) | family, |
integer, dimension(:), intent(in) | xc_families | ||
) |
|
private |
|
private |
|
private |
logical function, public xc_oct_m::xc_is_not_size_consistent | ( | type(xc_t), intent(in) | xcs, |
type(namespace_t), intent(in) | namespace | ||
) |
logical pure function, public xc_oct_m::xc_is_energy_functional | ( | type(xc_t), intent(in) | xcs | ) |
subroutine, public xc_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 | ||
) |
[in] | gr | Discretization and the derivative operators and details |
[in,out] | xcs | Details about the xc functional used |
[in] | st | State of the system (wavefunction,eigenvalues...) |
[in] | ispin | Number of spin channels |
[in] | rcell_volume | Lattice unit cell volume. |
[in,out] | vxc | XC potential |
[in,out] | ex | Exchange energy. |
[in,out] | ec | Correlation energy. |
[in,out] | deltaxc | The XC derivative discontinuity |
[in,out] | vtau | Derivative wrt (two times kinetic energy density) |
[out] | ex_density | The exchange energy density |
[out] | ec_density | The correlation energy density |
[out] | stress_xc | GGA and beyond contribution to the stress tensor |
[in] | force_orbitalfree | Force doing a calculation without orbitals |
|
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.
[in] | gr | Discretization and the derivative operators and details |
[in,out] | xcs | Details about the xc functional used |
[in] | st | State of the system (wavefunction,eigenvalues...) |
[in,out] | quantities | Internal quantities |
[in] | ispin | Number of spin channels |
[in] | rcell_volume | Lattice unit cell volume. |
[in] | force_orbitalfree | Force doing a calculation without orbitals |
|
private |
|
private |
[in] | der | Discretization and the derivative operators and details |
[in,out] | xcs | Details about the xc functional used |
[in] | st | State of the system (wavefunction,eigenvalues...) |
[in,out] | quantities | Internal quantities |
[in] | ispin | Number of spin channels |
[in,out] | vxc | XC potential |
[in,out] | ex | Exchange energy. |
[in,out] | ec | Correlation energy. |
[in,out] | deltaxc | The XC derivative discontinuity |
[in,out] | vtau | Derivative wrt (two times kinetic energy density) |
[out] | ex_density | The exchange energy density |
[out] | ec_density | The correlation energy density |
[out] | stress_xc | GGA and beyond contribution to the stress tensor |
|
private |
|
private |
|
private |
subroutine, public xc_oct_m::xc_get_fxc | ( | type(xc_t), intent(in), target | xcs, |
class(mesh_t), intent(in) | mesh, | ||
type(namespace_t), intent(in) | namespace, | ||
real(real64), dimension(:, :), intent(in) | rho, | ||
integer, intent(in) | ispin, | ||
real(real64), dimension(:,:,:), intent(inout) | fxc, | ||
complex(real64), dimension(:, :, :, :, :), intent(inout), optional | zfxc | ||
) |
subroutine, public xc_oct_m::xc_get_kxc | ( | type(xc_t), intent(in), target | xcs, |
class(mesh_t), intent(in) | mesh, | ||
type(namespace_t), intent(in) | namespace, | ||
real(real64), dimension(:, :), intent(in) | rho, | ||
integer, intent(in) | ispin, | ||
real(real64), dimension(:,:,:,:), intent(inout) | kxc | ||
) |
subroutine, public xc_oct_m::xc_get_nc_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(space_t), intent(in) | space, | ||
type(namespace_t), intent(in) | namespace, | ||
real(real64), dimension(:, :), intent(in) | rho, | ||
real(real64), dimension(:,:), intent(inout), contiguous | vxc, | ||
real(real64), intent(inout), optional | ex, | ||
real(real64), intent(inout), optional | ec, | ||
real(real64), dimension(:,:), intent(inout), optional | vtau, | ||
real(real64), dimension(:), intent(out), optional, target | ex_density, | ||
real(real64), dimension(:), intent(out), optional, target | ec_density | ||
) |
This routines is similar to xc_get_vxc but for noncollinear functionals, which are not implemented in libxc.
[in,out] | xcs | Details about the xc functional used |
[in] | st | State of the system (wavefunction,eigenvalues...) |
[in] | rho | Electronic density |
[in,out] | vxc | XC potential |
[in,out] | ex | Exchange energy. |
[in,out] | ec | Correlation energy. |
[in,out] | vtau | Derivative wrt (two times kinetic energy density) |
[out] | ex_density | The exchange energy density |
[out] | ec_density | The correlation energy density |
|
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.
[in] | gr | Discretization and the derivative operators and details |
[in,out] | xcs | Details about the xc functional used |
[in] | st | State of the system (wavefunction,eigenvalues...) |
[in,out] | quantities | Internal quantities |
|
private |
This routines is similar to xc_update_internal_quantities but for noncollinear functionals, which are not implemented in libxc.
[in,out] | xcs | Details about the xc functional used |
[in] | st | State of the system (wavefunction,eigenvalues...) |
[in,out] | quantities | Internal quantities |
[in,out] | vxc | XC potential |
[in,out] | ex | Exchange energy. |
[in,out] | ec | Correlation energy. |
[in,out] | vtau | Derivative wrt (two times kinetic energy density) |
[out] | ex_density | The exchange energy density |
[out] | ec_density | The correlation energy density |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |