chemtools.utils.molecule.BaseMolecule

class chemtools.utils.molecule.BaseMolecule(coordinates, numbers)[source]

Molecule Class.

This class serves as a template for the internal datatype used in ChemTools. Each of the methods are required to run different parts of ChemTools. If these methods are not defined, then a NotImplementedError will be raised to indicate that this method is not compatible with the given Molecule instance/class.

Initialize class.

Parameters:
  • coordinates (ndarray) – The 2d-array containing the cartesian coordinates of atomic centers. It has a shape of (M, 3) where M is the number of atoms.
  • numbers (ndarray) – The 1d-array containing the atomic number of atoms. It has a shape of (M,) where M is the number of atoms.
classmethod from_file(filename)[source]

Initialize class given a file.

Parameters:filename (str) – Path to molecule’s files.
coordinates

Cartesian coordinates of atomic centers.

numbers

Aomic number of atomic centers.

natom

Number of atoms.

nbasis

Number of basis functions.

nelectrons

Number of alpha and beta electrons.

homo_index

Index of alpha and beta HOMO orbital.

lumo_index

Index of alpha and beta LUMO orbital.

homo_energy

Energy of alpha and beta HOMO orbital.

lumo_energy

Energy of alpha and beta LUMO orbital.

orbital_occupation

Orbital occupation of alpha and beta electrons.

orbital_energy

Orbital energy of alpha and beta electrons.

orbital_coefficient

Orbital coefficient of alpha and beta electrons.

The alpha and beta orbital coefficients are each storied in a 2d-array in which the columns represent the basis coefficients of each molecular orbital.

compute_density_matrix_array(spin='ab')[source]

Return the density matrix array for the specified spin orbitals.

Parameters:spin (str) – The type of occupied spin orbitals. By default, the alpha and beta electrons (i.e. alpha and beta occupied spin orbitals) are used for computing the electron density. - ‘a’ or ‘alpha’: consider alpha electrons - ‘b’ or ‘beta’: consider beta electrons - ‘ab’: consider alpha and beta electrons
compute_density(points, spin='ab', orbital_index=None, output=None)[source]

Return electron density evaluated on the given points for the spin orbitals.

Parameters:
  • points (ndarray) – The 2d-array containing the cartesian coordinates of points on which density is evaluated. It has a shape (n, 3) where n is the number of points.
  • spin (str) – The type of occupied spin orbitals. By default, the alpha and beta electrons (i.e. alpha and beta occupied spin orbitals) are used for computing the electron density. - ‘a’ or ‘alpha’: consider alpha electrons - ‘b’ or ‘beta’: consider beta electrons - ‘ab’: consider alpha and beta electrons
  • orbital_index (sequence) – Sequence of integers representing the index of spin orbitals. Alpha and beta spin orbitals are each indexed from 1 to nbasis. If None, all occupied spin orbtails are included.
  • output (np.ndarray) – Array with shape (n,) to store the output, where n in the number of points. When None the array is allocated.
compute_gradient(points, spin='ab', orbital_index=None, output=None)[source]

Return gradient of electron density evaluated on the given points for the spin orbitals.

Parameters:
  • points (ndarray) – The 2d-array containing the cartesian coordinates of points on which density is evaluated. It has a shape (n, 3) where n is the number of points.
  • spin (str) – The type of occupied spin orbitals. By default, the alpha and beta electrons (i.e. alpha and beta occupied spin orbitals) are used for computing the electron density. - ‘a’ or ‘alpha’: consider alpha electrons - ‘b’ or ‘beta’: consider beta electrons - ‘ab’: consider alpha and beta electrons
  • orbital_index (sequence) – Sequence of integers representing the index of spin orbitals. Alpha and beta spin orbitals are each indexed from 1 to nbasis. If None, all occupied spin orbtails are included.
  • output (np.ndarray) – Array with shape (n, 3) to store the output, where n in the number of points. When None the array is allocated.
compute_hessian(points, spin='ab', orbital_index=None, output=None)[source]

Return hessian of electron density evaluated on the given points for the spin orbitals.

Parameters:
  • points (ndarray) – The 2d-array containing the cartesian coordinates of points on which density is evaluated. It has a shape (n, 3) where n is the number of points.
  • spin (str) – The type of occupied spin orbitals. By default, the alpha and beta electrons (i.e. alpha and beta occupied spin orbitals) are used for computing the electron density. - ‘a’ or ‘alpha’: consider alpha electrons - ‘b’ or ‘beta’: consider beta electrons - ‘ab’: consider alpha and beta electrons
  • orbital_index (sequence) – Sequence of integers representing the index of spin orbitals. Alpha and beta spin orbitals are each indexed from 1 to nbasis. If None, all occupied spin orbtails are included.
  • output (np.ndarray) – Array with shape (n, 6) to store the output, where n in the number of points. When None the array is allocated.
compute_esp(points, spin='ab', orbital_index=None, output=None)[source]

Return the molecular electrostatic potential on the given points for the specified spin.

Parameters:
  • points (ndarray) – The 2d-array containing the cartesian coordinates of points on which density is evaluated. It has a shape (n, 3) where n is the number of points.
  • spin (str) – The type of occupied spin orbitals. By default, the alpha and beta electrons (i.e. alpha and beta occupied spin orbitals) are used for computing the electron density. - ‘a’ or ‘alpha’: consider alpha electrons - ‘b’ or ‘beta’: consider beta electrons - ‘ab’: consider alpha and beta electrons
  • orbital_index (sequence) – Sequence of integers representing the index of spin orbitals. Alpha and beta spin orbitals are each indexed from 1 to nbasis. If None, all occupied spin orbtails are included.
  • output (np.ndarray) – Array with shape (n,) to store the output, where n in the number of points. When None the array is allocated.
compute_kinetic_energy_density(points, spin='ab', orbital_index=None, output=None)[source]

Return positive definite kinetic energy density on the given points for the specified spin.

Positive definite kinetic energy density is defined as,

\[\tau \left(\mathbf{r}\right) = \sum_i^N n_i \frac{1}{2} \rvert \nabla \phi_i \left(\mathbf{r}\right) \lvert^2\]
Parameters:
  • points (ndarray) – The 2d-array containing the cartesian coordinates of points on which density is evaluated. It has a shape (n, 3) where n is the number of points.
  • spin (str) – The type of occupied spin orbitals. By default, the alpha and beta electrons (i.e. alpha and beta occupied spin orbitals) are used for computing the electron density. - ‘a’ or ‘alpha’: consider alpha electrons - ‘b’ or ‘beta’: consider beta electrons - ‘ab’: consider alpha and beta electrons
  • orbital_index (sequence) – Sequence of integers representing the index of spin orbitals. Alpha and beta spin orbitals are each indexed from 1 to nbasis. If None, all occupied spin orbtails are included.
  • output (np.ndarray) – Array with shape (n,) to store the output, where n in the number of points. When None the array is allocated.