uf3.representation.angles.identify_ij

identify_ij(geom: ase.atoms.Atoms, knot_sets: List[List[numpy.ndarray]], supercell: Optional[ase.atoms.Atoms] = None, square: bool = False)[source]
Parameters
  • geom (ase.Atoms) –

  • knot_sets (np.ndarray) – list of lists of knot sequences per interaction

  • supercell (ase.Atoms) –

  • square (bool) – whether to return square distance matrix (True) or truncate to atoms in unit cell (False).

TODO: refactor to break up into smaller, reusable functions

Returns

rectangular matrix of shape

(n_atoms, n_supercell) where n_supercell is the number of atoms within the cutoff distance of any in-unit-cell atom.

{i, j}_where (np.ndarray): unsorted list of atom indices

over which to loop to obtain valid pair distances.

Return type

dist_matrix (np.ndarray)