pleiades.nuclear.isotopes.models module

This module provides models and enumerations for representing isotopic data, including isotope information, mass data, and associated nuclear data libraries. It is part of the PLEIADES project and is designed to facilitate the handling and processing of nuclear isotopic information. Classes: 1. FileCategory:

  • Enumeration of valid categories for isotopic files.

  • Includes a method to convert category enums to path strings.

  1. EndfLibrary:
    • Enumeration of supported nuclear data libraries (e.g., ENDF, JEFF, JENDL).

  2. IsotopeMassData:
    • A Pydantic model representing mass-related data for isotopes.

    • Includes attributes for atomic mass, mass uncertainty, binding energy, and beta decay energy.

  3. IsotopeInfo:
    • A Pydantic model representing detailed information about an isotope.

    • Includes attributes for name, atomic number, mass number, element symbol, atomic mass, abundance, spin, material number, and associated ENDF library.

    • Provides methods for creating an instance from a string and converting an instance to a string.

Usage:

This library is intended for use in nuclear isotope data processing for R-matrix applications where isotopes need to be represented, validated, and processed in a structured manner.

class pleiades.nuclear.isotopes.models.FileCategory(value)[source]

Bases: Enum

Enumeration of valid categories.

ISOTOPES = 1
classmethod to_path(category: FileCategory) str[source]

Convert category enum to path string.

class pleiades.nuclear.isotopes.models.IsotopeMassData(*, atomic_mass: float | None = None, mass_uncertainty: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])] | None = None, binding_energy: float | None = None, beta_decay_energy: float | None = None)[source]

Bases: BaseModel

model_config = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

atomic_mass: float | None
mass_uncertainty: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])] | None
binding_energy: float | None
beta_decay_energy: float | None
class pleiades.nuclear.isotopes.models.IsotopeInfo(*, name: str | None = None, mass_number: Annotated[int | None, Ge(ge=0)] = None, element: str | None = None, atomic_number: Annotated[int | None, Ge(ge=0)] = None, mass_data: IsotopeMassData | None = None, abundance: Annotated[float | None, Ge(ge=0)] = None, spin: float | None = None, material_number: int | None = None)[source]

Bases: BaseModel

A class to represent information about an isotope. Attributes: ———– name : str

The name of the isotope.

atomic_numberint

The atomic number of the isotope or number of protons (must be greater than 0).

mass_numberint

The mass number of the isotope or number of nuclei (must be greater than 0).

elementstr

The symbol of the element.

atomic_massfloat

The atomic mass of the isotope (must be greater than or equal to 0).

abundanceOptional[float]

The natural abundance of the isotope (must be greater than or equal to 0, default is None).

spinOptional[float]

The nuclear spin of the isotope (default is None).

Methods:

from_string(isotope_str: str) -> “IsotopeInfo”:

Class method to create an IsotopeInfo instance from a string in the format ‘element-mass_number’ or ‘mass_number-element’.

__str__() -> str:

Convert the IsotopeInfo instance to a string in the format ‘element-mass_number’.

name: str | None
mass_number: int | None
element: str | None
atomic_number: int | None
mass_data: IsotopeMassData | None
abundance: float | None
spin: float | None
material_number: int | None
classmethod from_string(isotope_str: str) IsotopeInfo[source]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].