phonon_lifetime package#

An Example project.

class phonon_lifetime.StrainSystem(cell: C, strain: ndarray[tuple[int, int, Literal[3], Literal[3]], dtype[floating]], strain_repeats: tuple[int, int, int])#

Bases: Generic

Represents a system for phonon calculations.

property cell: C#

Get the cell of the system.

property strain: ndarray[tuple[int, int, Literal[3], Literal[3]], dtype[floating]]#

Get the strain of the system.

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

Get the strain repeats of the system.

Subpackages#

Submodules#

phonon_lifetime.lifetimes module#

phonon_lifetime.lifetimes.calculate_finite_time_rates(pristine: GammaPhonons, defects: GammaPhonons, *, t: float) ndarray[tuple[int], dtype[float64]]#

Calculate the finite-time decay rates of the pristine states after time t.

phonon_lifetime.lifetimes.calculate_survival_probabilities(pristine: GammaPhonons, defects: GammaPhonons, *, times: ndarray[tuple[int], dtype[float64]]) ndarray[tuple[int], dtype[float64]]#

Get the survival probability of each pristine state after a time t.

returns an array of shape (n_pristine, n_times) where each element is the probability that the pristine state has not decayed after time t.

phonon_lifetime.lifetimes.calculate_survival_probability(pristine: GammaPhonon, defects: GammaPhonons, *, times: ndarray[tuple[int], dtype[float64]]) ndarray[tuple[int], dtype[float64]]#

Get the survival probability of a pristine state after a time t.

returns an array of shape (n_times) where each element is the probability that the pristine state has not decayed after time t.

phonon_lifetime.lifetimes.get_first_order_scatter(pristine: GammaPhonons, defects: GammaPhonons) ndarray[tuple[int, int], dtype[complex128]]#

Calculate the first-order scattering matrix element <p_k|V|p_i>.

phonon_lifetime.lifetimes.get_state_overlap(pristine: GammaPhonon, defects: GammaPhonons) ndarray[tuple[int], dtype[complex128]]#

Calculate the overlap matrix S_ki = <d_k | p_i>.

phonon_lifetime.lifetimes.get_state_overlap_matrix(pristine: GammaPhonons, defects: GammaPhonons) ndarray[tuple[int, int], dtype[complex128]]#

Calculate the overlap matrix S_ki = <d_k | p_i>.

phonon_lifetime.lifetimes.plot_first_order_scatter(pristine: GammaPhonons, defects: GammaPhonons, pristine_idx: int, *, ax: Axes | None = None) tuple[Figure, Axes, Line2D]#

Plot the first-order scattering matrix element <p_k|V|p_i> against the defect frequencies.

for a pristine state |psi_i>, the first-order scattering with a defect mode k is given by $S_(omega_k)^i = |<bar{psi}_k|V|psi_i>|^2$ where omega_k is the frequency of the defect mode k.

phonon_lifetime.lifetimes.plot_first_order_scatter_against_qx(pristine: MeshPhonons, defects: GammaPhonons, pristine_idx: int, *, ax: Axes | None = None) tuple[Figure, Axes, Line2D]#

Plot the first-order scattering matrix element <p_k|V|p_i> against the pristine q.

for a pristine state |psi_i>, the first-order scattering with a defect mode k is given by $S_(omega_k)^i = |<bar{psi}_k|V|psi_i>|^2$ where omega_k is the frequency of the defect mode k.

phonon_lifetime.lifetimes.plot_overlap_weights(pristine: GammaPhonon, defects: GammaPhonons, *, ax: Axes | None = None) tuple[Figure, Axes, Line2D]#

Plot the overlap weights of a pristine state with the defect states against the defect frequencies.

for a pristine state |psi_i>, the overlap weight with a defect mode k is given by $W_(omega_k)^i = |<bar{psi}_k|psi_i>|^2$ where omega_k is the frequency of the defect mode k.

phonon_lifetime.lifetimes.plot_survival_probability(pristine: GammaPhonon, defects: GammaPhonons, times: ndarray[tuple[int], dtype[float64]], *, ax: Axes | None = None) tuple[Figure, Axes, Line2D]#

Plot the survival probabilities of the pristine states after time t.

phonon_lifetime.wannier module#

phonon_lifetime.wannier.plot_wannier_vector(phonons: GammaPhonons, idx: int = 0, *, ax: Axes | None = None) tuple[Figure, Axes]#

Plot the Wannier vectors of the system.