exatomic.algorithms.orbital module

Numerical Orbital Functions

Building discrete molecular orbitals (for visualization) requires a complex set of operations that are provided by this module and wrapped into a clean API.

exatomic.algorithms.orbital.add_molecular_orbitals(uni, field_params=None, mocoefs=None, vector=None, frame=0, inplace=True, replace=False, verbose=True, irrep=None)[source]

A universe must contain basis_set, [basis_set_order], and momatrix attributes to use this function. Evaluate molecular orbitals on a numerical grid. Attempts to generate reasonable defaults if none are provided. If vector is not provided, attempts to calculate vector from the orbital table, or by the sum of Z (Zeff) of the atoms in the atom table divided by two; roughly (HOMO-5, LUMO+7).

Parameters:
  • uni (Universe) – a universe

  • field_params (dict) – See make_fps()

  • mocoefs (str) – column in uni.current_momatrix (default ‘coef’)

  • vector (int, list, range, np.ndarray) – the MO vectors to evaluate

  • inplace (bool) – if False, return the field obj instead of modifying uni

  • replace (bool) – if False, do not delete any previous fields

  • irrep (int) – if symmetrized, the irrep to which the orbitals belong

Warning

If replace is True, removes any fields previously attached to the universe

exatomic.algorithms.orbital.add_density(uni, field_params=None, mocoefs=None, orbocc=None, inplace=True, frame=0, norm='Nd', verbose=True)[source]

A universe must contain basis_set, [basis_set_order], and momatrix attributes to use this function. Compute a density with C matrix mocoefs and occupation vector orbocc.

Parameters:
  • uni (Universe) – a universe

  • field_params (dict) – See make_fps()

  • mocoefs (str) – column in uni.current_momatrix (default ‘coef’)

  • orbocc (str) – column in uni.orbital (default ‘occupation’)

  • inplace (bool) – if False, return the field obj instead of modifying uni

exatomic.algorithms.orbital.add_orb_ang_mom(uni, field_params=None, rcoefs=None, icoefs=None, frame=0, orbocc=None, maxes=None, inplace=True, norm='Nd', verbose=True)[source]

A universe must contain basis_set, [basis_set_order], and momatrix attributes to use this function. Compute the orbital angular momentum. Requires C matrices from SODIZLDENS.X.X.R,I files from Molcas.

Parameters:
  • uni (Universe) – a universe

  • field_params (dict) – See make_fps()

  • rcoefs (str) – column in uni.current_momatrix (default ‘lreal’)

  • icoefs (str) – column in uni.current_momatrix (default ‘limag’)

  • maxes (np.ndarray) – 3x3 array of magnetic axes (default np.eye(3))

  • orbocc (str) – column in uni.orbital (default ‘lreal’)

  • inplace (bool) – if False, return the field obj instead of modifying uni