![]() |
AlmaBTE
1.3
A solver of the space- and time-dependent Boltzmann transport equation for phonons
|
Detection and representation of allowed three-phonon processes. More...
#include <cstddef>#include <cmath>#include <array>#include <vector>#include <functional>#include <boost/mpi.hpp>#include <boost/math/distributions/normal.hpp>#include <boost/serialization/array.hpp>#include <structures.hpp>#include <qpoint_grid.hpp>

Go to the source code of this file.
Classes | |
| class | alma::Threeph_process |
| Representation of a three-phonon process. More... | |
Enumerations | |
| enum | alma::threeph_type { emission = -1, absorption = 1 } |
| Process type (emission or absorption). | |
Functions | |
| template<class Archive > | |
| void | boost::serialization::save_construct_data (Archive &ar, const alma::Threeph_process *t, const unsigned int file_version) |
| Overload required to serialize the const members of alma::Threeph_process. More... | |
| 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... | |
| template<class Archive > | |
| void | boost::serialization::load_construct_data (Archive &ar, alma::Threeph_process *t, const unsigned int file_version) |
| Overload required to deserialize the const members of alma::Threeph_process by calling the non-default constructor in place. More... | |
Detection and representation of allowed three-phonon processes.
| 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.
| [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 |
| 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.
| [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 |
| 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.
| [in] | grid | - a regular grid containing Gamma |
| [in] | communicator | - MPI communicator to use |
| [in] | scalebroad | - factor modulating all the broadenings |
|
inline |
Overload required to deserialize the const members of alma::Threeph_process by calling the non-default constructor in place.
See the boost::serialization documentation for details.
|
inline |
Overload required to serialize the const members of alma::Threeph_process.
See the boost::serialization documentation for details.