Phoebe developer's documentation  1.1.0
Phonon and Electron Boltzmann Equations
Particle Class Reference

Determines whether we are dealing with phonons or electrons. More...

#include <particle.h>

Public Member Functions

 Particle (int kind_)
 Constructor of Statistics. More...
 
double getPopulation (const double &energy, const double &temperature, const double &chemicalPotential=0.) const
 Returns either a Bose–Einstein or a Fermi–Dirac distribution, depending on the value of "statistics". More...
 
double getDndt (const double &energy, const double &temperature, const double &chemicalPotential=0., const bool &symmetrize=false) const
 Returns dn/dT, with T temperature, and n being either a Bose–Einstein or a Fermi–Dirac distribution, depending on the value of "statistics" NOTE: this is off by a factor of kB! dn/dT = n(n+/-1) * energy / kB T^2 Here, we are returning something which is (kB * T)^2 It might be good to change this, but it's used other places and this would require careful fixing. More...
 
double getDnde (const double &energy, const double &temperature, const double &chemicalPotential=0., const bool &symmetrize=false) const
 Returns dn/dE, with E the particle energy, and n being either a Bose or Fermi distribution, depending on the value of "statistics". More...
 
double getPopPopPm1 (const double &energy, const double &temperature, const double &chemicalPotential=0.) const
 Returns bose(bose+1) for bosons, fermi(1-fermi) for fermions. More...
 
bool isFermi () const
 Method to check if the particle is a fermion.
 
bool isBose () const
 Method to check if the particle is a boson.
 
bool isElectron () const
 Method to check if the particle is an electron.
 
bool isPhonon () const
 Method to check if the particle is a phonon.
 
int getParticleKind () const
 

Static Public Attributes

static const int electron = -1
 
static const int phonon = -2
 

Detailed Description

This class decides whether we are dealing with phonons or electrons. Additionally, it contains the functionality to compute equilibrium occupation numbers, i.e. Fermi-Dirac or Bose-Einstein distributions, their derivatives w.r.t. temperature or energy, and factors N(N+1) or F(1-F).

Statistics

Constructor & Destructor Documentation

◆ Particle()

Particle::Particle ( int  kind_)
explicit

Saves which kind of particle we are dealing with.

Parameters
statisticsan integer equal to Statistics::electron or Statistics::phonon.

Member Function Documentation

◆ getDnde()

double Particle::getDnde ( const double &  energy,
const double &  temperature,
const double &  chemicalPotential = 0.,
const bool &  symmetrize = false 
) const
Parameters
energyvalue of quasiparticle energy.
temperaturevalue of temperature.
chemicalPotential0 by default, set a value for electrons.
symmetrizefalse by default, if true rescales dndt by a factor 1/sqrt(f(1-f)) or 1/sqrt(n(1+n)). Used for the symmetrized BTE.
Returns
dndE: derivative wrt QP energy of the equilibrium distribution.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getDndt()

double Particle::getDndt ( const double &  energy,
const double &  temperature,
const double &  chemicalPotential = 0.,
const bool &  symmetrize = false 
) const
Parameters
energyvalue of quasiparticle energy.
temperaturevalue of temperature.
chemicalPotential0 by default, set a value for electrons.
symmetrizefalse by default, if true rescales dndt by a factor 1/sqrt(f(1-f)) or 1/sqrt(n(1+n)). Used for the symmetrized BTE.
Returns
dndT: derivative wrt temperature of the equilibrium distribution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPopPopPm1()

double Particle::getPopPopPm1 ( const double &  energy,
const double &  temperature,
const double &  chemicalPotential = 0. 
) const
Parameters
energyvalue of quasiparticle energy.
temperaturevalue of temperature.
chemicalPotential0 by default, set a value for electrons.
Returns
popPopPm1: bose(bose+1) for bosons, fermi(1-fermi) for fermions.
Here is the caller graph for this function:

◆ getPopulation()

double Particle::getPopulation ( const double &  energy,
const double &  temperature,
const double &  chemicalPotential = 0. 
) const
Parameters
energyvalue of quasiparticle energy.
temperaturevalue of temperature.
chemicalPotential0 by default, set a value for electrons.
Returns
n: either the Bose or Fermi population.
Here is the caller graph for this function: