Primitive Normalization
Returns the renormalized contraction coefficients for each primitive in the provided basis set, matching libint’s internal
renorm()convention.For each contracted shell, libint applies two normalization steps:
A per-primitive factor \(N_p = \sqrt{2^l (2\zeta_p)^{l+3/2} / (\sqrt{\pi^3} (2l-1)!!)}\) is multiplied into each raw coefficient \(d_p\).
All scaled coefficients are then divided by
- \(\sqrt{\langle\phi|\phi\rangle}\),
where \(\langle\phi|\phi\rangle\) is the self-overlap of the contracted shell computed with the already-scaled coefficients, so that the contracted shell has unit norm.
This module returns the resulting values :math:`d_p N_p /
- sqrt{langlephi|phirangle}`
by constructing the basis set via libint with
embed_normalization = trueand reading the coefficients back from the resulting shell objects.The output vector has one entry per (primitive, AO component) pair, in the same order as the decontracted basis: for each contracted shell, the \(n_{\rm prims} \times n_{\rm AOs}\) entries are listed with the primitive index varying fastest.
Please Cite
No citations
Property Types
The following is a list of property types that this module satisfies.
integrals::property_types::Normalize<chemist::basis_set::AOBasisSet<chemist::basis_set::AtomicBasisSet<chemist::basis_set::Shell<chemist::basis_set::ContractedGaussian<chemist::basis_set::Primitive<double>>>>>>
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, andDescription: A human readable description of what the option is used for.
Key |
Default |
Description |
|---|---|---|
Object to Normalize |
N/A |
The object to normalize |
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.
Object to Normalize
Description : The object to normalize
Default Value : N/A
Optional? : False
Opaque? : True
Domain Restrictions :
Type == chemist::basis_set::AOBasisSet<chemist::basis_set::AtomicBasisSet<chemist::basis_set::Shell<chemist::basis_set::ContractedGaussian<chemist::basis_set::Primitive<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 |
|---|---|---|
Normalization Factors |
std::vector<double, std::allocator<double>> |
A vector of normalization factors, one per primitive |
Submodules
The module defines no submodules.