Kinetic#
- group Kinetic
Functions
- cuestStatus_t cuestKineticCompute(
- cuestHandle_t handle,
- const cuestOEIntPlan_t plan,
- const cuestKineticComputeParameters_t parameters,
- cuestWorkspace_t *temporaryWorkspace,
- double *outTMatrix
Compute the atomic orbital kinetic energy matrix (T-matrix) using the supplied integral plan.
The output buffer must be preallocated by the user and have space for (nao × nao) doubles, where nao is the number of atomic orbitals in the basis. All required temporary workspace must be allocated before calling this function, using the size returned from
cuestKineticComputeWorkspaceQuery. All pointers must be valid and not NULL.- Parameters:
handle – [in] cuEST handle. Must not be NULL.
plan – [in] One-electron integral computation plan (opaque handle). Must not be NULL.
parameters – [in] Compute parameters (
cuestKineticComputeParameters_t). Must not be NULLtemporaryWorkspace – [in] Temporary workspace buffers for computation (preallocated).
outTMatrix – [out] Output GPU buffer for computed kinetic matrix elements (size: nao × nao). Must not be NULL. Elements of this array are overwritten by the calculation results.
- Returns:
CUEST_STATUS_SUCCESSon success;CUEST_STATUS_INVALID_HANDLEif the cuEST handle is NULL;CUEST_STATUS_NULL_POINTERif any required pointer is NULL;CUEST_STATUS_INVALID_TYPEif opaque handles are not the correct type.CUEST_STATUS_EXCEPTIONorCUEST_STATUS_UNKNOWN_ERRORotherwise.
- cuestStatus_t cuestKineticComputeWorkspaceQuery(
- cuestHandle_t handle,
- const cuestOEIntPlan_t plan,
- const cuestKineticComputeParameters_t parameters,
- cuestWorkspaceDescriptor_t *temporaryWorkspaceDescriptor,
- double *outTMatrix
Query the temporary workspace required (in bytes) for kinetic energy matrix calculation.
This function determines the workspace requirements for a kinetic energy matrix evaluation (such as buffer sizes), given a particular plan. The output descriptor is filled on success. User matrix buffer may be NULL.
- Parameters:
handle – [in] cuEST handle. Must not be NULL.
plan – [in] One-electron integral computation plan (opaque handle). Must not be NULL.
parameters – [in] Compute parameters (
cuestKineticComputeParameters_t). Must not be NULLtemporaryWorkspaceDescriptor – [out] Output descriptor for temporary workspace sizes. Must not be NULL.
outTMatrix – [in] Optional buffer for computed kinetic matrix (may be NULL).
- Returns:
CUEST_STATUS_SUCCESSon success;CUEST_STATUS_INVALID_HANDLEif the cuEST handle is NULL;CUEST_STATUS_NULL_POINTERif any required pointer is NULL;CUEST_STATUS_INVALID_TYPEif opaque handles are not the correct type.CUEST_STATUS_EXCEPTIONorCUEST_STATUS_UNKNOWN_ERRORotherwise.
- group KineticGrad
Functions
- cuestStatus_t cuestKineticDerivativeCompute(
- cuestHandle_t handle,
- const cuestOEIntPlan_t plan,
- const cuestKineticDerivativeComputeParameters_t parameters,
- cuestWorkspace_t *temporaryWorkspace,
- const double *densityMatrix,
- double *outGradient
Compute the gradient (nuclear derivative) of the AO kinetic energy matrix (T) with respect to atomic positions, contracted with a density matrix.
The user must provide a preallocated density matrix (size nao × nao) and a preallocated output gradient buffer (size natom × 3). All required temporary workspace must be sized and allocated using the query function below.
- Parameters:
handle – [in] cuEST handle. Must not be NULL.
plan – [in] One-electron integral computation plan (opaque handle). Must not be NULL.
parameters – [in] Compute parameters (
cuestKineticDerivativeComputeParameters_t). Must not be NULLtemporaryWorkspace – [in] Temporary workspace buffers (preallocated for this operation). Must not be NULL.
densityMatrix – [in] Input density matrix (size: nao × nao). GPU array. Must not be NULL.
outGradient – [out] Output GPU buffer for gradient (size: natom × 3). Must not be NULL. Elements of this array are overwritten by the calculation results.
- Returns:
CUEST_STATUS_SUCCESSon success;CUEST_STATUS_INVALID_HANDLEif the cuEST handle is NULL;CUEST_STATUS_NULL_POINTERif any required pointer is NULL;CUEST_STATUS_INVALID_TYPEif opaque handles are not the correct type.CUEST_STATUS_EXCEPTIONorCUEST_STATUS_UNKNOWN_ERRORotherwise.
- cuestStatus_t cuestKineticDerivativeComputeWorkspaceQuery(
- cuestHandle_t handle,
- const cuestOEIntPlan_t plan,
- const cuestKineticDerivativeComputeParameters_t parameters,
- cuestWorkspaceDescriptor_t *temporaryWorkspaceDescriptor,
- const double *densityMatrix,
- double *outGradient
Query the temporary workspace required (in bytes) for a kinetic energy gradient computation.
This function determines the workspace required for a kinetic energy gradient evaluation with a given plan. The output descriptor is filled on success.
- Parameters:
handle – [in] cuEST handle. Must not be NULL.
plan – [in] One-electron integral computation plan (opaque handle). Must not be NULL.
parameters – [in] Compute parameters (
cuestKineticDerivativeComputeParameters_t). Must not be NULLtemporaryWorkspaceDescriptor – [out] Output descriptor for temporary workspace sizes (host and device). Must not be NULL.
densityMatrix – [in] Optional density matrix (may be NULL).
outGradient – [in] Optional output gradient (may be NULL).
- Returns:
CUEST_STATUS_SUCCESSon success;CUEST_STATUS_INVALID_HANDLEif the cuEST handle is NULL;CUEST_STATUS_NULL_POINTERif any required pointer is NULL;CUEST_STATUS_INVALID_TYPEif opaque handles are not the correct type.CUEST_STATUS_EXCEPTIONorCUEST_STATUS_UNKNOWN_ERRORotherwise.