Source code for mchammer._internal.atom

"""Atom class."""

from __future__ import annotations

from dataclasses import dataclass

from .radii import get_radius


[docs] @dataclass class Atom: """Atom. Parameters: id: ID to be assigned to atom. element_string: Atom element symbol as string. radius: Radius (Default is from STREUSSEL) in angstrom. sigma: Value of sigma for custom potentials. epsilon: Value of epsilon for custom potentials. charge: Value of atomic charge for custom potentials. """ id: int element_string: str radius: float | None = None sigma: float | None = None epsilon: float | None = None charge: float | None = None def __post_init__(self) -> None: """Post initialization of atom.""" if self.radius is None: self.radius = get_radius(self.element_string)
[docs] def get_id(self) -> int: """Get atom ID.""" return self.id
[docs] def get_element_string(self) -> str: """Get atom element symbol.""" return self.element_string
[docs] def get_radius(self) -> float | None: """Get atomic radius (STREUSEL).""" return self.radius
def __str__(self) -> str: """String representation of Atom.""" return repr(self) def __repr__(self) -> str: """String representation of Atom.""" return f"{self.get_element_string()}(id={self.get_id()})"