qrunch.chemistry.ground_state_problem.builders.tools.localization
The localization module provides means to localize molecular orbitals.
Classes
Orbital localizer creator. |
|
Orbital assigner creator. |
- class LocalizerCreator
Bases:
Generic[T]Orbital localizer creator.
- __init__(parent: T, field_name: str) None
Initialize an orbital localizer creator.
- Parameters:
parent (T) – Parent object to which the molecular orbital calculator will be assigned.
field_name (str) – Name of the field in the parent object where the molecular orbital calculator will be assigned.
- Return type:
None
- pipek_mezey(population_method: Literal['meta-lowdin', 'mulliken', 'lowdin'] = 'meta-lowdin', options: LocalizationOptions | None = None) T
Narrow the molecular orbital localizer to a Pipek-Mezey Localizer.
This method transforms delocalized molecular orbitals into localized orbitals that are more chemically intuitive. The localized orbitals can be associated with specific bonds or lone pairs in a molecule, aiding in the interpretation of chemical structures and reactions.
Pipek-Mezey Localization Algorithm
The Pipek-Mezey localization procedure [PipekMezey1989] aims to maximize the sum of the squares of atomic partial charges (populations) for each orbital. By doing so, the method localizes orbitals on individual atoms or between pairs of atoms (chemical bonds), enhancing the chemical interpretability of the wavefunction.
The localization criterion Omega is defined as:
\[\Omega = \sum_{i}^{N_{\text{occ}}} \sum_{A}^{N_{\text{atoms}}} [q_{iA}]^2\]where:
\(N_{\text{occ}}\) is the number of occupied molecular orbitals.
\(N_{\text{atoms}}\) is the number of atoms in the molecule.
\(q_{iA}\) is the Mulliken population of orbital \(i\) on atom \(A\), calculated as:
\[q_{iA} = \sum_{\mu \in A} \sum_{\nu} C_{\mu i} S_{\mu \nu} C_{\nu i}\]Here:
\(C_{\mu i}\) are the coefficients of the molecular orbitals.
\(S_{\mu \nu}\) is the overlap between atomic orbitals \(\mu\) and \(\nu\).
The sum over \(\mu \in A\) includes all basis functions centered on atom \(A\).
Implementation Details
The method involves iteratively rotating pairs of occupied molecular orbitals to increase \(\Omega\) until convergence is achieved. This is typically done using a Jacobi-like rotation procedure that ensures the orthogonality of the resulting localized orbitals.
Advantages
Chemical Intuition: Produces orbitals that correspond closely to chemical bonds and lone pairs.
Computational Efficiency: Generally faster than other localization methods like Boys localization.
Applicability: Suitable for both ab initio and semiempirical wavefunctions.
[PipekMezey1989]Pipek, J., & Mezey, P. G. (1989). A fast intrinsic localization procedure applicable for ab initio and semiempirical linear combination of atomic orbital wave functions. The Journal of Chemical Physics, 90(9), 4916-4926. doi:10.1063/1.456588
- param population_method:
The method for calculating the orbital population.
- param options:
The algorithmic options.
- Parameters:
population_method (Literal['meta-lowdin', 'mulliken', 'lowdin'])
options (LocalizationOptions | None)
- Return type:
T
- class OrbitalAssignerCreator
Bases:
Generic[T]Orbital assigner creator.
- __init__(parent: T, field_name: str) None
Initialize an orbital assigner creator.
- Parameters:
parent (T) – Parent object to which the molecular orbital calculator will be assigned.
field_name (str) – Name of the field in the parent object where the molecular orbital calculator will be assigned.
- Return type:
None
- total_weight(assignment_tolerance: float | Literal['kmeans_midpoint', 'largest_gap_midpoint']) T
Narrow the orbital assigner to a TotalWeightBasedOrbitalAssigner.
The TotalWeightBasedOrbitalAssigner Assigns molecular orbitals to embedded and environment regions based on the total weights of their atomic orbital contributions.
- Parameters:
assignment_tolerance (float | Literal['kmeans_midpoint', 'largest_gap_midpoint'])
- Return type:
T
Modules
Module containing protocols for localization and orbital assignment. |
|
Molecular orbital assignment utilities. |
|
Molecular orbital localization. |