Exchange-correlation integrator#
C++ definitions#
-
template<typename MatrixType>
class GauXC::XCIntegrator# -
using matrix_type = MatrixType#
The type of matrix data expected by the integrator kernels.
-
using value_type = matrix_type::value_type#
The scalar value type corresponding to the matrix type.
-
value_type integrate_den(const MatrixType &density_matrix) const#
Compute the total density to get the number of electrons.
- Parameters:
density_matrix – The input density matrix data.
- Returns:
The computed total density.
-
value_type eval_exc(const MatrixType &density_matrix) const#
Compute the exchange-correlation energy for a given density matrix.
- Parameters:
density_matrix – The input density matrix data.
- Returns:
The computed exchange-correlation energy.
-
value_type eval_exc(const MatrixType &density_matrix_s, const MatrixType &density_matrix_z) const#
Compute the exchange-correlation energy for a given density matrix.
- Parameters:
density_matrix_s – The input density matrix data for the spin-up component.
density_matrix_z – The input density matrix data for the spin-down component.
- Returns:
The computed exchange-correlation energy.
-
value_type eval_exc(const MatrixType &density_matrix_s, const MatrixType &density_matrix_z, const MatrixType &density_matrix_y, const MatrixType &density_matrix_x) const#
Compute the exchange-correlation energy for a given density matrix.
- Parameters:
density_matrix_s – The input density matrix data for the spin-up component.
density_matrix_z – The input density matrix data for the spin-down component.
density_matrix_y – The input density matrix data for the spin-y component.
density_matrix_x – The input density matrix data for the spin-x component.
- Returns:
The computed exchange-correlation energy.
-
std::tuple<value_type, matrix_type> eval_exc_vxc(const MatrixType &density_matrix)#
Compute the exchange-correlation energy and potential for a given density matrix.
- Parameters:
density_matrix – The input density matrix data.
- Returns:
The computed exchange-correlation energy and the computed exchange-correlation potential matrix.
-
std::tuple<value_type, matrix_type, matrix_type> eval_exc_vxc(const MatrixType &density_matrix_s, const MatrixType &density_matrix_z)#
Compute the exchange-correlation energy and potential for a given density matrix.
- Parameters:
density_matrix_s – The input density matrix data for the spin-up component.
density_matrix_z – The input density matrix data for the spin-down component.
- Returns:
The computed exchange-correlation energy and the computed exchange-correlation potential matrices for the total and spin-polarization components.
-
std::tuple<value_type, matrix_type, matrix_type> eval_exc_vxc_onedft(const MatrixType &density_matrix_s, const MatrixType &density_matrix_z, const OneDFTSettings settings)#
Compute the exchange-correlation energy and potential for a given density matrix.
Important
This function is available if
GAUXC_HAS_ONEDFTis defined or the CMake optionGAUXC_ENABLE_ONEDFTis enabled. It requires a compatible checkpoint for the Skala implementation of the functional, which can be specified with thesettingsparameter.- Parameters:
density_matrix_s – The input density matrix data for the spin-up component.
density_matrix_z – The input density matrix data for the spin-down component.
settings – The OneDFTSettings struct containing parameters for the Skala evaluation.
- Returns:
The computed exchange-correlation energy and the computed exchange-correlation potential matrices for the total and spin-polarization components.
-
std::tuple<value_type, matrix_type, matrix_type, matrix_type, matrix_type> eval_exc_vxc(const MatrixType &density_matrix_s, const MatrixType &density_matrix_z, const MatrixType &density_matrix_y, const MatrixType &density_matrix_x)#
Compute the exchange-correlation energy and potential for a given density matrix.
- Parameters:
density_matrix_s – The input density matrix data for the spin-up component.
density_matrix_z – The input density matrix data for the spin-down component.
density_matrix_y – The input density matrix data for the spin-y component.
density_matrix_x – The input density matrix data for the spin-x component.
- Returns:
The computed exchange-correlation energy and the computed exchange-correlation potential matrices for the total and spin-polarization components.
-
using matrix_type = MatrixType#
-
class GauXC::XCIntegratorFactory#
A factory class for creating instances of the XCIntegrator class based on specified parameters.
-
XCIntegratorFactory(ExecutionSpace ex, std::string integrator_input_type, std::string integrator_kernel_name, std::string local_work_kernel_name, std::string reduction_kernel_name)#
Create a new XCIntegratorFactory instance with the specified execution space and kernel names.
- Parameters:
ex – The execution space for which to create integrators.
integrator_input_type – The type of input data expected by the integrator kernels.
integrator_kernel_name – The name of the kernel to use for the main integration step.
local_work_kernel_name – The name of the kernel to use for computing local work sizes.
reduction_kernel_name – The name of the kernel to use for reduction operations.
-
XCIntegrator get_instance(const ExchCXX::Functional &func, const LoadBalancer &lb)#
Get an instance of the XCIntegrator class for the specified functional and load balancer.
- Parameters:
func – The exchange-correlation functional for which to get the integrator instance.
lb – The load balancer to use for the integrator instance.
- Returns:
An instance of the XCIntegrator class initialized with the specified parameters.
Get a shared pointer to an instance of the XCIntegrator class for the specified functional and load balancer.
- Parameters:
func – The exchange-correlation functional for which to get the integrator instance.
lb – The load balancer to use for the integrator instance.
- Returns:
A shared pointer to an instance of the XCIntegrator class initialized with the specified parameters.
-
XCIntegratorFactory(ExecutionSpace ex, std::string integrator_input_type, std::string integrator_kernel_name, std::string local_work_kernel_name, std::string reduction_kernel_name)#
-
struct GauXC::OneDFTSettings#
A struct containing settings for the Skala implementation of the exchange-correlation functional.
- model
The model checkpoint to use for evaluating the exchange-correlation energy and potential with the Skala implementation.
-
class ExchCXX::Functional#
A class representing an exchange-correlation functional in the ExchCXX library, which can be used with GauXC integrators.
C bindings#
-
struct GauXCIntegrator#
Opaque type representing an exchange-correlation integrator instance.
-
GauXCIntegrator gauxc_integrator_new(GauXCStatus *status, const GauXCFunctional functional, const GauXCLoadBalancer lb, enum GauXC_ExecutionSpace ex, const char *integrator_input_type, const char *integrator_kernel_name, const char *local_work_kernel_name, const char *reduction_kernel_name)#
Create a new exchange-correlation integrator instance with the specified functional, load balancer, execution space, and kernel names.
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
functional – The exchange-correlation functional for which to create the integrator.
lb – The load balancer to use for the integrator.
ex – The execution space for which to create the integrator.
integrator_input_type – The type of input data expected by the integrator kernels.
integrator_kernel_name – The name of the kernel to use for the main integration step.
local_work_kernel_name – The name of the kernel to use for computing local work sizes.
reduction_kernel_name – The name of the kernel to use for reduction operations.
- Returns:
A new GauXCIntegrator instance initialized with the specified parameters.
-
void gauxc_integrator_integrate_den(GauXCStatus *status, GauXCIntegrator integrator, const int64_t m, const int64_t n, const double *density_matrix, const int64_t ldp, double *den)#
Compute the total density to get the number of electrons
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – The GauXCIntegrator instance to use for the integration.
m – The number of rows in the density matrix.
n – The number of columns in the density matrix.
density_matrix – Pointer to the input density matrix data.
ldp – The leading dimension of the density matrix.
den – Pointer to the output variable where the computed total density will be stored.
-
void gauxc_integrator_eval_exc_rks(GauXCStatus *status, GauXCIntegrator integrator, const int64_t m, const int64_t n, const double *density_matrix, const int64_t ldp, double *exc)#
Compute the exchange-correlation energy for a given density matrix.
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – The GauXCIntegrator instance to use for the integration.
m – The number of rows in the density matrix.
n – The number of columns in the density matrix.
density_matrix – Pointer to the input density matrix data.
ldp – The leading dimension of the density matrix.
exc – Pointer to the output variable where the computed exchange-correlation energy will be stored.
-
void gauxc_integrator_eval_exc_uks(GauXCStatus *status, GauXCIntegrator integrator, const int64_t m, const int64_t n, const double *density_matrix_s, const int64_t ldp_s, const double *density_matrix_z, const int64_t ldp_z, double *exc)#
Compute the exchange-correlation energy for a given density matrix.
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – The GauXCIntegrator instance to use for the integration.
m – The number of rows in the density matrix.
n – The number of columns in the density matrix.
density_matrix_s – Pointer to the input density matrix data.
ldp_s – The leading dimension of the density matrix.
density_matrix_z – Pointer to the input density matrix data.
ldp_z – The leading dimension of the density matrix.
exc – Pointer to the output variable where the computed exchange-correlation energy will be stored.
-
void gauxc_integrator_eval_exc_gks(GauXCStatus *status, GauXCIntegrator integrator, const int64_t m, const int64_t n, const double *density_matrix_s, const int64_t ldp_s, const double *density_matrix_z, const int64_t ldp_z, const double *density_matrix_y, const int64_t ldp_y, const double *density_matrix_x, const int64_t ldp_x, double *exc)#
Compute the exchange-correlation energy for a given density matrix.
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – The GauXCIntegrator instance to use for the integration.
m – The number of rows in the density matrix.
n – The number of columns in the density matrix.
density_matrix_s – Pointer to the input density matrix data.
ldp_s – The leading dimension of the density matrix.
density_matrix_z – Pointer to the input density matrix data.
ldp_z – The leading dimension of the density matrix.
density_matrix_y – Pointer to the input density matrix data.
ldp_y – The leading dimension of the density matrix.
density_matrix_x – Pointer to the input density matrix data.
ldp_x – The leading dimension of the density matrix.
exc – Pointer to the output variable where the computed exchange-correlation energy will be stored.
-
void gauxc_integrator_eval_exc_vxc_rks(GauXCStatus *status, GauXCIntegrator integrator, const int64_t m, const int64_t n, const double *density_matrix, const int64_t ldp, double *exc, double *vxc_matrix, const int64_t ldp_vxc)#
Compute the exchange-correlation energy and potential for a given density matrix.
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – The GauXCIntegrator instance to use for the integration.
m – The number of rows in the density matrix.
n – The number of columns in the density matrix.
density_matrix – Pointer to the input density matrix data.
ldp – The leading dimension of the density matrix.
exc – Pointer to the output variable where the computed exchange-correlation energy will be stored.
vxc_matrix – Pointer to the output array where the computed exchange-correlation potential matrix will be stored.
ldp_vxc – The leading dimension of the vxc_matrix array.
-
void gauxc_integrator_eval_exc_vxc_uks(GauXCStatus *status, GauXCIntegrator integrator, const int64_t m, const int64_t n, const double *density_matrix_s, const int64_t ldp_s, const double *density_matrix_z, const int64_t ldp_z, double *exc, double *vxc_matrix_s, const int64_t ldp_vxc_s, double *vxc_matrix_z, const int64_t ldp_vxc_z)#
Compute the exchange-correlation energy and potential for a given density matrix.
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – The GauXCIntegrator instance to use for the integration.
m – The number of rows in the density matrix.
n – The number of columns in the density matrix.
density_matrix_s – Pointer to the input density matrix data.
ldp_s – The leading dimension of the density matrix.
density_matrix_z – Pointer to the input density matrix data.
ldp_z – The leading dimension of the density matrix.
exc – Pointer to the output variable where the computed exchange-correlation energy will be stored.
vxc_matrix_s – Pointer to the output array where the computed exchange-correlation potential matrix for the spin-up component will be stored.
ldp_vxc_s – The leading dimension of the vxc_matrix_s array.
vxc_matrix_z – Pointer to the output array where the computed exchange-correlation potential matrix for the spin-down component will be stored.
ldp_vxc_z – The leading dimension of the vxc_matrix_z array.
-
void gauxc_integrator_eval_exc_vxc_onedft_uks(GauXCStatus *status, GauXCIntegrator integrator, const int64_t m, const int64_t n, const double *density_matrix_s, const int64_t ldp_s, const double *density_matrix_z, const int64_t ldp_z, const char *model, double *exc, double *vxc_matrix_s, const int64_t ldp_vxc_s, double *vxc_matrix_z, const int64_t ldp_vxc_z)#
Compute the exchange-correlation energy and potential for a given density matrix.
Important
This function is available if
GAUXC_HAS_ONEDFTis defined or the CMake optionGAUXC_ENABLE_ONEDFTis enabled. It requires a compatible checkpoint for the Skala implementation of the functional, which can be specified with themodelparameter.- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – The GauXCIntegrator instance to use for the integration.
m – The number of rows in the density matrix.
n – The number of columns in the density matrix.
density_matrix_s – Pointer to the input density matrix data.
ldp_s – The leading dimension of the density matrix.
density_matrix_z – Pointer to the input density matrix data.
ldp_z – The leading dimension of the density matrix.
model – The model checkpoint to use for evaluating the exchange-correlation energy and potential.
exc – Pointer to the output variable where the computed exchange-correlation energy will be stored.
vxc_matrix_s – Pointer to the output array where the computed exchange-correlation potential matrix for the spin-up component will be stored.
ldp_vxc_s – The leading dimension of the vxc_matrix_s array.
vxc_matrix_z – Pointer to the output array where the computed exchange-correlation potential matrix for the spin-down component will be stored.
ldp_vxc_z – The leading dimension of the vxc_matrix_z array.
-
void gauxc_integrator_eval_exc_vxc_gks(GauXCStatus *status, GauXCIntegrator integrator, const int64_t m, const int64_t n, const double *density_matrix_s, const int64_t ldp_s, const double *density_matrix_z, const int64_t ldp_z, const double *density_matrix_y, const int64_t ldp_y, const double *density_matrix_x, const int64_t ldp_x, double *exc, double *vxc_matrix_s, const int64_t ldp_vxc_s, double *vxc_matrix_z, const int64_t ldp_vxc_z, double *vxc_matrix_y, const int64_t ldp_vxc_y, double *vxc_matrix_x, const int64_t ldp_vxc_x)#
Compute the exchange-correlation energy and potential for a given density matrix.
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – The GauXCIntegrator instance to use for the integration.
m – The number of rows in the density matrix.
n – The number of columns in the density matrix.
density_matrix_s – Pointer to the input density matrix data.
ldp_s – The leading dimension of the density matrix.
density_matrix_z – Pointer to the input density matrix data.
ldp_z – The leading dimension of the density matrix.
density_matrix_y – Pointer to the input density matrix data.
ldp_y – The leading dimension of the density matrix.
density_matrix_x – Pointer to the input density matrix data.
ldp_x – The leading dimension of the density matrix.
exc – Pointer to the output variable where the computed exchange-correlation energy will be stored.
vxc_matrix_s – Pointer to the output array where the computed exchange-correlation potential matrix for the spin-up component will be stored.
ldp_vxc_s – The leading dimension of the vxc_matrix_s array.
vxc_matrix_z – Pointer to the output array where the computed exchange-correlation potential matrix for the spin-down component will be stored.
ldp_vxc_z – The leading dimension of the vxc_matrix_z array.
vxc_matrix_y – Pointer to the output array where the computed exchange-correlation potential matrix for the spin-y component will be stored.
ldp_vxc_y – The leading dimension of the vxc_matrix_y array.
vxc_matrix_x – Pointer to the output array where the computed exchange-correlation potential matrix for the spin-x component will be stored.
ldp_vxc_x – The leading dimension of the vxc_matrix_x array.
-
void gauxc_integrator_delete(GauXCStatus *status, GauXCIntegrator *integrator)#
Delete an exchange-correlation integrator instance.
- Parameters:
status – Pointer to a GauXCStatus struct where the status of the operation will be stored.
integrator – Pointer to the GauXCIntegrator instance to be deleted.
-
GauXCIntegrator gauxc_integrator_new(GauXCStatus *status, const GauXCFunctional functional, const GauXCLoadBalancer lb, enum GauXC_ExecutionSpace ex, const char *integrator_input_type, const char *integrator_kernel_name, const char *local_work_kernel_name, const char *reduction_kernel_name)#
-
struct GauXCFunctional#
Opaque type representing an exchange-correlation functional in the GauXC C API, which can be used with GauXC integrators.
Fortran bindings#
- type gauxc_integrator_type#
Opaque type representing an exchange-correlation integrator instance in the GauXC Fortran API. Available in the module
gauxc_integrator.- function gauxc_integrator_new(status, functional, lb, ex[, integrator_input_type, integrator_kernel_name, local_work_kernel_name, reduction_kernel_name])#
Create a new exchange-correlation integrator instance with the specified functional, load balancer, execution space, and kernel names.
- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
functional [type(gauxc_functional_type)] :: The exchange-correlation functional for which to create the integrator.
lb [type(gauxc_load_balancer_type)] :: The load balancer to use for the integrator.
ex [integer(c_int)] :: The execution space for which to create the integrator.
- Options:
integrator_input_type [character(len=*)] :: The type of input data expected by the integrator kernels. Default: “Replicated”
integrator_kernel_name [character(len=*)] :: The name of the kernel to use for the main integration step. Default: “Default”
local_work_kernel_name [character(len=*)] :: The name of the kernel to use for computing local work sizes. Default: “Default”
reduction_kernel_name [character(len=*)] :: The name of the kernel to use for reduction operations. Default: “Default”
- Return:
type (gauxc_integrator_type) :: A new gauxc_integrator_type object initialized with the specified parameters.
- subroutine gauxc_integrator_integrate_den(status, integrator, density_matrix, den)#
Compute the total density to get the number of electrons.
- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
integrator [type(gauxc_integrator_type)] :: The GauXCIntegrator instance to use for the integration.
density_matrix [real(c_double),dimension(:,:)] :: The input density matrix data.
den [real(c_double)] :: Output variable where the computed total density will be stored.
- subroutine gauxc_integrator_eval_exc_rks(status, integrator, density_matrix, exc)#
Compute the exchange-correlation energy for a given density matrix. Part of the
gauxc_eval_exc()interface.- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
integrator [type(gauxc_integrator_type)] :: The GauXCIntegrator instance to use for the integration.
density_matrix [real(c_double),dimension(:,:)] :: The input density matrix data.
exc [real(c_double)] :: Output variable where the computed exchange-correlation energy will be stored.
- subroutine gauxc_integrator_eval_exc_uks(status, integrator, density_matrix_s, density_matrix_z, exc)#
Compute the exchange-correlation energy for a given density matrix. Part of the
gauxc_eval_exc()interface.- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
integrator [type(gauxc_integrator_type)] :: The GauXCIntegrator instance to use for the integration.
density_matrix_s [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-up component.
density_matrix_z [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-down component.
exc [real(c_double)] :: Output variable where the computed exchange-correlation energy will be stored.
- subroutine gauxc_integrator_eval_exc_gks(status, integrator, density_matrix_s, density_matrix_z, density_matrix_y, density_matrix_x, exc)#
Compute the exchange-correlation energy for a given density matrix. Part of the
gauxc_eval_exc()interface.- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
integrator [type(gauxc_integrator_type)] :: The GauXCIntegrator instance to use for the integration.
density_matrix_s [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-up component.
density_matrix_z [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-down component.
density_matrix_y [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-y component.
density_matrix_x [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-x component.
exc [real(c_double)] :: Output variable where the computed exchange-correlation energy will be stored.
- subroutine gauxc_integrator_eval_exc_vxc_rks(status, integrator, density_matrix, exc, vxc_matrix, ldp_vxc)#
Compute the exchange-correlation energy and potential for a given density matrix. Part of the
gauxc_eval_exc_vxc()interface.- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
integrator [type(gauxc_integrator_type)] :: The GauXCIntegrator instance to use for the integration.
density_matrix [real(c_double),dimension(:,:)] :: The input density matrix data.
exc [real(c_double)] :: Output variable where the computed exchange-correlation energy will be stored.
vxc_matrix [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix will be stored.
ldp_vxc [integer(c_int64_t)] :: The leading dimension of the vxc_matrix array.
- subroutine gauxc_integrator_eval_exc_vxc_uks(status, integrator, density_matrix_s, density_matrix_z, exc, vxc_matrix_s, vxc_matrix_z)#
Compute the exchange-correlation energy and potential for a given density matrix. Part of the
gauxc_eval_exc_vxc()interface.- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
integrator [type(gauxc_integrator_type)] :: The GauXCIntegrator instance to use for the integration.
density_matrix_s [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-up component.
density_matrix_z [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-down component.
exc [real(c_double)] :: Output variable where the computed exchange-correlation energy will be stored.
vxc_matrix_s [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix for the spin-up component will be stored.
vxc_matrix_z [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix for the spin-down component will be stored.
- subroutine gauxc_integrator_eval_exc_vxc_onedft_uks(status, integrator, density_matrix_s, density_matrix_z, model, exc, vxc_matrix_s, vxc_matrix_z)#
Compute the exchange-correlation energy and potential for a given density matrix. Part of the
gauxc_eval_exc_vxc()interface.Important
This function is available if
GAUXC_HAS_ONEDFTis defined or the CMake optionGAUXC_ENABLE_ONEDFTis enabled. It requires a compatible checkpoint for the Skala implementation of the functional, which can be specified with themodelparameter.- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
integrator [type(gauxc_integrator_type)] :: The GauXCIntegrator instance to use for the integration.
density_matrix_s [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-up component.
density_matrix_z [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-down component.
model [character(len=*)] :: The model checkpoint to use for evaluating the exchange-correlation energy and potential.
exc [real(c_double)] :: Output variable where the computed exchange-correlation energy will be stored.
vxc_matrix_s [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix for the spin-up component will be stored.
vxc_matrix_z [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix for the spin-down component will be stored.
- subroutine gauxc_integrator_eval_exc_vxc_gks(status, integrator, density_matrix_s, density_matrix_z, density_matrix_y, density_matrix_x, exc, vxc_matrix_s, vxc_matrix_z, vxc_matrix_y, vxc_matrix_x)#
Compute the exchange-correlation energy and potential for a given density matrix. Part of the
gauxc_eval_exc_vxc()interface.- Parameters:
status [type(gauxc_status_type)] :: A variable to store the status of the operation.
integrator [type(gauxc_integrator_type)] :: The GauXCIntegrator instance to use for the integration.
density_matrix_s [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-up component.
density_matrix_z [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-down component.
density_matrix_y [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-y component.
density_matrix_x [real(c_double),dimension(:,:)] :: The input density matrix data for the spin-x component.
exc [real(c_double)] :: Output variable where the computed exchange-correlation energy will be stored.
vxc_matrix_s [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix for the spin-up component will be stored.
vxc_matrix_z [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix for the spin-down component will be stored.
vxc_matrix_y [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix for the spin-y component will be stored.
vxc_matrix_x [real(c_double),dimension(:,:)] :: Output array where the computed exchange-correlation potential matrix for the spin-x component will be stored.
- type gauxc_functional_type#
Opaque type representing an exchange-correlation functional in the GauXC Fortran API, which can be used with GauXC integrators.