Template Class PolyhedronTrellis

Inheritance Relationships

Derived Type

Class Documentation

template<typename T, typename R>
class brille::PolyhedronTrellis

Subclassed by brille::BrillouinZoneTrellis3< T, R >

Public Types

using ind_t = brille::ind_t
using data_t = DualInterpolator<T, R>
using vert_t = bArray<double>

Public Functions

PolyhedronTrellis(const Polyhedron &polyhedron, const double max_volume, const bool always_triangulate = false)
PolyhedronTrellis()
ind_t expected_vertex_count() const
ind_t vertex_count() const
const vert_t &vertices(void) const
const vert_t &vertices(const bArray<double> &v)
vert_t cube_vertices(void) const
vert_t poly_vertices(void) const
std::vector<std::array<ind_t, 4>> vertices_per_tetrahedron(void) const
std::vector<std::pair<ind_t, double>> indices_weights(const bArray<double> &x) const
template<class S>
unsigned check_before_interpolating(const bArray<S> &x) const
std::tuple<brille::Array<T>, brille::Array<R>> interpolate_at(const bArray<double> &x) const
std::tuple<brille::Array<T>, brille::Array<R>> interpolate_at(const bArray<double> &x, const int threads) const
ind_t node_count()
std::array<ind_t, 3> size() const
std::array<ind_t, 3> span() const
std::array<ind_t, 3> node_subscript(const bArray<double> &p) const
template<class S>
ind_t node_index(const S &p) const
std::vector<ind_t> node_neighbours(const ind_t idx) const
const CubeNode &cube_node(const ind_t idx) const
const PolyNode &poly_node(const ind_t idx) const
std::string to_string(void) const
const data_t &data(void) const

Get a constant reference to the stored data.

template<typename ...A>
void replace_data(A... args)

Replace the data stored in the object.

template<typename ...A>
void replace_value_data(A... args)
template<typename ...A>
void replace_vector_data(A... args)
template<typename ...A>
void set_value_cost_info(A... args)
template<typename ...A>
void set_vector_cost_info(A... args)
size_t bytes_per_point() const

Return the number of bytes used per Q point.

template<template<class> class A>
brille::Array<double> debye_waller(const A<double> &Qpts, const std::vector<double> &Masses, const double t_K) const

Calculate the Debye-Waller factor for the provided Q points and ion masses.

void sort(void)
double total_node_volume() const