psim  1.0
Generalized 2D phonon transport using a Monte Carlo method
Material Class Reference

#include <material.h>

Public Types

using Array = std::array< double, NUM_FREQ_BINS >
 
using Table = std::array< std::pair< double, double >, NUM_FREQ_BINS >
 
using Polar = Phonon::Polarization
 

Public Member Functions

 Material (std::size_t mat_id, const DispersionData &disp_data, const RelaxationData &relax_data)
 
void setFullSimulation () noexcept
 
std::size_t id () const noexcept
 
double max_freq_la () const noexcept
 
double max_freq_ta () const noexcept
 
Phonon::RelaxRates relaxRates (double temp, double freq, Polar polarization) const noexcept
 
Phonon::RelaxRates relaxRates (std::size_t freq_index, Polar polarization, double temp) const
 
const ArraygetFrequencies () const noexcept
 
double getFreq (std::size_t index) const noexcept
 
double getVel (std::size_t index, Polar polar) const noexcept
 
const TablebaseTable (double temp) const
 
double baseEnergy (double temp) const
 
const TableemitTable (double temp) const
 
double emitEnergy (double temp) const
 
const TablescatterTable (double temp) const
 
double scatterEnergy (double temp) const
 
double theoreticalEnergy (double temp, bool pseudo=false) const noexcept
 
void initializeTables (double low_temp, double high_temp, float temp_interval)
 

Static Public Member Functions

static std::pair< std::size_t, PolarfreqIndex (const Table &dist) noexcept
 

Static Public Attributes

static constexpr std::size_t NUM_FREQ_BINS = 1000
 

Member Typedef Documentation

◆ Array

using Material::Array = std::array<double, NUM_FREQ_BINS>

◆ Polar

◆ Table

using Material::Table = std::array<std::pair<double, double>, NUM_FREQ_BINS>

Constructor & Destructor Documentation

◆ Material()

Material::Material ( std::size_t  mat_id,
const DispersionData disp_data,
const RelaxationData relax_data 
)

Member Function Documentation

◆ baseEnergy()

double Material::baseEnergy ( double  temp) const
inline
Here is the caller graph for this function:

◆ baseTable()

const Table* Material::baseTable ( double  temp) const
inline
Here is the caller graph for this function:

◆ emitEnergy()

double Material::emitEnergy ( double  temp) const
inline

◆ emitTable()

const Table* Material::emitTable ( double  temp) const
inline
Here is the caller graph for this function:

◆ freqIndex()

std::pair< std::size_t, Polar > Material::freqIndex ( const Table dist)
staticnoexcept
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFreq()

double Material::getFreq ( std::size_t  index) const
noexcept
Here is the call graph for this function:

◆ getFrequencies()

const Array& Material::getFrequencies ( ) const
inlinenoexcept

◆ getVel()

double Material::getVel ( std::size_t  index,
Polar  polar 
) const
noexcept

◆ id()

std::size_t Material::id ( ) const
inlinenoexcept
Here is the caller graph for this function:

◆ initializeTables()

void Material::initializeTables ( double  low_temp,
double  high_temp,
float  temp_interval 
)

◆ max_freq_la()

double Material::max_freq_la ( ) const
inlinenoexcept

◆ max_freq_ta()

double Material::max_freq_ta ( ) const
inlinenoexcept

◆ relaxRates() [1/2]

Phonon::RelaxRates Material::relaxRates ( double  temp,
double  freq,
Polar  polarization 
) const
noexcept
Here is the caller graph for this function:

◆ relaxRates() [2/2]

Phonon::RelaxRates Material::relaxRates ( std::size_t  freq_index,
Polar  polarization,
double  temp 
) const

◆ scatterEnergy()

double Material::scatterEnergy ( double  temp) const
inline

◆ scatterTable()

const Table* Material::scatterTable ( double  temp) const
inline
Here is the caller graph for this function:

◆ setFullSimulation()

void Material::setFullSimulation ( )
inlinenoexcept

◆ theoreticalEnergy()

double Material::theoreticalEnergy ( double  temp,
bool  pseudo = false 
) const
noexcept

Member Data Documentation

◆ NUM_FREQ_BINS

constexpr std::size_t Material::NUM_FREQ_BINS = 1000
staticconstexpr

The documentation for this class was generated from the following files: