phonon_lifetime.system package#

System module.

class phonon_lifetime.system.System#

Bases: ABC

Represents a System of atoms.

abstractmethod as_pristine() PristineSystem#

Return a new System with no defects.

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

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

abstractmethod get_modes() NormalModes#

Get the normal modes of the system.

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

Mass of each atom in the system.

property n_atoms: int#

Number of atoms in the system.

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

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

abstract 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.

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

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

phonon_lifetime.system.get_atom_centres(system: System) ndarray[tuple[int, int], dtype[floating]]#

Get the centres of the atoms in the system.

phonon_lifetime.system.get_scaled_positions(system: System) ndarray[tuple[int, Literal[3]], dtype[floating]]#

Get the scaled positions of the atoms in the system.

This gives the fraction along each of the ith lattice vector of the supercell.

phonon_lifetime.system.get_supercell_cell(system: System) ndarray[tuple[int, int], dtype[floating]]#

Get the supercell lattice vectors.

supercell_cell[i] is the vector (x, y, z) for the i’th lattice vector of the supercell.