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

Factory of Dynamical_matrix objects. More...

#include <dynamical_matrix.hpp>

Public Member Functions

 Dynamical_matrix_builder (const Crystal_structure &_structure, const Symmetry_operations &syms, const Harmonic_ifcs &fcs)
 Constructor for nonpolar systems.
 
 Dynamical_matrix_builder (const Crystal_structure &_structure, const Symmetry_operations &syms, const Harmonic_ifcs &fcs, const Dielectric_parameters &born)
 Constructor for polar systems.
 
std::array< Eigen::MatrixXcd, 4 > build (const Eigen::Ref< const Eigen::Vector3d > &q) const
 Return the dynamical matrix and its derivatives at one point. More...
 
std::unique_ptr< Spectrum_at_pointget_spectrum (const Eigen::Ref< const Eigen::Vector3d > &q) const
 Call build() and use the return value to obtain the harmonic properties at one q point. More...
 
std::size_t get_nblocks () const
 Obtain the number of building blocks of unfolded, mass-reduced interatomic force constants used to build the dynamical matrix. More...
 
Eigen::MatrixXd get_block (std::size_t i) const
 Obtain a copy of one of the building blocks of the dynamical matrix. More...
 
Triple_int get_pos (std::size_t i) const
 Obtain the direct coordinates of the lattice point associated to a block. More...
 

Detailed Description

Factory of Dynamical_matrix objects.

Member Function Documentation

◆ build()

std::array< Eigen::MatrixXcd, 4 > alma::Dynamical_matrix_builder::build ( const Eigen::Ref< const Eigen::Vector3d > &  q) const

Return the dynamical matrix and its derivatives at one point.

Parameters
[in]q- the q point in Cartesian coordinates
Returns
an array containing the dynamical matrix and the three components of its gradient

◆ get_block()

Eigen::MatrixXd alma::Dynamical_matrix_builder::get_block ( std::size_t  i) const
inline

Obtain a copy of one of the building blocks of the dynamical matrix.

Parameters
[in]i- block index
Returns
a matrix containing a copy of the block

◆ get_nblocks()

std::size_t alma::Dynamical_matrix_builder::get_nblocks ( ) const
inline

Obtain the number of building blocks of unfolded, mass-reduced interatomic force constants used to build the dynamical matrix.

Returns
the number of such blocks

◆ get_pos()

Triple_int alma::Dynamical_matrix_builder::get_pos ( std::size_t  i) const
inline

Obtain the direct coordinates of the lattice point associated to a block.

Parameters
[in]i- block index
Returns
three integers identifying a lattice point.

◆ get_spectrum()

std::unique_ptr< Spectrum_at_point > alma::Dynamical_matrix_builder::get_spectrum ( const Eigen::Ref< const Eigen::Vector3d > &  q) const

Call build() and use the return value to obtain the harmonic properties at one q point.

Parameters
[in]q- the q point in Cartesian coordinates
Returns
a Spectrum_at_point object with all relevant information.

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