Skip to main content

cuestECPIntPlanCreateWorkspaceQuery

Function cuestECPIntPlanCreateWorkspaceQuery 

Source
pub unsafe fn cuestECPIntPlanCreateWorkspaceQuery(
    handle: cuestHandle_t,
    basis: cuestAOBasis_t,
    xyzCPU: *const f64,
    numECPAtoms: u64,
    activeIndices: *const u64,
    activeAtoms: *const cuestECPAtom_t,
    parameters: cuestECPIntPlanParameters_t,
    persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
    temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
    outPlan: *mut cuestECPIntPlan_t,
) -> cuestStatus_t
Expand description

@brief Query workspace requirements for creating an effective core potential integral plan. @ingroup ECPIntegralPlan

Determines persistent and temporary buffer sizes by simulating allocation logic. All handles and pointers must be valid (not NULL).

@param[in] handle cuEST handle. Must not be NULL. @param[in] basis AO basis set handle. Must not be NULL. @param[in] xyzCPU Coordinates for full system (size: natom x 3) on the CPU. Must not be NULL. @param[in] numECPAtoms Number of atoms with ECPs. Must be greater than zero and less than or equal to total number of system atoms, natom. @param[in] activeIndices Indices of atoms with ECPs relative to full list of atoms (size: numECPAtoms) on the CPU. Must not be NULL. The \c activeIndices cannot contain indices greater than or equal to natom and cannot contain duplicate entries. @param[in] activeAtoms CPU array of ECP atom handles. Must not be NULL and none of the entries may be NULL. @param[in] parameters Plan parameters handle. 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 outPlan Pointer for integral plan 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 pointer argument is NULL;
  • \c CUEST_STATUS_INVALID_TYPE if opaque handles are not the correct type;
  • \c CUEST_STATUS_INVALID_ARGUMENT if \c numECPAtoms is zero or the \c activeIndices are invalid;
  • \c CUEST_STATUS_EXCEPTION or \c CUEST_STATUS_UNKNOWN_ERROR otherwise.