AlmaBTE  1.3
A solver of the space- and time-dependent Boltzmann transport equation for phonons
processes.cpp File Reference

Definitions corresponding to processes.hpp. More...

#include <cmath>
#include <complex>
#include <constants.hpp>
#include <periodic_table.hpp>
#include <utilities.hpp>
#include <processes.hpp>
Include dependency graph for processes.cpp:

Functions

std::vector< Threeph_process > alma::find_allowed_threeph (const Gamma_grid &grid, const boost::mpi::communicator &communicator, double scalebroad=1.0)
 Look for allowed three-phonon processes in a regular grid. More...
 
Eigen::ArrayXXd alma::calc_w0_threeph (const alma::Gamma_grid &grid, std::vector< alma::Threeph_process > &processes, double T, const boost::mpi::communicator &comm)
 Compute and store the three-phonon contribution to the RTA scattering rates for all vibrational modes on a grid. More...
 
Eigen::ArrayXXd alma::calc_w0_threeph (const alma::Gamma_grid &grid, std::vector< alma::Threeph_process > &processes, double T, std::function< bool(const Threeph_process &)> filter, const boost::mpi::communicator &comm)
 Compute and store the three-phonon contribution to the RTA scattering rates for all vibrational modes on a grid. More...
 

Detailed Description

Definitions corresponding to processes.hpp.

Function Documentation

◆ calc_w0_threeph() [1/2]

Eigen::ArrayXXd alma::calc_w0_threeph ( const alma::Gamma_grid grid,
std::vector< alma::Threeph_process > &  processes,
double  T,
const boost::mpi::communicator &  comm 
)

Compute and store the three-phonon contribution to the RTA scattering rates for all vibrational modes on a grid.

Parameters
[in]grid- phonon spectrum on a regular grid
[in]processes- a vector of allowed three-phonon processes
[in]T- the temperature in K
[in]comm- an mpi communicator

◆ calc_w0_threeph() [2/2]

Eigen::ArrayXXd alma::calc_w0_threeph ( const alma::Gamma_grid grid,
std::vector< alma::Threeph_process > &  processes,
double  T,
std::function< bool(const Threeph_process &)>  filter,
const boost::mpi::communicator &  comm 
)

Compute and store the three-phonon contribution to the RTA scattering rates for all vibrational modes on a grid.

Take into account only those processes fullfilling a criterion.

Parameters
[in]grid- phonon spectrum on a regular grid
[in]processes- a vector of allowed three-phonon processes
[in]T- the temperature in K
[in]filter- boolean function returning true if a process must be taken into account
[in]comm- an mpi communicator

◆ find_allowed_threeph()

std::vector< Threeph_process > alma::find_allowed_threeph ( const Gamma_grid grid,
const boost::mpi::communicator &  communicator,
double  scalebroad = 1.0 
)

Look for allowed three-phonon processes in a regular grid.

Iterate over part of the irreducible q points in the grid (trying to evenly split the equivalence classes over processes) and look for allowed three-phonon processes involving one phonon from that part and two other phonons from anywhere in the grid.

Parameters
[in]grid- a regular grid containing Gamma
[in]communicator- MPI communicator to use
[in]scalebroad- factor modulating all the broadenings
Returns
a vector of Threeph_process objects