Trait scattering::material::Material [] [src]

pub trait Material {
    fn energy(&self, p: &Vec2) -> f64;
    fn energy_gradient(&self, p: &Vec2) -> Vec2;
    fn velocity(&self, p: &Vec2) -> Vec2;
    fn min_energy(&self) -> f64;
    fn max_energy(&self) -> f64;
    fn momentums(&self, energy: f64, theta: f64) -> Vec<Vec2>;
    fn brillouin_zone(&self) -> &BrillouinZone;
    fn optical_energy(&self) -> f64;
    fn optical_scattering(&self, p: &Vec2) -> f64;
    fn acoustic_scattering(&self, p: &Vec2) -> f64;

    fn energy_polar(&self, p: f64, theta: f64) -> f64 { ... }
}

Required Methods

fn energy(&self, p: &Vec2) -> f64

Energy spectrum of electrons

fn energy_gradient(&self, p: &Vec2) -> Vec2

Gradient of energy in momentum space

fn velocity(&self, p: &Vec2) -> Vec2

fn min_energy(&self) -> f64

Minimum of energy in brillouin zone

fn max_energy(&self) -> f64

Maximum of energy in brillouin zone

fn momentums(&self, energy: f64, theta: f64) -> Vec<Vec2>

Solves equation energy_polar(p, theta) = energy

fn brillouin_zone(&self) -> &BrillouinZone

brillouin zone structure

fn optical_energy(&self) -> f64

optical phonon energy

fn optical_scattering(&self, p: &Vec2) -> f64

optical phonon scattering probability

fn acoustic_scattering(&self, p: &Vec2) -> f64

acoustic phonon scattering probability

Provided Methods

fn energy_polar(&self, p: f64, theta: f64) -> f64

Energy spectrum in polar coordinates

Implementors