Kinetic#
- cuest.bindings.cuestKineticComputeWorkspaceQuery(
- *,
- handle: cuest.bindings.cuest.cuestHandle,
- plan: cuest.bindings.cuest.cuestOEIntPlanHandle,
- parameters: cuest.bindings.cuest.Parameters,
- temporaryWorkspaceDescriptor: int,
- outTMatrix: cuest.bindings.cuest.Pointer,
Query the temporary workspace required (in bytes) for kinetic energy matrix calculation.
This function computes the workspace requirements for a kinetic energy matrix calculation. Fill the provided workspace descriptor with host and device buffer sizes required. The
outTMatrixpointer may be NULL.Parameters#
- handle[in]cuestHandle
cuEST handle. Must not be NULL.
- plan[in]cuestOEIntPlanHandle
One-electron integral computation plan (opaque handle). Must not be NULL.
- parameters[in]cuestKineticComputeParameters_t
Parameters object. Must not be NULL.
- temporaryWorkspaceDescriptor[out]cuestWorkspaceDescriptor
Output descriptor for temporary workspace sizes. Must not be NULL.
- outTMatrixPointer
Optional buffer for computed kinetic matrix
Returns#
- status[out]cuestStatus_t
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.
- cuest.bindings.cuestKineticCompute(
- *,
- handle: cuest.bindings.cuest.cuestHandle,
- plan: cuest.bindings.cuest.cuestOEIntPlanHandle,
- parameters: cuest.bindings.cuest.Parameters,
- temporaryWorkspace: int,
- outTMatrix: cuest.bindings.cuest.Pointer,
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]cuestHandle
cuEST handle. Must not be NULL.
- plan[in]cuestOEIntPlanHandle
One-electron integral computation plan (opaque handle). Must not be NULL.
- parameters[in]cuestKineticComputeParameters_t
Parameters object. Must not be NULL.
- temporaryWorkspace[in]Workspace
Temporary workspace buffers for computation (preallocated). Must not be NULL.
- outTMatrix[out]Pointer
Output buffer for computed kinetic matrix elements (size: nao × nao) on the GPU. Must not be NULL. Elements of this array are overwritten by the calculation results.
Returns#
- status[out]cuestStatus_t
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.
- cuest.bindings.cuestKineticDerivativeComputeWorkspaceQuery(
- *,
- handle: cuest.bindings.cuest.cuestHandle,
- plan: cuest.bindings.cuest.cuestOEIntPlanHandle,
- parameters: cuest.bindings.cuest.Parameters,
- temporaryWorkspaceDescriptor: int,
- densityMatrix: cuest.bindings.cuest.Pointer,
- outGradient: cuest.bindings.cuest.Pointer,
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]cuestHandle
cuEST handle. Must not be NULL.
- plan[in]cuestOEIntPlanHandle
One-electron integral computation plan (opaque handle). Must not be NULL.
- parameters[in]cuestKineticDerivativeComputeParameters_t
Parameters object. Must not be NULL.
- temporaryWorkspaceDescriptor[out]WorkspaceDescriptor
Output descriptor for temporary workspace sizes. Must not be NULL.
- densityMatrixPointer
Optional density matrix
- outGradientPointer
Optional output gradient
Returns#
- status[out]cuestStatus_t
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.
- cuest.bindings.cuestKineticDerivativeCompute(
- *,
- handle: cuest.bindings.cuest.cuestHandle,
- plan: cuest.bindings.cuest.cuestOEIntPlanHandle,
- parameters: cuest.bindings.cuest.Parameters,
- temporaryWorkspace: int,
- densityMatrix: cuest.bindings.cuest.Pointer,
- outGradient: cuest.bindings.cuest.Pointer,
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]cuestHandle
cuEST handle. Must not be NULL.
- plan[in]cuestOEIntPlanHandle
One-electron integral computation plan (opaque handle). Must not be NULL.
- parameters[in]cuestKineticDerivativeComputeParameters_t
Parameters object. Must not be NULL.
- temporaryWorkspace[in]Workspace
Temporary workspace buffers (preallocated for this operation). Must not be NULL.
- densityMatrix[in]Pointer
Input density matrix (size: nao × nao) on the GPU. Must not be NULL.
- outGradient[out]Pointer
Output gradient (size: natom × 3) on the GPU. Must not be NULL. Elements of this array are overwritten by the calculation results.
Returns#
- status[out]cuestStatus_t
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.