AlmaBTE  1.3
A solver of the space- and time-dependent Boltzmann transport equation for phonons
Steady_1d_simulator Class Reference

Class that helps run simulations of general 1D structures sandwiched between two thermal reservoirs, in the steady-state regime. More...

Public Member Functions

 Steady_1d_simulator (const std::string &filename, double T_ambient, boost::mpi::communicator comm_)
 Create an object based on the description contained in an XML file. More...
 
int get_nbins () const
 Return the number of real-space bins used in this calculation. More...
 
double get_Ttop () const
 Return the temperature at the top heat reservoir. More...
 
double get_Tbottom () const
 Return the temperature at the bottom heat reservoir. More...
 
std::string get_layerdescription () const
 Return a description of the layer structure. More...
 
double get_thickness () const
 Return the total thickness of the structure. More...
 
double get_jq () const
 Return the average heat flux per unit area computed in the last simulation. More...
 
std::size_t get_nsurfaces () const
 Return the number of surfaces at which heat flux is computed. More...
 
double get_surfacelocation (std::size_t nsurf) const
 Return the location where spectral flux is computed. More...
 
Eigen::ArrayXXd get_flux_at_surface (std::size_t isurf) const
 Return the computed heat flux density profile at a surface. More...
 
int get_nparticles () const
 Return the number of particles used for the whole simulation. More...
 
void processSegment (double zetastart, double zetastop, double duration, double w0, double sign, double mu, double sigma)
 Helper function for processing trajectories.
 
Eigen::MatrixXd run (double T0, int npartial, int Npartial)
 Perform simulation. More...
 
 Steady_1d_simulator (const std::string &filename, boost::mpi::communicator comm_)
 Create an object based on the description contained in an XML file. More...
 
int get_nbins () const
 Return the number of real-space bins used in this calculation. More...
 
double get_p0source () const
 Return the power density of the heat source. More...
 
double get_Tambient () const
 Return the ambient (heat sink) temperature. More...
 
std::string get_layerdescription () const
 Return a description of the layer structure. More...
 
double get_thickness () const
 Return the total thickness of the structure. More...
 
std::size_t get_nsurfaces () const
 Return the number of surfaces at which heat flux is computed. More...
 
double get_surfacelocation (std::size_t nsurf) const
 Return the location where spectral flux is computed. More...
 
Eigen::ArrayXXd get_flux_at_surface (std::size_t isurf) const
 Return the computed heat flux density profile at a surface. More...
 
int get_nparticles () const
 Return the number of particles used for the whole simulation. More...
 
void processSegment (double zetastart, double zetastop, double duration, double w0, double sign, double mu, double sigma)
 Helper function for processing trajectories.
 
void build_emission_lookup (emissionID my_ID)
 Helper function to prebuild the emission lookup map.
 
idx_pair diffuse_reemit (emissionID emID, int omega_idx)
 Helper function for particle reemission from diffusely scattering walls.
 
Eigen::MatrixXd run (int npartial, int Npartial)
 Function that runs the simulation.
 

Detailed Description

Class that helps run simulations of general 1D structures sandwiched between two thermal reservoirs, in the steady-state regime.

Class that helps run simulations of general 1D structures sandwiched between a top power source and bottom heat sink, in the steady-state regime.

Constructor & Destructor Documentation

◆ Steady_1d_simulator() [1/2]

Steady_1d_simulator::Steady_1d_simulator ( const std::string &  filename,
double  T_ambient,
boost::mpi::communicator  comm_ 
)
inline

Create an object based on the description contained in an XML file.

Parameters
[in]filename- path to the input XML file
[in,out]comm_- MPI communicator used to synchronize with other processes

◆ Steady_1d_simulator() [2/2]

Steady_1d_simulator::Steady_1d_simulator ( const std::string &  filename,
boost::mpi::communicator  comm_ 
)
inline

Create an object based on the description contained in an XML file.

Parameters
[in]filename- path to the input XML file
[in,out]comm_- MPI communicator used to synchronize with other processes

Member Function Documentation

◆ get_flux_at_surface() [1/2]

