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

Class representing the anharmonic (third-order) interaction between two atoms atoms. More...

#include <structures.hpp>

Public Member Functions

double & ifc (std::size_t alpha, std::size_t beta, std::size_t gamma)
 Access a particular ifc using three indexes. More...
 
const double & ifc (std::size_t alpha, std::size_t beta, std::size_t gamma) const
 Access a particular ifc using three indexes. More...
 
 Thirdorder_ifcs (const Eigen::VectorXd &_rj, const Eigen::VectorXd &_rk, std::size_t _i, std::size_t _j, std::size_t _k)
 Basic constructor. More...
 

Public Attributes

const Eigen::VectorXd rj
 Cartesian coordinates of the second unit cell.
 
const Eigen::VectorXd rk
 Cartesian coordinates of the third unit cell.
 
const std::size_t i
 Index of the first atom.
 
const std::size_t j
 Index of the second atom.
 
const std::size_t k
 Index of the third atom.
 

Detailed Description

Class representing the anharmonic (third-order) interaction between two atoms atoms.

Note that, since third-order IFCs tend to be expressed in sparse formats, it is more natural to store each tensor individually. There is no third-order equivalent to the Harmonic_ifcs class. Vectors of Thirdorder_ifcs can be used instead. The first atom, i, is always assumed to be part of the first unit cell, that is, R_i = {0., 0., 0.}.

Constructor & Destructor Documentation

◆ Thirdorder_ifcs()

alma::Thirdorder_ifcs::Thirdorder_ifcs ( const Eigen::VectorXd &  _rj,
const Eigen::VectorXd &  _rk,
std::size_t  _i,
std::size_t  _j,
std::size_t  _k 
)
inline

Basic constructor.

It does not initialize the ifcs member variable.

Member Function Documentation

◆ ifc() [1/2]

double& alma::Thirdorder_ifcs::ifc ( std::size_t  alpha,
std::size_t  beta,
std::size_t  gamma 
)
inline

Access a particular ifc using three indexes.

Note that all indices must be positive and lower than 3, but that this condition is not checked.

Parameters
[in]alpha- first axis index
[in]beta- second axis index
[in]gamma- third axis index
Returns
a mutable reference to the element

◆ ifc() [2/2]

const double& alma::Thirdorder_ifcs::ifc ( std::size_t  alpha,
std::size_t  beta,
std::size_t  gamma 
) const
inline

Access a particular ifc using three indexes.

Note that all indices must be positive and lower than 3, but that this condition is not checked.

Parameters
[in]alpha- first axis index
[in]beta- second axis index
[in]gamma- third axis index
Returns
a const reference to the element

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