Effective Core Potential Integral Plan#
- group ECPIntegralPlan
Functions
- cuestStatus_t cuestECPIntPlanCreate(
- cuestHandle_t handle,
- const cuestAOBasis_t basis,
- const double *xyzCPU,
- uint64_t numECPAtoms,
- const uint64_t *activeIndices,
- const cuestECPAtom_t *activeAtoms,
- const cuestECPIntPlanParameters_t parameters,
- cuestWorkspace_t *persistentWorkspace,
- cuestWorkspace_t *temporaryWorkspace,
- cuestECPIntPlan_t *outPlan
Build a plan for effective core potential integrals.
All object handles, workspaces, and output pointers must be valid (not NULL). Workspace buffers must be preallocated with required sizes (see workspace query).
Note
The number of atoms in the
cuestAOBasis_tbasis handle must match the length of thexyzCPUarray.The
cuestAOBasis_tbasis handle should define a basis set that is constructed to use the ECP functions being defined here. For example if the basis set includes a 1s orbital on a particular atom and that 1s orbital is modelled by the ECPs included here, the downstream results may be undesirable. No checking is done for such a situation.It is the user’s responsibility to modify other terms that may relate to the presence of ECPs, such as the potential integrals. This will not be done automatically.
- Parameters:
handle – [in] cuEST handle. Must not be NULL.
basis – [in] AO basis set handle. Must not be NULL.
xyzCPU – [in] Coordinates for full system (size: natom x 3) on the CPU. Must not be NULL.
numECPAtoms – [in] Number of atoms with ECPs. Must be less than or equal to total number of system atoms, natom.
activeIndices – [in] Indices of atoms with ECPs relative to full list of atoms (size: numECPAtoms) on the CPU. Must not be NULL. The
activeIndicescannot contain indices greater than or equal to natom and cannot contain duplicate entries.activeAtoms – [in] CPU array of ECP Atoms handles. Must not be NULL.
parameters – [in] Plan parameter structure. Must not be NULL.
persistentWorkspace – [in] Preallocated workspace for persistent buffers. Must not be NULL.
temporaryWorkspace – [in] Preallocated workspace for temporary buffers. Must not be NULL.
outPlan – [out] Output pointer for integral plan handle. Must not be NULL.
- Returns:
CUEST_STATUS_SUCCESSon success;CUEST_STATUS_INVALID_HANDLEif the cuEST handle is NULL;CUEST_STATUS_NULL_POINTERif any pointer argument is NULL;CUEST_STATUS_INVALID_TYPEif opaque handles are not the correct type.CUEST_STATUS_INVALID_ARGUMENTifnumECPAtomsis zero or theactiveIndicesare invalid.CUEST_STATUS_EXCEPTIONorCUEST_STATUS_UNKNOWN_ERRORotherwise.
- cuestStatus_t cuestECPIntPlanCreateWorkspaceQuery(
- cuestHandle_t handle,
- const cuestAOBasis_t basis,
- const double *xyzCPU,
- uint64_t numECPAtoms,
- const uint64_t *activeIndices,
- const cuestECPAtom_t *activeAtoms,
- const cuestECPIntPlanParameters_t parameters,
- cuestWorkspaceDescriptor_t *persistentWorkspaceDescriptor,
- cuestWorkspaceDescriptor_t *temporaryWorkspaceDescriptor,
- cuestECPIntPlan_t *outPlan
Query workspace requirements for creating an effective core potential integral plan.
Determines persistent and temporary buffer sizes by simulating allocation logic. All handles and pointers must be valid (not NULL).
- Parameters:
handle – [in] cuEST handle. Must not be NULL.
basis – [in] AO basis set handle. Must not be NULL.
xyzCPU – [in] Coordinates for full system (size: natom x 3) on the CPU. Must not be NULL.
numECPAtoms – [in] Number of atoms with ECPs. Must be less than or equal to total number of system atoms, natom.
activeIndices – [in] Indices of atoms with ECPs relative to full list of atoms (size: numECPAtoms) on the CPU. Must not be NULL. The
activeIndicescannot contain indices greater than or equal to natom and cannot contain duplicate entries.activeAtoms – [in] CPU array of ECP Atoms handles. Must not be NULL.
parameters – [in] Plan parameters handle. Must not be NULL.
persistentWorkspaceDescriptor – [out] Output descriptor for persistent buffer sizing. Must not be NULL.
temporaryWorkspaceDescriptor – [out] Output descriptor for temporary buffer sizing. Must not be NULL.
outPlan – [in] Pointer for integral plan handle. May be NULL.
- Returns:
CUEST_STATUS_SUCCESSon success;CUEST_STATUS_INVALID_HANDLEif the cuEST handle is NULL;CUEST_STATUS_NULL_POINTERif any pointer argument is NULL;CUEST_STATUS_INVALID_TYPEif opaque handles are not the correct type.CUEST_STATUS_INVALID_ARGUMENTifnumECPAtomsis zero or theactiveIndicesare invalid.CUEST_STATUS_EXCEPTIONorCUEST_STATUS_UNKNOWN_ERRORotherwise.
-
cuestStatus_t cuestECPIntPlanDestroy(cuestECPIntPlan_t plan)#
Destroy and release an effective core potential integral plan and its resources.
The plan handle and its memory must not be used after destruction.
- Parameters:
plan – [in] Plan handle to destroy. Must not be NULL.
- Returns:
CUEST_STATUS_SUCCESSon success;CUEST_STATUS_NULL_POINTERifplanis NULL;CUEST_STATUS_INVALID_TYPEif opaque handles are not the correct type.CUEST_STATUS_EXCEPTIONorCUEST_STATUS_UNKNOWN_ERRORotherwise.