Eigen::ArrayXXd Steady_1d_simulator::get_flux_at_surface ( std::size_t  isurf) const
inline

Return the computed heat flux density profile at a surface.

Parameters
[in]isurf- a surface index
Returns
an array with two columns, one for angular frequencies [rad/ps] and one for flux densities [J/m^2/rad]

◆ get_flux_at_surface() [2/2]

Eigen::ArrayXXd Steady_1d_simulator::get_flux_at_surface ( std::size_t  isurf) const
inline

Return the computed heat flux density profile at a surface.

Parameters
[in]isurf- a surface index
Returns
an array with two columns, one for angular frequencies [rad/ps] and one for flux densities [J/m^2/rad]

◆ get_jq()

double Steady_1d_simulator::get_jq ( ) const
inline

Return the average heat flux per unit area computed in the last simulation.

◆ get_layerdescription() [1/2]

std::string Steady_1d_simulator::get_layerdescription ( ) const
inline

Return a description of the layer structure.

Returns
description

◆ get_layerdescription() [2/2]

std::string Steady_1d_simulator::get_layerdescription ( ) const
inline

Return a description of the layer structure.

Returns
description

◆ get_nbins() [1/2]

int Steady_1d_simulator::get_nbins ( ) const
inline

Return the number of real-space bins used in this calculation.

Returns
the number of ticks in the real-space grid minus one

◆ get_nbins() [2/2]

int Steady_1d_simulator::get_nbins ( ) const
inline

Return the number of real-space bins used in this calculation.

Returns
the number of ticks in the real-space grid minus one

◆ get_nparticles() [1/2]

int Steady_1d_simulator::get_nparticles ( ) const
inline

Return the number of particles used for the whole simulation.

Returns
number of particles

◆ get_nparticles() [2/2]

int Steady_1d_simulator::get_nparticles ( ) const
inline

Return the number of particles used for the whole simulation.

Returns
number of particles

◆ get_nsurfaces() [1/2]

std::size_t Steady_1d_simulator::get_nsurfaces ( ) const
inline

Return the number of surfaces at which heat flux is computed.

Returns
the number of surfaces defined in the input XML file

◆ get_nsurfaces() [2/2]

std::size_t Steady_1d_simulator::get_nsurfaces ( ) const
inline

Return the number of surfaces at which heat flux is computed.

Returns
the number of surfaces defined in the input XML file

◆ get_p0source()

double Steady_1d_simulator::get_p0source ( ) const
inline

Return the power density of the heat source.

Returns
the source density [W/m^2]

◆ get_surfacelocation() [1/2]

double Steady_1d_simulator::get_surfacelocation ( std::size_t  nsurf) const
inline

Return the location where spectral flux is computed.

Parameters
[in]isurf- a surface index
Returns
location of the surface

◆ get_surfacelocation() [2/2]

double Steady_1d_simulator::get_surfacelocation ( std::size_t  nsurf) const
inline

Return the location where spectral flux is computed.

Parameters
[in]isurf- a surface index
Returns
location of the surface

◆ get_Tambient()

double Steady_1d_simulator::get_Tambient ( ) const
inline

Return the ambient (heat sink) temperature.

Returns
Tambient [K]

◆ get_Tbottom()

double Steady_1d_simulator::get_Tbottom ( ) const
inline

Return the temperature at the bottom heat reservoir.

Returns
the temperature at the bottom of the structure [K]

◆ get_thickness() [1/2]

double Steady_1d_simulator::get_thickness ( ) const
inline

Return the total thickness of the structure.

Returns
the sum of all layer widths [nm]

◆ get_thickness() [2/2]

double Steady_1d_simulator::get_thickness ( ) const
inline

Return the total thickness of the structure.

Returns
the sum of all layer widths [nm]

◆ get_Ttop()

double Steady_1d_simulator::get_Ttop ( ) const
inline

Return the temperature at the top heat reservoir.

Returns
the temperature at the top of the structure [K]

◆ run()

Eigen::MatrixXd Steady_1d_simulator::run ( double  T0,
int  npartial,
int  Npartial 
)
inline

Perform simulation.

Parameters
[in]T0- equilibrium reference temperature [K]

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