Skip to main content

cuestMultipoleDerivativeComputeWorkspaceQuery

Function cuestMultipoleDerivativeComputeWorkspaceQuery 

Source
pub unsafe fn cuestMultipoleDerivativeComputeWorkspaceQuery(
    handle: cuestHandle_t,
    plan: cuestOEIntPlan_t,
    parameters: cuestMultipoleDerivativeComputeParameters_t,
    temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
    multipoleOrder: *const u32,
    origin: *const f64,
    densityMatrix: *const f64,
    outGradient: *mut f64,
) -> cuestStatus_t
Expand description

@brief Query the temporary workspace required (in bytes) for multipole matrix gradient calculation. @ingroup MultipoleGrad @since v0.2.0

This function computes the workspace requirements of a single gradient evaluation, based on the supplied plan and dimensions. The workspace descriptor is filled with host and device memory requirements. Output buffers may be NULL for the purposes of the query.

@param[in] handle cuEST handle. Must not be NULL. @param[in] plan One-electron integral computation plan (opaque handle). Must not be NULL. @param[in] parameters Compute parameters (\c cuestMultipoleDerivativeComputeParameters_t). Must not be NULL @param[out] temporaryWorkspaceDescriptor Output descriptor for temporary workspace sizes. Must not be NULL. @param[in] multipoleOrder Exponents defining the multipole operator: x^l y^m z^n [size: 3]. CPU array. Must not be NULL. @param[in] origin Cartesian coordinates defining the multipole origin [size: 3]. CPU array. Must not be NULL. @param densityMatrix Optional density matrix pointer (may be NULL). @param outGradient Optional buffer for computed gradient (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.