phonon_simulation package#

A set of tools for phonon simulations.

phonon_simulation.PHONONS_ARE_COOL = True#

A statement about phonons.

Submodules#

phonon_simulation.normal_modes module#

class phonon_simulation.normal_modes.NormalModeResult(*, system: System, omega: ndarray[Any, dtype[floating]], modes: ndarray[Any, dtype[floating]], q_vals: ndarray[Any, dtype[floating]], dispersion: ndarray[Any, dtype[floating]])#

Bases: object

Result of a normal mode calculation for a phonon system.

dispersion: ndarray[Any, dtype[floating]]#
modes: ndarray[Any, dtype[floating]]#
omega: ndarray[Any, dtype[floating]]#
q_vals: ndarray[Any, dtype[floating]]#
system: System#
to_human_readable() str#

Convert the result to a text representation.

class phonon_simulation.normal_modes.System(*, lattice_constant: tuple[float, float, float], n_repeats: tuple[int, int, int], spring_constant: tuple[float, float, float], mass: float)#

Bases: object

Represents a lattice system used for phonon calculations.

lattice_constant: tuple[float, float, float]#
mass: float#
n_repeats: tuple[int, int, int]#
spring_constant: tuple[float, float, float]#
phonon_simulation.normal_modes.calculate_normal_modes(system: System) NormalModeResult#

Calculate and plot the normal modes and phonon dispersion relation for a simple 1D chain system.

This function returns a NormalModeResult containing the normal mode frequencies, eigenvectors (modes), wave vectors, and dispersion.

Parameters#

systemSystem

The physical system containing lattice constant, number of repeats, spring constants, and mass of particles.

phonon_simulation.normal_modes.plot_dispersion(modes: NormalModeResult) tuple[Figure, Axes]#

Plot the phonon dispersion relation for a 1D chain on a graph.