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

#include <phonon.h>

Public Types

enum class  Polarization { LA , TA }
 
using RelaxRates = std::array< double, NUM_RELAX_RATES >
 

Public Member Functions

 Phonon (signed char sign, double lifetime, Cell *cell)
 
signed char getSign () const noexcept
 
std::pair< double, double > getPosition () const noexcept
 
std::pair< double, double > getVelVector () const noexcept
 
std::pair< double, double > getDirection () const noexcept
 
std::size_t getFreqIndex () const noexcept
 
double getFreq () const noexcept
 
Polarization getPolar () const noexcept
 
double getLifetime () const noexcept
 
std::size_t getLifeStep () const noexcept
 
bool outsideCell () const noexcept
 
void scatterUpdate (std::size_t freq_index, double freq, double velocity, Polarization polar) noexcept
 
void setPosition (double px, double py) noexcept
 
void setDirection (double dx, double dy) noexcept
 
void setCell (Cell *cell) noexcept
 
void setLifeStep (std::size_t step)
 
void scatterUpdate ()
 
void drift (double time) noexcept
 
void setRandDirection () noexcept
 
std::size_t getCellSensorID () const
 
std::size_t getCellMaterialID () const
 
double getCellHeatCapacityAtFreq (std::size_t index) const
 
RelaxRates getRelaxRates (std::size_t step) const
 
std::array< Geometry::Line, 3 > getCellBoundaryLines () const
 
void handleSurfaceCollision (const Geometry::Point &poi, double step_time)
 
void updateCellHeatParams (std::size_t step) const
 
void setRandPoint (double r1, double r2)
 

Static Public Attributes

static constexpr std::size_t NUM_RELAX_RATES = 3
 

Friends

std::ostream & operator<< (std::ostream &os, const Phonon &phonon)
 

Member Typedef Documentation

◆ RelaxRates

using Phonon::RelaxRates = std::array<double, NUM_RELAX_RATES>

Member Enumeration Documentation

◆ Polarization

enum Phonon::Polarization
strong
Enumerator
LA 
TA 

Constructor & Destructor Documentation

◆ Phonon()

Phonon::Phonon ( signed char  sign,
double  lifetime,
Cell cell 
)

Member Function Documentation

◆ drift()

void Phonon::drift ( double  time)
noexcept

◆ getCellBoundaryLines()

std::array< Geometry::Line, 3 > Phonon::getCellBoundaryLines ( ) const
Here is the call graph for this function:

◆ getCellHeatCapacityAtFreq()

double Phonon::getCellHeatCapacityAtFreq ( std::size_t  index) const
Here is the call graph for this function:

◆ getCellMaterialID()

std::size_t Phonon::getCellMaterialID ( ) const
Here is the call graph for this function:

◆ getCellSensorID()

std::size_t Phonon::getCellSensorID ( ) const
Here is the call graph for this function:

◆ getDirection()

std::pair<double, double> Phonon::getDirection ( ) const
inlinenoexcept

◆ getFreq()

double Phonon::getFreq ( ) const
inlinenoexcept

◆ getFreqIndex()

std::size_t Phonon::getFreqIndex ( ) const
inlinenoexcept

◆ getLifeStep()

std::size_t Phonon::getLifeStep ( ) const
inlinenoexcept

◆ getLifetime()

double Phonon::getLifetime ( ) const
inlinenoexcept

◆ getPolar()

Polarization Phonon::getPolar ( ) const
inlinenoexcept

◆ getPosition()

std::pair<double, double> Phonon::getPosition ( ) const
inlinenoexcept

◆ getRelaxRates()

Phonon::RelaxRates Phonon::getRelaxRates ( std::size_t  step) const
Here is the call graph for this function:

◆ getSign()

signed char Phonon::getSign ( ) const
inlinenoexcept

◆ getVelVector()

std::pair<double, double> Phonon::getVelVector ( ) const
inlinenoexcept

◆ handleSurfaceCollision()

void Phonon::handleSurfaceCollision ( const Geometry::Point poi,
double  step_time 
)
Here is the call graph for this function:

◆ outsideCell()

bool Phonon::outsideCell ( ) const
inlinenoexcept

◆ scatterUpdate() [1/2]

void Phonon::scatterUpdate ( )
Here is the call graph for this function:

◆ scatterUpdate() [2/2]

void Phonon::scatterUpdate ( std::size_t  freq_index,
double  freq,
double  velocity,
Phonon::Polarization  polar 
)
noexcept
Here is the caller graph for this function:

◆ setCell()

void Phonon::setCell ( Cell cell)
inlinenoexcept

◆ setDirection()

void Phonon::setDirection ( double  dx,
double  dy 
)
inlinenoexcept
Here is the caller graph for this function:

◆ setLifeStep()

void Phonon::setLifeStep ( std::size_t  step)
inline

◆ setPosition()

void Phonon::setPosition ( double  px,
double  py 
)
inlinenoexcept
Here is the caller graph for this function:

◆ setRandDirection()

void Phonon::setRandDirection ( )
noexcept
Here is the call graph for this function:

◆ setRandPoint()

void Phonon::setRandPoint ( double  r1,
double  r2 
)
Here is the call graph for this function:

◆ updateCellHeatParams()

void Phonon::updateCellHeatParams ( std::size_t  step) const
Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const Phonon phonon 
)
friend

Member Data Documentation

◆ NUM_RELAX_RATES

constexpr std::size_t Phonon::NUM_RELAX_RATES = 3
staticconstexpr

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