Effective Core Potential Compute#

cuest.bindings.cuestECPCompute(
*,
handle: cuest.bindings.cuest.cuestHandle,
plan: cuest.bindings.cuest.cuestECPIntPlanHandle,
parameters: cuest.bindings.cuest.Parameters,
variableBufferSize: int,
temporaryWorkspace: int,
outECPMatrix: cuest.bindings.cuest.Pointer,
) cuest.bindings.cuest.CuestStatus#

Compute the ECP potential matrix using the provided plan.

Parameters#

handle[in]cuestHandle

cuEST handle. Must not be NULL.

plan[in]cuestECPIntPlanHandle

Handle to cuestECPIntPlan. Must not be NULL.

parameters[in]cuestECPComputeParameters

Handle to cuestECPComputeParameters. Must not be NULL.

variableBufferSize[in]WorkspaceDescriptor

User-provided descriptor for the amount of memory used to evaluate the ECP integrals. 2 GB is a good default buffer size for device memory. If an insufficient amount of memory is provided, the cuestECPCompute call will return CUEST_STATUS_EXCEPTION. If this occurs, increase the variableBufferSize and make the WorkspaceQuery and Compute calls again. This value MUST remain unchanged between the WorkspaceQuery call and the Compute call. Host memory is currently unused. Must not be NULL.

temporaryWorkspace[in]cuestWorkspaceHandle

Handle to cuestWorkspace. Must not be NULL.

outECPMatrix[out]Pointer

Pointer to output ECP matrix (size: nao x nao) on the GPU. Must not be NULL.

Returns#

status[out]CuestStatus
cuest.bindings.cuestECPComputeWorkspaceQuery(
*,
handle: cuest.bindings.cuest.cuestHandle,
plan: cuest.bindings.cuest.cuestECPIntPlanHandle,
parameters: cuest.bindings.cuest.Parameters,
variableBufferSize: int,
temporaryWorkspaceDescriptor: int,
outECPMatrix: cuest.bindings.cuest.Pointer,
) cuest.bindings.cuest.CuestStatus#

Query the temporary workspace required (in bytes) for ECP potential matrix calculation.

Parameters#

handle[in]cuestHandle

cuEST handle. Must not be NULL.

plan[in]cuestECPIntPlanHandle

Handle to cuestECPIntPlan. Must not be NULL.

parameters[in]cuestECPComputeParameters

Handle to cuestECPComputeParameters. Must not be NULL.

variableBufferSize[in]WorkspaceDescriptor

User-provided descriptor for the amount of memory used to evaluate the ECP integrals. 2 GB is a good default buffer size for device memory. If an insufficient amount of memory is provided, the cuestECPCompute call will return CUEST_STATUS_EXCEPTION. If this occurs, increase the variableBufferSize and make the WorkspaceQuery and Compute calls again. This value MUST remain unchanged between the WorkspaceQuery call and the Compute call. Host memory is currently unused. Must not be NULL.

temporaryWorkspaceDescriptor[out]cuestWorkspaceDescriptorHandle

Handle to cuestWorkspaceDescriptor. Must not be NULL.

outECPMatrix[in]Pointer

Pointer to output ECP matrix. May be NULL.

Returns#

status[out]CuestStatus
cuest.bindings.cuestECPDerivativeCompute(
*,
handle: cuest.bindings.cuest.cuestHandle,
plan: cuest.bindings.cuest.cuestECPIntPlanHandle,
parameters: cuest.bindings.cuest.Parameters,
variableBufferSize: int,
temporaryWorkspace: int,
densityMatrix: cuest.bindings.cuest.Pointer,
outGradient: cuest.bindings.cuest.Pointer,
) cuest.bindings.cuest.CuestStatus#

Compute the electronic gradient (derivative) of the ECP matrix using the provided plan and density matrix.

Both the input density matrix and the output gradient must be preallocated. The density matrix must be an (nao x nao) array and the output gradient must have space for (natom x 3) elements, where nao is the number of atomic orbitals and natom the total number of atoms in the system. All required temporary workspace must be allocated by the user prior to calling this function using size returned by cuestECPDerivativeComputeWorkspaceQuery().

Parameters#

handle[in]cuestHandle

cuEST handle. Must not be NULL.

plan[in]cuestECPIntPlanHandle

Handle to cuestECPIntPlan. Must not be NULL.

parameters[in]cuestECPDerivativeComputeParameters

Handle to cuestECPDerivativeComputeParameters. Must not be NULL.

variableBufferSize[in]WorkspaceDescriptor

User-provided descriptor for the amount of memory used to evaluate the ECP integrals. 2 GB is a good default buffer size for device memory. If an insufficient amount of memory is provided, the cuestECPDerivativeCompute call will return CUEST_STATUS_EXCEPTION. If this occurs, increase the variableBufferSize and make the WorkspaceQuery and Compute calls again. This value MUST remain unchanged between the WorkspaceQuery call and the Compute call. Host memory is currently unused. Must not be NULL.

temporaryWorkspace[in]cuestWorkspaceHandle

Handle to cuestWorkspace. Must not be NULL.

densityMatrix[in]Pointer

Pointer to input density matrix (size: nao x nao) on the GPU. Must not be NULL.

outGradient[out]Pointer

Pointer to output gradient (size: natom * 3) on the GPU. Must not be NULL.

Returns#

status[out]CuestStatus
cuest.bindings.cuestECPDerivativeComputeWorkspaceQuery(
*,
handle: cuest.bindings.cuest.cuestHandle,
plan: cuest.bindings.cuest.cuestECPIntPlanHandle,
parameters: cuest.bindings.cuest.Parameters,
variableBufferSize: int,
temporaryWorkspaceDescriptor: int,
densityMatrix: cuest.bindings.cuest.Pointer,
outGradient: cuest.bindings.cuest.Pointer,
) cuest.bindings.cuest.CuestStatus#

Query the temporary workspace required (in bytes) for electronic gradient (derivative) of the ECP matrix using the provided plan and density matrix.

This function computes the workspace requirements for a requested ECP gradient calculation. Fill the provided workspace descriptor with host and device buffer sizes required. The outGradient pointer may be NULL.

Parameters#

handle[in]cuestHandle

cuEST handle. Must not be NULL.

plan[in]cuestECPIntPlanHandle

Handle to cuestECPIntPlan. Must not be NULL.

parameters[in]cuestECPDerivativeComputeParameters

Handle to cuestECPDerivativeComputeParameters. Must not be NULL.

variableBufferSize[in]WorkspaceDescriptor

User-provided descriptor for the amount of memory used to evaluate the ECP integrals. 2 GB is a good default buffer size for device memory. If an insufficient amount of memory is provided, the cuestECPDerivativeCompute call will return CUEST_STATUS_EXCEPTION. If this occurs, increase the variableBufferSize and make the WorkspaceQuery and Compute calls again. This value MUST remain unchanged between the WorkspaceQuery call and the Compute call. Host memory is currently unused. Must not be NULL.

temporaryWorkspaceDescriptor[out]cuestWorkspaceDescriptorHandle

Handle to cuestWorkspaceDescriptor. Must not be NULL.

densityMatrix[in]Pointer

Pointer to input density matrix. May be NULL.

outGradient[in]Pointer

Pointer to output gradient. May be NULL.

Returns#

status[out]CuestStatus