Source code for stko._internal.calculators.results.xtb_results

from collections import abc
from pathlib import Path

from stko._internal.calculators.extractors.xtb_extractor import XTBExtractor


[docs] class XTBResults: """Results class containing molecule xTB properties.""" def __init__( self, generator: abc.Generator, output_file: Path | str, extractor: type = XTBExtractor, ) -> None: # Run calculation. next(generator) # type: ignore[call-overload] self._extractor = extractor(output_file=output_file)
[docs] def get_total_energy(self) -> tuple[float, str]: return (self._extractor.total_energy, "a.u.")
[docs] def get_homo_lumo_gap(self) -> tuple[float, str]: return (self._extractor.homo_lumo_gap, "eV")
[docs] def get_fermi_level(self) -> tuple[float, str]: return (self._extractor.fermi_level, "eV")
[docs] def get_homo_lumo_orbitals(self) -> tuple[float, str]: return (self._extractor.homo_lumo_occ, "eV")
[docs] def get_qonly_dipole_moments(self) -> tuple[float, str]: return (self._extractor.qonly_dipole_moment, "Debye")
[docs] def get_full_dipole_moments(self) -> tuple[float, str]: return (self._extractor.full_dipole_moment, "Debye")
[docs] def get_qonly_quadrupole_moments(self) -> tuple[float, str]: return (self._extractor.qonly_quadrupole_moment, "Debye")
[docs] def get_qdip_quadrupole_moments(self) -> tuple[float, str]: return (self._extractor.qdip_quadrupole_moment, "Debye")
[docs] def get_full_quadrupole_moments(self) -> tuple[float, str]: return (self._extractor.full_quadrupole_moment, "Debye")
[docs] def get_total_free_energy(self) -> tuple[float, str]: try: return (self._extractor.total_free_energy, "a.u.") except AttributeError as exc: msg = ( "Frequency, hessian and thermo calculations not " "performed to extract this property." ) raise AttributeError(msg) from exc
[docs] def get_frequencies(self) -> tuple[float, str]: try: return (self._extractor.frequencies, "wavenumber") except AttributeError as exc: msg = ( "Frequency, hessian and thermo calculations not " "performed to extract this property." ) raise AttributeError(msg) from exc
[docs] def get_ionisation_potential(self) -> tuple[float, str]: return (self._extractor.ionisation_potential, "eV")
[docs] def get_electron_affinity(self) -> tuple[float, str]: return (self._extractor.electron_affinity, "eV")
[docs] def get_total_sasa(self) -> tuple[float, str]: return (self._extractor.total_sasa, "A^2")