Exchange/Correlation Integral Plan#

group XCIntegralPlan

Functions

cuestStatus_t cuestXCIntPlanCreate(
cuestHandle_t handle,
const cuestAOBasis_t basis,
const cuestMolecularGrid_t grid,
cuestXCIntPlanParametersFunctional_t functional,
const cuestXCIntPlanParameters_t parameters,
cuestWorkspace_t *persistentWorkspace,
cuestWorkspace_t *temporaryWorkspace,
cuestXCIntPlan_t *outPlan
)#

Build a plan for exchange-correlation integral evaluation.

All object handles, workspaces, and output pointers must be valid (not NULL). Workspace buffers must be preallocated with required sizes (see workspace query).

Note

  • The number of atoms in the c basis must match the number of atoms in the c grid.

Parameters:
  • handle[in] cuEST handle. Must not be NULL.

  • basis[in] AO basis set handle. Must not be NULL.

  • grid[in] Molecular grid handle. Must not be NULL.

  • functional[in] Specifies the XC functional.

  • parameters[in] Plan parameter structure. Must not be NULL.

  • persistentWorkspace[in] Preallocated workspace for persistent buffers. Must not be NULL.

  • temporaryWorkspace[in] Preallocated workspace for temporary buffers. Must not be NULL.

  • outPlan[out] Output pointer for the XC integral plan handle. Must not be NULL.

Returns:

  • CUEST_STATUS_SUCCESS on success;

  • CUEST_STATUS_INVALID_HANDLE if the cuEST handle is NULL;

  • CUEST_STATUS_NULL_POINTER if any pointer argument is NULL;

  • CUEST_STATUS_INVALID_TYPE if opaque handles are not the correct type.

  • CUEST_STATUS_INVALID_ARGUMENT if functional does not exist.

  • CUEST_STATUS_EXCEPTION or CUEST_STATUS_UNKNOWN_ERROR otherwise.

cuestStatus_t cuestXCIntPlanCreateWorkspaceQuery(
cuestHandle_t handle,
const cuestAOBasis_t basis,
const cuestMolecularGrid_t grid,
cuestXCIntPlanParametersFunctional_t functional,
const cuestXCIntPlanParameters_t parameters,
cuestWorkspaceDescriptor_t *persistentWorkspaceDescriptor,
cuestWorkspaceDescriptor_t *temporaryWorkspaceDescriptor,
cuestXCIntPlan_t *outPlan
)#

Query workspace requirements for creating an exchange-correlation integral plan.

Determines persistent and temporary buffer sizes by simulating allocation logic. All handles and pointers must be valid (not NULL).

Parameters:
  • handle[in] cuEST handle. Must not be NULL.

  • basis[in] AO basis set handle. Must not be NULL.

  • grid[in] Molecular grid handle. Must not be NULL.

  • functional[in] Specifies the XC functional.

  • parameters[in] Plan parameters handle. Must not be NULL.

  • persistentWorkspaceDescriptor[out] Output descriptor for persistent buffer sizing. Must not be NULL.

  • temporaryWorkspaceDescriptor[out] Output descriptor for temporary buffer sizing. Must not be NULL.

  • outPlan[in] Output pointer for the XC integral plan handle. May be NULL.

Returns:

  • CUEST_STATUS_SUCCESS on success;

  • CUEST_STATUS_INVALID_HANDLE if the cuEST handle is NULL;

  • CUEST_STATUS_NULL_POINTER if any required pointer argument is NULL;

  • CUEST_STATUS_INVALID_TYPE if opaque handles are not the correct type.

  • CUEST_STATUS_INVALID_ARGUMENT if functional does not exist.

  • CUEST_STATUS_EXCEPTION or CUEST_STATUS_UNKNOWN_ERROR otherwise.

cuestStatus_t cuestXCIntPlanDestroy(cuestXCIntPlan_t plan)#

Destroy and release an exchange-correlation integral plan and its resources.

The plan handle and its memory must not be used after destruction.

Parameters:

plan[in] Plan handle to destroy. Must not be NULL.

Returns:

  • CUEST_STATUS_SUCCESS on success;

  • CUEST_STATUS_NULL_POINTER if plan is NULL;

  • CUEST_STATUS_INVALID_TYPE if opaque handles are not the correct type.

  • CUEST_STATUS_EXCEPTION or CUEST_STATUS_UNKNOWN_ERROR otherwise.