Source code for pynao.m_ls_contributing


from __future__ import print_function, division
import numpy as np

try:
    from pynao.m_numba_utils import ls_contributing_numba
    use_numba = True
except:
    use_numba = False

[docs]def ls_contributing(pb, sp12, ra12): """ List of contributing centers prod_basis_c : instance of the prod_basis_c containing parameters .ac_rcut_ratio and .ac_npc_max and .sv providing instance of system_vars_c which provides the coordinates, unit cell vectors, species etc. and .prod_log prividing information on the cutoffs for each specie. sp12 : a couple of species ra12 : a couple of coordinates, correspondingly """ ra3 = 0.5*(ra12[0,:] + ra12[1,:]) ia2dist = np.zeros(pb.sv.natoms) if use_numba: ls_contributing_numba(pb.sv.atom2coord-ra3, ia2dist) else: for ia,rvec in enumerate(pb.sv.atom2coord-ra3): ia2dist[ia] = np.sqrt(np.dot(rvec, rvec)) return np.argsort(ia2dist)[0:pb.ac_npc_max]