TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
Lattice meshes

Detailed Description

Mesh types for Bravais lattices and Brillouin zones.

Topics

 k-vector expressions
 Lazy expressions for k-vectors.

Classes

class  triqs::mesh::brzone
 Brillouin zone mesh type. More...
class  triqs::mesh::cyclat
 Cyclic lattice mesh type for Bravais lattices with Born-von Karman periodic boundary conditions. More...

Functions

auto triqs::mesh::evaluate (brzone const &m, auto const &f, brzone::index_t const &n_tilde)
 Evaluate a function \( f \) defined on a triqs::mesh::brzone mesh at the given index \( \tilde{ \mathbf{n}} \).
template<typename V>
requires (std::ranges::contiguous_range<V> or nda::ArrayOfRank<V, 1> or is_k_expr<V>)
auto triqs::mesh::evaluate (brzone const &m, auto const &f, V const &k)
 Trilinear interpolation of a function \( f \) defined on a triqs::mesh::brzone mesh at a given \(\mathbf{k} \)-vector or expression.
auto triqs::mesh::evaluate (cyclat const &m, auto const &f, cyclat::index_t const &n_tilde)
 Evaluate a function \( f \) defined on a triqs::mesh::cyclat mesh at the given index \(\tilde{\mathbf{n}} \).
auto triqs::mesh::evaluate (cyclat const &m, auto const &f, cyclat::value_t const &r_n_tilde)
 Evaluate a function \( f \) defined on a triqs::mesh::cyclat mesh at the given lattice point \(\mathbf{R}^{\tilde{\mathbf{n}}} \).
cyclat triqs::mesh::make_adjoint_mesh (brzone const &m)
 Create the adjoint cyclic-lattice mesh to a given Brillouin-zone mesh.
brzone triqs::mesh::make_adjoint_mesh (cyclat const &m)
 Create the adjoint Brillouin-zone mesh to a given cyclic-lattice mesh.

Function Documentation

◆ evaluate() [1/4]

auto triqs::mesh::evaluate ( brzone const & m,
auto const & f,
brzone::index_t const & n_tilde )

#include <triqs/mesh/brzone.hpp>

Evaluate a function \( f \) defined on a triqs::mesh::brzone mesh at the given index \( \tilde{ \mathbf{n}} \).

The index is first mapped to the first BZ using triqs::mesh::brzone::index_modulo and then it is used to access the correct function value \( f_{\tilde{\mathbf{n}}} = f_{\mathbf{n}} \).

Parameters
mtriqs::mesh::brzone mesh.
fCallable object \( f \) containing the function values \( f_{\mathbf{n}} = f(\mathbf{k}^{\mathbf{n}}) \) at the mesh points.
n_tildeIndex \( \tilde{\mathbf{n}} \) at which to evaluate the function.
Returns
Function value \( f_{\mathbf{n}} \).

Definition at line 581 of file brzone.hpp.

◆ evaluate() [2/4]

template<typename V>
requires (std::ranges::contiguous_range<V> or nda::ArrayOfRank<V, 1> or is_k_expr<V>)
auto triqs::mesh::evaluate ( brzone const & m,
auto const & f,
V const & k )

#include <triqs/mesh/brzone.hpp>

Trilinear interpolation of a function \( f \) defined on a triqs::mesh::brzone mesh at a given \(\mathbf{k} \)-vector or expression.

It first maps the \( \mathbf{k} \)-vector back to the first BZ and then performs trilinear interpolation of the function \( f \) in the volume spanned by the \( \mathbf{k}^{\mathbf{n}} \)-points that enclose the mapped \( \mathbf{k} \)-vector.

Template Parameters
V\( \mathbf{k} \)-vector or expression type.
Parameters
mtriqs::mesh::brzone mesh.
fCallable object \( f \) containing the function values \( f_{\mathbf{n}} = f(\mathbf{k}^{\mathbf{n}}) \) at the mesh points.
k\( \mathbf{k} \)-vector or expression at which to evaluate the function.
Returns
Trilinear interpolation of \( f(\mathbf{k}) \).

Definition at line 600 of file brzone.hpp.

◆ evaluate() [3/4]

auto triqs::mesh::evaluate ( cyclat const & m,
auto const & f,
cyclat::index_t const & n_tilde )

#include <triqs/mesh/cyclat.hpp>

Evaluate a function \( f \) defined on a triqs::mesh::cyclat mesh at the given index \(\tilde{\mathbf{n}} \).

The index is first mapped to the supercell using triqs::mesh::cyclat::index_modulo and then it is used to access the correct function value \( f_{\tilde{\mathbf{n}}} = f_{\mathbf{n}} \).

Parameters
mtriqs::mesh::cyclat mesh.
fCallable object \( f \) containing the function values \( f_{\mathbf{n}} = f(\mathbf{R}^{\mathbf{n}}) \) at the mesh points.
n_tildeIndex \( \tilde{\mathbf{n}} \) at which to evaluate the function.
Returns
Function value \( f_{\mathbf{n}} \).

Definition at line 437 of file cyclat.hpp.

◆ evaluate() [4/4]

auto triqs::mesh::evaluate ( cyclat const & m,
auto const & f,
cyclat::value_t const & r_n_tilde )

#include <triqs/mesh/cyclat.hpp>

Evaluate a function \( f \) defined on a triqs::mesh::cyclat mesh at the given lattice point \(\mathbf{R}^{\tilde{\mathbf{n}}} \).

The index of the lattice point is first mapped to the supercell using triqs::mesh::cyclat::index_modulo and then it is used to access the correct function value \( f_{\tilde{\mathbf{n}}} = f_{\mathbf{n}} \).

Parameters
mtriqs::mesh::cyclat mesh.
fCallable object \( f \) containing the function values \( f_{\mathbf{n}} = f(\mathbf{R}^{\mathbf{n}}) \) at the mesh points.
r_n_tildeLattice point \( \mathbf{R}^{\tilde{\mathbf{n}}} \) at which to evaluate the function.
Returns
Function value \( f_{\mathbf{n}} \).

Definition at line 452 of file cyclat.hpp.

◆ make_adjoint_mesh() [1/2]

cyclat triqs::mesh::make_adjoint_mesh ( brzone const & m)
inlinenodiscard

#include <triqs/mesh/adjoint.hpp>

Create the adjoint cyclic-lattice mesh to a given Brillouin-zone mesh.

Parameters
mInput mesh.
Returns
Cyclic lattice mesh compatible with the given BZ mesh and its periodic boundary conditions.

Definition at line 157 of file adjoint.hpp.

◆ make_adjoint_mesh() [2/2]

brzone triqs::mesh::make_adjoint_mesh ( cyclat const & m)
inlinenodiscard

#include <triqs/mesh/adjoint.hpp>

Create the adjoint Brillouin-zone mesh to a given cyclic-lattice mesh.

Parameters
mInput mesh.
Returns
Brillouin zone mesh compatible with the given cyclic lattice mesh and its periodic boundary conditions.

Definition at line 148 of file adjoint.hpp.