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_tExpand 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.