phonon_lifetime.system package#
System module.
- class phonon_lifetime.system.RepeatSystem(system: System, n_repeats: tuple[int, int, int])#
Bases:
SystemA system that repeats another system.
- as_pristine() PristineSystem#
Return a new System with no defects.
- get_mode(idx: int) NormalMode[__annotationlib_name_1__]#
Get the normal mode for a given index.
- get_modes() NormalModes[__annotationlib_name_1__]#
Get the normal modes of the system.
- property masses: ndarray[tuple[int], dtype[floating]]#
Mass of every atom in the system.
- property n_primitive_atoms: int#
Number of atoms in the primitive cell.
- property n_repeats: tuple[int, int, int]#
Number of repeats of the primitive cell in each direction (nx, ny, nz).
- property primitive_atom_fractions: ndarray[tuple[int, int], dtype[floating]]#
The positions of the atoms as a fraction of the primitive cell.
primitive_atom_positions[i] is the position (x, y, z) of the i’th atom in the primitive cell.
- 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 strain_tensor: ndarray[tuple[int, int, Literal[3], Literal[3]], dtype[float64]]#
Strain tensor matrix for the system.
strain_tensor[i, j, alpha, beta] is the force constant between the i’th and j’th atom in the system, for each pair of cartesian directions (alpha, beta).
- property symbols: list[str]#
Chemical symbol of every atom in the system.
- class phonon_lifetime.system.System#
Bases:
ABCRepresents a System of atoms.
- abstractmethod as_pristine() PristineSystem#
Return a new System with no defects.
- get_mode(idx: int) NormalMode[__annotationlib_name_1__]#
Get the normal mode for a given index.
- abstractmethod get_modes() NormalModes[__annotationlib_name_1__]#
Get the normal modes of the system.
- abstract property masses: ndarray[tuple[int], dtype[floating]]#
Mass of every atom in the system.
- property n_atoms: int#
Number of atoms in the system.
- abstract property n_primitive_atoms: int#
Number of atoms in the primitive cell.
- abstract property n_repeats: tuple[int, int, int]#
Number of repeats of the primitive cell in each direction (nx, ny, nz).
- abstract property primitive_atom_fractions: ndarray[tuple[int, int], dtype[floating]]#
The positions of the atoms as a fraction of the primitive cell.
primitive_atom_positions[i] is the position (x, y, z) of the i’th atom in the primitive cell.
- 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 strain_tensor: ndarray[tuple[int, int, Literal[3], Literal[3]], dtype[float64]]#
Strain tensor matrix for the system.
strain_tensor[i, j, alpha, beta] is the force constant between the i’th and j’th atom in the system, for each pair of cartesian directions (alpha, beta).
- abstract property symbols: list[str]#
Chemical symbol of every atom in the system.
- phonon_lifetime.system.as_ase_atoms(system: PristineSystem) Atoms#
- phonon_lifetime.system.as_primitive(system: System) PristineSystem#
- phonon_lifetime.system.get_atom_centres(system: System) np.ndarray[__annotationlib_name_1__, np.dtype[np.floating]]#
Get the centres of the atoms in the system.
- phonon_lifetime.system.get_atom_fractions(system: System) np.ndarray[__annotationlib_name_1__, np.dtype[np.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_atom_supercell_fractions(system: System) np.ndarray[__annotationlib_name_1__, np.dtype[np.floating]]#
Get the positions of the atoms in the system in cartesian coordinates.
- phonon_lifetime.system.get_supercell_cell(system: System) np.ndarray[__annotationlib_name_1__, np.dtype[np.floating]]#
Get the supercell lattice vectors.
supercell_cell[i] is the vector (x, y, z) for the i’th lattice vector of the supercell.
- phonon_lifetime.system.plot_xy(system: System, displacement: ndarray[tuple[int, Literal[3]], dtype[floating]] | None = None, *, ax: Axes3D | None = None, bond_cutoff: float = inf, scale_bond_lines: bool = True) tuple[Figure, Axes3D, tuple[PathCollection, Line3DCollection]]#
- phonon_lifetime.system.plot_xyz(system: System, displacement: ndarray[tuple[int, Literal[3]], dtype[floating]] | None = None, *, ax: Axes3D | None = None, bond_cutoff: float = inf, scale_bond_lines: bool = True) tuple[Figure, Axes3D, tuple[PathCollection, Line3DCollection]]#
Submodules#
phonon_lifetime.system.build module#
- type phonon_lifetime.system.build.CubicStructure = Literal['simple', 'bcc', 'fcc']#
- phonon_lifetime.system.build.cubic(*, mass: float, n_repeats: tuple[int, int, int], structure: CubicStructure, distance: float = 1.0) PristineSystem#
Build a simple cubic system.
- phonon_lifetime.system.build.from_ase_atoms(atoms: Atoms, n_repeats: tuple[int, int, int]) PristineSystem#
Build a system from an ASE Atoms object.
- phonon_lifetime.system.build.from_primitive(*, mass: float, primitive_cell: np.ndarray[__annotationlib_name_1__, np.dtype[np.float64]], n_repeats: tuple[int, int, int]) PristineSystem#
Build a system with a primitive cell.
- phonon_lifetime.system.build.graphene(*, mass: float, n_repeats: tuple[int, int, Literal[1]], distance: float = 2.46) PristineSystem#
Build a graphene system.