Skip to main content

cuestECPComputeWorkspaceQuery

Function cuestECPComputeWorkspaceQuery 

Source
pub unsafe fn cuestECPComputeWorkspaceQuery(
    handle: cuestHandle_t,
    plan: cuestECPIntPlan_t,
    parameters: cuestECPComputeParameters_t,
    variableBufferSize: *const cuestWorkspaceDescriptor_t,
    temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
    outECPMatrix: *mut f64,
) -> cuestStatus_t
Expand description

@brief Query the temporary workspace required (in bytes) for effective core potential matrix calculation. @ingroup ECPCompute

This function computes the workspace requirements for a requested ECP calculation. Fill the provided workspace descriptor with host and device buffer sizes required. The \c outECPMatrix pointer may be NULL.

@param[in] handle cuEST handle. Must not be NULL. @param[in] plan ECP integral computation plan (opaque handle). Must not be NULL. @param[in] parameters Handle to \c cuestECPComputeParameters_t. Must not be NULL. @param[in] variableBufferSize User-provided descriptor for the amount of memory used to evaluate the ECP integrals. 2 GB is a good default buffer size for device memory. If an insufficient amount of memory is provided, the cuestECPCompute call will return CUEST_STATUS_EXCEPTION. If this occurs, increase the variableBufferSize and make the WorkspaceQuery and Compute calls again. This value MUST remain unchanged between the WorkspaceQuery call and the Compute call. Host memory is currently unused. Must not be NULL. @param[out] temporaryWorkspaceDescriptor Output descriptor for temporary workspace sizes. Must not be NULL. @param outECPMatrix User matrix buffer. May be NULL.

@return

  • \c CUEST_STATUS_SUCCESS on success;
  • \c CUEST_STATUS_INVALID_HANDLE if the cuEST handle is NULL;
  • \c CUEST_STATUS_NULL_POINTER if any required pointer is NULL;
  • \c CUEST_STATUS_INVALID_TYPE if opaque handles are not the correct type;
  • \c CUEST_STATUS_EXCEPTION or \c CUEST_STATUS_UNKNOWN_ERROR otherwise.