phonon_lifetime.pristine package#

Pristine system and modes.

class phonon_lifetime.pristine.PristineMode(*, _system: PristineSystem, _omega: float, _primitive_vector: ndarray, _q_val: tuple[float, float, float])#

Bases: NormalMode[PristineSystem]

A normal mode of a pristine system.

property omega: float#

The frequency of the mode.

property primitive_vector: ndarray[tuple[int], dtype[complex128]]#

The primitive vector of the mode.

property system: PristineSystem#

The system that this normal mode belongs to.

property vector: ndarray[tuple[int, int], dtype[complex128]]#

The vector of the mode, an (n_atoms, 3) array.

class phonon_lifetime.pristine.PristineModes(*, _system: PristineSystem, _omega: ndarray[Any, dtype[floating]], _modes: ndarray[Any, dtype[floating]], _q_vals: ndarray[Any, dtype[floating]])#

Bases: NormalModes[PristineSystem]

Result of a normal mode calculation for a phonon system.

get_dispersion(branch: int) ndarray[Any, dtype[floating]]#

Get the dispersion for a given branch.

get_mode(branch: int, q: int | tuple[int, int, int]) PristineMode#

Select the normal mode for a given branch and q point.

property n_branch: int#

The number of branches in the calculation.

property n_q: int#

The number of q points in the calculation.

property omega: ndarray[tuple[int], dtype[floating]]#

A np.array of frequencies for each mode.

property q_vals: ndarray[Any, dtype[floating]]#

The q values for each mode, shape (n_q, 3).

property system: PristineSystem#

The system that this normal mode belongs to.

class phonon_lifetime.pristine.PristineSystem(*, mass: float, primitive_cell: ndarray[tuple[int, int], dtype[floating]], n_repeats: tuple[int, int, int], spring_constant: tuple[float, float, float])#

Bases: System

Represents a System of atoms.

as_pristine() PristineSystem#

Return a new System with no defects.

get_modes() PristineModes#

Get the normal modes of the system.

property mass: float#

Mass of each atom in the system.

property masses: ndarray[tuple[int], dtype[floating]]#

Mass of each atom in the system.

property n_repeats: tuple[int, int, int]#

Number of repeats of the primitive cell in each direction (nx, ny, nz).

property primitive_cell: ndarray[tuple[int, int], dtype[floating]]#

Primitive cell lattice vectors.

primitive_cell[i] is the vector (x, y, z) for the i’th lattice vector of the primitive cell.

property spring_constant: tuple[float, float, float]#

Spring constant for each direction (kx, ky, kz).

phonon_lifetime.pristine.plot_dispersion_1d(result: PristineModes, branch: int, idx: tuple[int, int] = (0, 0), *, ax: Axes | None = None) tuple[Figure, Axes, Line2D]#
phonon_lifetime.pristine.plot_dispersion_2d_xy(result: PristineModes, branch: int, idx: int = 0, *, ax: Axes | None = None) tuple[Figure, Axes, QuadMesh]#