![]() |
AlmaBTE
1.3
A solver of the space- and time-dependent Boltzmann transport equation for phonons
|
Class for computing the approximate analytical RTA single pulse energy density response in real space at a given time. More...
#include <analytic1d.hpp>
Public Member Functions | |
SPR_calculator_RealSpace (const alma::Crystal_structure *poscar, const alma::Gamma_grid *grid, const Eigen::ArrayXXd *w, double T) | |
Constructor: initialise internal variables. | |
void | setDirection (const Eigen::Vector3d unitvector) |
Function setting the thermal transport axis. | |
void | setLinGrid (double xmin, double xmax, int Nx) |
Construct a linear space grid from xmin to xmax with Nx elements. | |
void | setLogGrid (double xmin, double xmax, int Nx) |
Construct a logarithmic space grid from xmin to xmax with Nx elements. | |
void | declareGridNormalised (bool norm) |
Declare whether the space grid is normalised. More... | |
void | normaliseOutput (bool norm) |
void | setTime (double t) |
Set time value to be used for calculations. | |
void | setLogMFPbins (double MFPmin, double MFPmax, int Nbins) |
Set MFP bins to be used for resolveSPRbyMFP() | |
Eigen::VectorXd | getGrid () |
Retrieve the spatial grid. | |
Eigen::VectorXd | getNormalisedGrid () |
double | getTime () |
Retrieve time value. | |
Eigen::VectorXd | getMFPbins () |
Retrieve MFP bins. | |
double | getDiffusivity () |
Retrieve Fourier diffusivity along thermal transport axis. | |
Eigen::VectorXd | getSourceTransient (const Eigen::Ref< Eigen::VectorXd > timegrid) |
Compute source transient P(x=0) at the provided times. | |
Eigen::VectorXd | getSPR () |
Compute SPR and retrieve it. | |
Eigen::MatrixXd | resolveSPRbyMFP () |
Compute SPR of individual modes resolved by MFP. | |
Class for computing the approximate analytical RTA single pulse energy density response in real space at a given time.
The approach is only valid in weakly quasiballistic regime (time scales exceeding phonon relaxation times) so that P(xi,t) exp[-psi(xi)*t].
Calculations are performed by evaluating the Fourier inversion (1/pi)*Integral(exp[-psi(xi)*t]*cos(xi*x),xi=0..infinity) semi-analytically with 2nd order Filon-type quadrature.
void alma::analytic1D::SPR_calculator_RealSpace::declareGridNormalised | ( | bool | norm | ) |
Declare whether the space grid is normalised.
If yes, space grid values are counted in Fourier diffusion lengths, i.e. x_actual = x_grid*sqrt(2*Dbulk*t)