natural_occupation

Natural orbital occupation module.

class daltonproject.natural_occupation.CAS(active_electrons: int, active_orbitals: int | list[int], inactive_orbitals: int | list[int])

Data structure for complete active space specification.

active_electrons: int

Alias for field number 0

active_orbitals: int | list[int]

Alias for field number 1

inactive_orbitals: int | list[int]

Alias for field number 2

class daltonproject.natural_occupation.NatOrbOcc(num_irreps: int, strong_nat_occ: dict[int, np.ndarray], weak_nat_occ: dict[int, np.ndarray], strong_nat_occ_nosym: np.ndarray, strong_nat_occ_nosym2sym_idx: np.ndarray, weak_nat_occ_nosym: np.ndarray, weak_nat_occ_nosym2sym_idx: np.ndarray)

Data structure for natural orbital occupations.

num_irreps: int

Alias for field number 0

strong_nat_occ: dict[int, numpy.ndarray]

Alias for field number 1

strong_nat_occ_nosym: ndarray

Alias for field number 3

strong_nat_occ_nosym2sym_idx: ndarray

Alias for field number 4

weak_nat_occ: dict[int, numpy.ndarray]

Alias for field number 2

weak_nat_occ_nosym: ndarray

Alias for field number 5

weak_nat_occ_nosym2sym_idx: ndarray

Alias for field number 6

daltonproject.natural_occupation.pick_cas_by_thresholds(natural_occupations: Mapping[int, ndarray], max_strong_occupation: float, min_weak_occupation: float) CAS

Get parameters needed for a CAS calculation based on simple thresholds.

Parameters
  • natural_occupations – Natural occupation numbers.

  • max_strong_occupation – Maximum occupation number of strongly occupied natural orbitals to be included in CAS.

  • min_weak_occupation – Minimum occupation number of weakly occupied natural orbitals to be included in CAS.

Returns

Number of active electrons, CAS, and number of inactive orbitals.

daltonproject.natural_occupation.scan_occupations(natural_occupations: Mapping[int, ndarray], strong_threshold: float = 1.995, weak_threshold: float = 0.002, max_orbitals: int = 14) str

Determine thresholds for picking active space.

Will not print orbitals outside the bounds of “strong_threshold” and “weak_threshold”.

Parameters
  • natural_occupations – Natural occupation numbers.

  • strong_threshold – Strongly occupied natural orbitals with occupations above this threshold will not be printed.

  • weak_threshold – Weakly occupied natural orbitals with occupations below this threshold will not be printed.

  • max_orbitals – Maximum number of strongly and weakly occupied orbitals to print.

Returns

String to be printed or saved to file.

daltonproject.natural_occupation.sort_natural_occupations(natural_occupations: np.ndarray | Mapping[int, np.ndarray]) NatOrbOcc

Sort natural orbital occupation numbers.

Parameters

natural_occupations – Natural occupation numbers.

Returns

Sorted natural orbital occupation numbers.

daltonproject.natural_occupation.trim_natural_occupations(natural_occupations: Mapping[int, ndarray], strong_threshold: float = 1.995, weak_threshold: float = 0.002) str

Print relevant natural occupations in a nice format.

Parameters
  • natural_occupations – Natural occupation numbers.

  • strong_threshold – Strongly occupied natural orbitals with occupations above this threshold will not be printed.

  • weak_threshold – Weakly occupied natural orbitals with occupations below this threshold will not be printed.

Returns

String to be printed or saved to file.