natural_reparametrization
Natural reparametrization of the LCAB Ansatz for the electron density.
Taken as described in [M-OFDFT]_(https://doi.org/10.48550/arXiv.2309.16578), in the third paragraph of section 4.3 and appendix B.3.2 would yield the so called “canical” orthogonalization of the atomic orbital basis,
where \(Q\) is the matrix containing eigenvectors and \(Λ\) the diagonal matrix of the overlap matrix’ \(W\) eigenvalues .
However, the implementation in the authors’ code uses the so called “symmetric” orthogonalization, which corresponds to the symmetric orthogonalization of atomic orbitals (cf. Löwdin 1970, https://www.sciencedirect.com/science/article/abs/pii/S0065327608603391),
While the former (canonical) is rather globally spread throughout the molecule and invariant with respect to unitary transformations, the latter (symmetric) describes the original basis functions best and is provably equivariant with respect to such transformations, e.g. local frame rotations.
- natural_reparametrization_matrices(overlap_matrix: ~numpy.ndarray, orthogonalization: ~typing.Literal['symmetric', 'canonical'] = 'symmetric', do_sanity_checks: bool = False) -> (<class 'numpy.ndarray'>, <class 'numpy.ndarray'>)[source]
Compute \(M\), the square-root of the overlap matrix \(W\), i.e. \(MM^T=W\), and its inverse \(M^{-1}\), used to transform coefficients and their gradients to the natural parametrization.
- Parameters:
overlap_matrix – Overlap matrix (or matrices) of the atomic orbitals. Shape (…, n_ao, n_ao).
orthogonalization – Type of orthogonalization to use. Either “symmetric” or “canonical”. The symmetric version is the default.
do_sanity_checks – Whether to perform sanity checks on the input and output.
- Returns:
matrix \(M\) and its inverse.
- natural_reparametrization_matrices_torch(overlap_matrix: ~torch.Tensor, orthogonalization: ~typing.Literal['symmetric', 'canonical'] = 'symmetric', do_sanity_checks: bool = False) -> (<class 'torch.Tensor'>, <class 'torch.Tensor'>)[source]
Compute \(M\), the square-root of the overlap matrix \(W\), i.e. \(MM^T=W\), and its inverse \(M^{-1}\) as a torch.Tensor, used to transform coefficients and their gradients to the natural parametrization.
- Parameters:
overlap_matrix – Overlap matrix (or matrices) of the atomic orbitals. Shape (…, n_ao, n_ao).
orthogonalization – Type of orthogonalization to use. Either “symmetric” or “canonical”. The symmetric version is the default.
do_sanity_checks – Whether to perform sanity checks on the input and output.
- Returns:
matrix \(M\) and its inverse.