Skip to main content

cuestPCMIntPlanCreateWorkspaceQuery

Function cuestPCMIntPlanCreateWorkspaceQuery 

Source
pub unsafe fn cuestPCMIntPlanCreateWorkspaceQuery(
    handle: cuestHandle_t,
    intPlan: cuestOEIntPlan_t,
    parameters: cuestPCMIntPlanParameters_t,
    persistentWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
    temporaryWorkspaceDescriptor: *mut cuestWorkspaceDescriptor_t,
    numAngularPointsPerAtom: *const u64,
    epsilon: f64,
    zetas: *const f64,
    atomicRadii: *const f64,
    effectiveNuclearCharges: *const f64,
    outPlan: *mut cuestPCMIntPlan_t,
) -> cuestStatus_t
Expand description

@brief Query workspace requirements for creating a PCM integral plan. @ingroup PCMIntegralPlan

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] intPlan One-electron integral plan handle of type \c cuestOEIntPlan_t . The one-electron integral plan should be created with \c cuestOEIntPlanCreate and must not be destroyed until after the final call to any PCM compute routines. Must not be NULL. @param[in] parameters PCM integral plan parameters structure. Must not be NULL. @param[out] persistentWorkspaceDescriptor Descriptor for persistent workspace requirements. Must not be NULL. @param[out] temporaryWorkspaceDescriptor Descriptor for temporary workspace requirements. Must not be NULL. @param[in] numAngularPointsPerAtom CPU array (size: number of atoms) of number of angular points per atom. Must not be NULL. @param[in] epsilon Dielectric constant. Must be strictly greater than 1.0. @param zetas CPU array with each element containing the optimized zeta coefficient for the number of angular points placed on that atom. May be NULL. @param atomicRadii CPU array of atomic radii in bohr. May be NULL. @param effectiveNuclearCharges CPU array of nuclear charges, adjusted for the presence of effective core potentials. May be NULL. @param outPlan Output pointer for PCM 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 required pointer argument is NULL;
  • \c CUEST_STATUS_INVALID_TYPE if opaque handles are not the correct type;
  • \c CUEST_STATUS_INVALID_ARGUMENT if \c epsilon is less than or equal to 1.0;
  • \c CUEST_STATUS_EXCEPTION or \c CUEST_STATUS_UNKNOWN_ERROR otherwise.