Density Fitting Integral Plan#

group DensityFittingIntegralPlan

Functions

cuestStatus_t cuestDFIntPlanCreate(
cuestHandle_t handle,
const cuestAOBasis_t primaryBasis,
const cuestAOBasis_t auxiliaryBasis,
const cuestAOPairList_t pairList,
const cuestDFIntPlanParameters_t parameters,
cuestWorkspace_t *persistentWorkspace,
cuestWorkspace_t *temporaryWorkspace,
cuestDFIntPlan_t *outPlan
)#

Build a density-fitted integral plan (DF) for atomic orbitals.

Constructs all needed metric arrays and three-center integrals. All handles and buffers must be valid. Workspace buffers must be preallocated using sizes from workspace query.

If the CUEST_DFINTPLAN_PARAMETERS_EXCHANGE_FRACTION is set within the cuestDFIntPlanParameters_t, this scaling parameter will be applied in all subsequent calls that use this cuestDFIntPlan_t.

Note

  • The number of atoms in the primary basis handle must match the number of atoms in the auxiliary basis handle.

  • The cuestAOBasis_t primary basis handle provided here must correspond to the basis handle provided when the cuestAOPairList_t pair list handle was created.

  • It is the user’s responsibility to not to destroy the cuestAOBasis_t primary basis handle, auxiliary basis handle or cuestAOPairList_t pair list handle until operations involving the cuestDFIntPlan_t plan handle are complete.

  • After the cuestAOBasis_t basis handle, auxiliary basis handle or cuestAOPairList_t pair list handle are destroyed, the cuestDFIntPlan_t plan handle is not longer valid.

  • Screening of negligible integrals computed while using this cuestDFIntPlan_t plan handle is controlled by thresholdPQ set during construction of the cuestAOPairList_t pair list handle.

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

  • primaryBasis[in] AO basis set for primary orbitals. Must not be NULL.

  • auxiliaryBasis[in] AO basis set for auxiliary/fitting orbitals. The auxiliary basis set must use a pure (spherical) angular momentum representation. Must not be NULL.

  • pairList[in] AO pair list describing sparsity. Must not be NULL.

  • parameters[in] Density-fitting parameters structure. Must not be NULL.

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

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

  • outPlan[out] Output pointer for DF 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 required pointer is NULL;

  • CUEST_STATUS_INVALID_TYPE if opaque handles are not the correct type.

  • CUEST_STATUS_EXCEPTION if auxiliaryBasis is not pure.

  • CUEST_STATUS_EXCEPTION or CUEST_STATUS_UNKNOWN_ERROR otherwise.

cuestStatus_t cuestDFIntPlanCreateWorkspaceQuery(
cuestHandle_t handle,
const cuestAOBasis_t primaryBasis,
const cuestAOBasis_t auxiliaryBasis,
const cuestAOPairList_t pairList,
const cuestDFIntPlanParameters_t parameters,
cuestWorkspaceDescriptor_t *persistentWorkspaceDescriptor,
cuestWorkspaceDescriptor_t *temporaryWorkspaceDescriptor,
cuestDFIntPlan_t *outPlan
)#

Query workspace sizes for creating a density-fitted integral plan.

Simulates all allocations for DF plan, returning size requirements. All handles and pointers must be valid (not NULL). Output descriptors are filled on success.

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

  • primaryBasis[in] AO basis set for primary orbitals. Must not be NULL.

  • auxiliaryBasis[in] AO basis set for auxiliary/fitting orbitals. The auxiliary basis set must use a pure (spherical) angular momentum representation. Must not be NULL.

  • pairList[in] AO pair list handle. Must not be NULL.

  • parameters[in] Density-fitting parameters structure. Must not be NULL.

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

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

  • outPlan[in] Output pointer for DF 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 is NULL;

  • CUEST_STATUS_INVALID_TYPE if opaque handles are not the correct type.

  • CUEST_STATUS_EXCEPTION if auxiliaryBasis is not pure.

  • CUEST_STATUS_EXCEPTION or CUEST_STATUS_UNKNOWN_ERROR otherwise.

cuestStatus_t cuestDFIntPlanDestroy(cuestDFIntPlan_t plan)#

Destroy/free a density-fitted integral plan and all resources.

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

Parameters:

plan[in] DF 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.