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.