Skip to content

Commit

Permalink
Simplify and fix eval_ked_positive_definite for slater db
Browse files Browse the repository at this point in the history
  • Loading branch information
marco-2023 committed Dec 25, 2024
1 parent 766b9cf commit 5c38edc
Showing 1 changed file with 2 additions and 26 deletions.
28 changes: 2 additions & 26 deletions atomdb/datasets/slater/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -550,32 +550,8 @@ def eval_ked_positive_definite(self, points):
"""

phi_matrix = np.zeros((len(points), len(self.orbitals)))
for index, orbital in enumerate(self.orbitals):
exps, number = self.orbitals_exp[orbital[1]], self.basis_numbers[orbital[1]]
slater = AtomicDensity.slater_orbital(exps, number, points)
# derivative
deriv_pref = (number.T - 1.0) - exps.T * np.reshape(points, (points.shape[0], 1))
deriv = deriv_pref * slater
phi_matrix[:, index] = np.dot(deriv, self.orbitals_coeff[orbital]).ravel()

angular = [] # Angular numbers are l(l + 1)
for index, orbital in enumerate(self.orbitals):
if "S" in orbital:
angular.append(0.0)
elif "P" in orbital:
angular.append(2.0)
elif "D" in orbital:
angular.append(6.0)
elif "F" in orbital:
angular.append(12.0)

orb_occs = self.orbitals_occupation
energy = np.dot(phi_matrix**2.0, orb_occs).ravel() / 2.0
# Add other term
molecular = self.phi_matrix(points) ** 2.0 * np.array(angular)
energy += np.dot(molecular, orb_occs).ravel() / 2.0
return energy
orbs_ked = self.eval_orbs_ked_positive_definite(points)
return np.sum(orbs_ked, axis=0)

def eval_radial_d_density(self, points):
r"""
Expand Down

0 comments on commit 5c38edc

Please sign in to comment.