molecule

class slowquant.molecule.moleculeclass.Atom(name: str, coordinate_: float, charge: int, mass_: float)

Initialize atom instance.

Parameters:
  • name – Atom name.

  • coordinate – Atom coordinate.

  • charge – Atom nuclear charge.

  • mass – Atomic mass.

class slowquant.molecule.moleculeclass.Shell(center_: ndarray, exponents_: ndarray, contraction_coefficients_: ndarray, angular_moments_: ndarray, bf_idx_: int, origin_atom_: Atom)

Initialize shell instance.

Parameters:
  • center – x,y,z-coordinate for shell location.

  • exponents – Gaussian exponents.

  • contraction_coefficients – Contraction coefficients.

  • angular_moments – Angular moments of the form x,y,z.

  • bf_idx – Starting index of basis-function in shell.

  • origin_atom – Atom which the shell is placed on.

class slowquant.molecule.moleculeclass._Molecule(molecule_file: str, molecular_charge_: int = 0, distance_unit: str = 'bohr')

Initialize molecule instance.

Parameters:
  • molecule_file – Filename of file containing molecular coordinates.

  • molecular_charge – Total charge of molecule.

  • distance_unit – Distance unit used coordinate file. Angstrom or Bohr (default). Internal representation is Bohr.

_set_basis_set(basis_set: str) None

Set basis set.

Parameters:

basis_set – Name of basis set.

property atom_charges: ndarray

Get atom charges.

Returns:

Atom charges.

property atom_coordinates: ndarray

Get atom coordinates.

Returns:

Atom coordinates.

property basis_function_labels: list[str]

Get labels of basis functions.

Returns:

Labels of basis functions.

property center_of_mass: ndarray

Get center of mass.

Returns:

Center of mass.

get_basis_function_amplitude(points: ndarray) ndarray

Compute basis function amplitudes in a set of points.

Parameters:

points – Points in which the basis function amplitudes are evaulated.

Returns:

Basis function amplitudes in a set of points.

property nuclear_repulsion: float

Get nuclear-nuclear repulsion.

\[V_\mathrm{NN} = \sum_{i < j}\frac{Z_i Z_j}{|R_i-R_j|}\]
Returns:

Nuclear-nuclear repulsion.

property number_electrons: int

Get number of electrons.

Returns:

Number of electrons.

property number_electrons_alpha: int

Get number of alpha electrons.

Returns:

Number of alpha electrons.

property number_electrons_beta: int

Get number of beta electrons.

Returns:

Number of beta electrons.

property number_shell: int

Get number of shells.

Returns:

Number of shells.

slowquant.molecule.moleculefunctions.contracted_normalization(exponents: ndarray, coefficients: ndarray, angular_moments: ndarray) float

Normalize contracted Gaussian.

\[N = \left[ \frac{\pi^{3/2}(2l-1)!!(2m-1)!!(2n-1)!!}{2^{l+m+n}} \sum_{i,j}^n\frac{a_ia_j}{\left(\alpha_i+\alpha_j\right)^{l+m+n+3/2}} \right]^{-1/2}\]

With the cartesian angular moments being \(l\), \(m\), and \(n\), and the Gaussian exponent being \(\alpha\), and the contraction coefficients being \(a\).

Reference: Fundamentals of Molecular Integrals Evaluation, https://arxiv.org/abs/2007.12057

Parameters:
  • exponents – Gaussian exponents.

  • coefficients – Contraction coefficients.

  • angular_moments – Angular moment of Gaussian orbital.

Returns:

Normalization constant for contracted Gaussian.

slowquant.molecule.moleculefunctions.factorial2(number: float) float

Double factorial.

\[n!! = \prod^{\lceil n/2\rceil-1}_{k=0}(n-2k)\]

Reference: https://en.wikipedia.org/wiki/Double_factorial

Parameters:

number – Integer.

Returns:

Double factorial of number.

slowquant.molecule.moleculefunctions.primitive_gauss(coord_x: float, coord_y: float, coord_z: float, center_x: float, center_y: float, center_z: float, exponent: float, ang_x: int, ang_y: int, ang_z: int) float

Primitive Gaussian.

slowquant.molecule.moleculefunctions.primitive_normalization(exponent: float, angular_moment: ndarray) float

Normalize primitive Gaussian.

\[N = \left(\frac{2}{\pi}\right)^{3/4} \frac{2^{l+m+n}\alpha^{(2l+2m+2n+3)/4}}{[(2l-1)!!(2m-1)!!(2n-1)!!]^{1/2}}\]
Parameters:
  • exponent – Gaussian exponent.

  • angular_moment – Cartesian angular moment of primitive Gaussian.

Returns:

Normalization constant for primitive Gaussian.

slowquant.molecule.constants.atom_to_properties(atom_name: str, atom_property: str) float

Convert atom name into a property.

Parameters:
  • atom_name – Name of element.

  • atom_property – Property of atom, can be [charge, mass, vdw_radii]

Returns:

Property of element.

slowquant.molecule.basis_reader.read_basis(atom_name: str, basis_set: str) tuple[ndarray, ndarray, ndarray]

Read basis set from file.

Parameters:
  • atom_name – Name of atom.

  • basisset – Name of basisset

Returns:

Basisset information, exponents, contraction coefficients and angular moments.