.. This page is autogenerated by pluginplay::document_module. Any changes made .. to this document will be overwritten the next time it is generated. ######################### Primitive Contractor ERI4 ######################### Primitive Contractor ==================== This module computes four-center electron repulsion integrals (ERIs) in the contracted AO basis by explicitly contracting primitive integrals with renormalized contraction coefficients. The algorithm proceeds in three steps: 1. The "Raw Primitive ERI4" submodule is called with the original braket. It internally decontracts each basis set (one shell per primitive, coefficient = 1.0) and returns the raw primitive ERI tensor with libint's automatic shell normalization disabled. The tensor has dimensions [n_prim_aos, n_prim_aos, n_prim_aos, n_prim_aos], where n_prim_aos counts all AO components across all decontracted shells (e.g. a p-shell with 3 primitives contributes 9 decontracted AO indices: 3 primitives x 3 components). 2. The "Primitive Normalization" submodule is called on each of the four contracted basis sets. It returns a vector of renormalized contraction coefficients c[i], one per decontracted AO index, in the same ordering as the decontracted basis (primitive index varying fastest within each (shell, ao_component) block). 3. Matrices of pair estimates are computed for bra and ket basis sets. K and K' are respectively coarse estimates for bra and ket basis sets. Q and Q' are respectively fine estimates for bra and ket basis sets. 4. The contracted AO integrals are formed by summing c0[i]*c1[j]*c2[k]*c3[l]*prim_ERI[i,j,k,l] with screening: Coarse (from `coarse_k_ij`): - Skip bra pair (i,j) if K[i,j] < t - Skip ket pair (k,l) if K'[k,l] < t - Skip quartet if K[i,j] * K'[k,l] <= t (libint keeps only sums > ln(t)) - Skip if |Q[i,j] * Q'[k,l] / sqrt(gamma_bra + gamma_ket)| < t. *********** Please Cite *********** No citations ************** Property Types ************** The following is a list of property types that this module satisfies. - ``simde::EvaluateBraKet, chemist::qm_operator::Coulomb, std::pair>>`` ************* Module Inputs ************* This section details the full list of inputs that the module accepts. Inputs that are not listed as optional must have their value set before the module can be run. Inputs can be set manually by calling the module's ``change_input`` function or by passing arguments to a property type. Quick Reference =============== The following table provides a quick summary of the inputs available to this module. The columns are: - ``Key``: The key used to retrieve the option, - ``Default`` : The initial value, if one exists, and - ``Description`` : A human readable description of what the option is used for. +---------------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Key | Default | Description | +=====================+=========+=============================================================================================================================================================+ | BraKet | N/A | N/A | +---------------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Screening Threshold | 1e-16 | Coarse screening uses the PrimitivePairEstimator matrices; fine screening uses libint ShellPair geometry factors. Matches libint ScreeningMethod::Original. | +---------------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ Detailed Descriptions ===================== The following subsections provide detailed descriptions of each input recognized by this module. The subsection headings are the name of the input. Within each subsection we list: - ``Description`` : A human readable description of what the option is used for. - ``Default Value`` : The initial value, if one exists. - ``Optional?`` : Whether the value must be set inorder for the module to run. - ``Opaque?`` : Does the value of the input influence memoization?. - ``Domain Restrictions`` : Criteria a value must obey to be deemed valid. BraKet ------ - Description : N/A - Default Value : N/A - Optional? : False - Opaque? : True - Domain Restrictions : - Type == chemist::braket::BraKet, chemist::qm_operator::Coulomb, std::pair> Screening Threshold ------------------- - Description : Coarse screening uses the PrimitivePairEstimator matrices; fine screening uses libint ShellPair geometry factors. Matches libint ScreeningMethod::Original. - Default Value : 1e-16 - Optional? : False - Opaque? : True - Domain Restrictions : - Type == double ************** Module Results ************** This section tabulates the full list of results that the module returns. The columns respectively are: - Key: What the result is called - Type: The C++ type of the result - Description: What the result is/how it was computed. .. note:: A given property type will only return a subset of the available results. Additional results can be accessed by using other property types or by using the Module class's advanced API. +-----------------------+-----------------------+-------------+ | Key | Type | Description | +=======================+=======================+=============+ | tensor representation | tensorwrapper::Tensor | N/A | +-----------------------+-----------------------+-------------+ ********** Submodules ********** This section details the full list of submodules that the module uses. For each submodule we have listed: - Key : The key used to refer to this particular callback. - Property Type : The property type that the submodule must satisfy. - Description : How the module will use the submodule. +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+ | Key | Property Type | Description | +=========================+===========================================================================================================================================================================================================================================================+=============+ | Primitive Normalization | integrals::property_types::Normalize>>>>> | N/A | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+ | Raw Primitive ERI4 | simde::EvaluateBraKet, chemist::qm_operator::Coulomb, std::pair>> | N/A | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+