Skip to content

Commit 3782633

Browse files
improve db generation performance
1 parent 38df693 commit 3782633

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

src/rydstate/species/species_object.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,11 @@ def get_ionization_energy(self, unit: str | None = "hartree") -> PintFloat | flo
269269
return ionization_energy.magnitude
270270
return ionization_energy.to(unit, "spectroscopy").magnitude
271271

272+
@cached_property
273+
def ionization_energy_au(self) -> float:
274+
"""Ionization energy in atomic units (Hartree)."""
275+
return self.get_ionization_energy("hartree")
276+
272277
@overload
273278
def get_corrected_rydberg_constant(self, unit: None = None) -> PintFloat: ...
274279

@@ -373,7 +378,7 @@ def calc_nu(
373378
if n <= nist_n_max and use_nist_data: # try to use NIST data
374379
if (n, l, j_tot, s_tot) in self._nist_energy_levels:
375380
energy_au = self._nist_energy_levels[(n, l, j_tot, s_tot)]
376-
energy_au -= self.get_ionization_energy("hartree")
381+
energy_au -= self.ionization_energy_au # use the cached ionization energy for better performance
377382
return calc_nu_from_energy(self.reduced_mass_au, energy_au)
378383
logger.debug(
379384
"NIST energy levels for (n=%d, l=%d, j_tot=%s, s_tot=%s) not found, using quantum defect theory.",

0 commit comments

Comments
 (0)