def compute_mulliken_charges(obasis, lf, numbers, dm): operators = get_mulliken_operators(obasis, lf) populations = np.array([operator.contract_two('ab,ab', dm) for operator in operators]) return numbers - np.array(populations)
def compute_mulliken_charges(obasis, lf, numbers, dm): operators = get_mulliken_operators(obasis, lf) populations = np.array( [operator.contract_two('ab,ab', dm) for operator in operators]) return numbers - np.array(populations)
def compute_mulliken_charges(obasis, lf, pseudo_numbers, dm): operators = get_mulliken_operators(obasis, lf) populations = np.array([operator.contract_two('ab,ab', dm) for operator in operators]) assert pseudo_numbers.shape == populations.shape return pseudo_numbers - np.array(populations)