Skip to main content

cuestAOBasisCreateWorkspaceQuery

Function cuestAOBasisCreateWorkspaceQuery 

Source
pub unsafe fn cuestAOBasisCreateWorkspaceQuery(
    handle: cuestHandle_t,
    numAtoms: u64,
    numShellsPerAtom: *const u64,
    shells: *const cuestAOShell_t,
    parameters: cuestAOBasisParameters_t,
    persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
    temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
    outBasis: *mut cuestAOBasis_t,
) -> cuestStatus_t
Expand description

@brief Query workspace requirements for creating an AO basis object. @ingroup Basis

This function simulates the allocation logic to determine necessary persistent and temporary buffer sizes. All buffer pointers and arrays must be valid.

@param[in] handle cuEST handle. Must not be NULL. @param[in] numAtoms Total number of atoms/centers; must be greater than zero. @param[in] numShellsPerAtom Array specifying number of shells per center (size: \c numAtoms); each must be greater than zero. CPU array, must not be NULL. @param[in] shells Flat array of shell handles (\c cuestAOShell_t), length is sum of \c numShellsPerAtom. CPU array, the array must not be NULL and none of the entries may be NULL. @param[in] parameters Handle to \c cuestAOBasisParameters_t. Must not be NULL. @param[out] persistentWorkspaceDescriptor Output descriptor for persistent buffer sizing. Must not be NULL. @param[out] temporaryWorkspaceDescriptor Output descriptor for temporary buffer sizing. Must not be NULL. @param outBasis Pointer for output basis handle. 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 the cuEST handle, any shell handle or parameters are not of the correct type;
  • \c CUEST_STATUS_INVALID_ARGUMENT if \c numAtoms == 0 or any \c numShellsPerAtom[i]==0;
  • \c CUEST_STATUS_UNSUPPORTED_ARGUMENT if the AO basis mixes pure (solid-harmonic) and Cartesian shells;
  • \c CUEST_STATUS_EXCEPTION or \c CUEST_STATUS_UNKNOWN_ERROR for other errors.