Integrals

Compute multipole integrals using Libint2 <https://github.com/evaleev/libint/wiki>.

The interface to the C++ Libint2 library is located at the parent folder, in the libint folder.

Index

get_multipole_matrix(config, inp, multipole)

Retrieve the multipole number i from the trajectory.

compute_matrix_multipole(mol, config, multipole)

Compute a multipole matrix: overlap, dipole, etc.

API

nanoqm.integrals.multipole_matrices.get_multipole_matrix(config: _data.AbsorptionSpectrum, inp: _data.AbsorptionData, multipole: Literal['overlap', 'dipole', 'quadrupole']) NDArray[f8][source]

Retrieve the multipole number i from the trajectory. Otherwise compute it.

Parameters:
  • config – Global configuration to run a workflow

  • inp – Information about the current point, e.g. molecular geometry.

  • multipole – Either overlap, dipole or quadrupole.

Returns:

Tensor containing the multipole.

Return type:

np.ndarray

nanoqm.integrals.multipole_matrices.compute_matrix_multipole(mol: list[AtomXYZ], config: _data.GeneralOptions, multipole: Literal['overlap', 'dipole', 'quadrupole']) NDArray[f8][source]

Compute a multipole matrix: overlap, dipole, etc. for a given geometry mol.

The multipole is Computed in spherical coordinates.

Note: for the dipole and quadrupole the super_matrix contains all the matrices stack all the 0-axis.

Parameters:
  • mol – Molecule to compute the dipole

  • config – Dictionary with the current configuration

  • multipole – kind of multipole to compute

Returns:

Matrix with entries <ψi | x^i y^j z^k | ψj>

Return type:

np.ndarray