#include <kpoint_stencil.hpp>
Public Member Functions | |
| const Vector3D & | b_vector (int direction) const |
| The b-vector of a direction, in whatever units the shells were solved in. | |
| const std::vector< Vector3D > & | b_vectors () const |
| const std::array< int, 3 > & | grid_dimensions () const |
| const IntegerVector3D & | grid_step (int direction) const |
| bool | has_b_vectors () const |
| bool | has_grid_steps () const |
| Whether the stencil was built from a grid, so its directions carry integer steps. | |
| int | neighbor (int kpoint, int direction) const |
| The k-point that k + b lands on. | |
| int | number_of_directions () const |
| int | number_of_kpoints () const |
| Real | total_weight () const |
| std::optional< int > | two_point_axis_direction () const |
| Real | weight (int direction) const |
| const std::vector< Real > & | weights () const |
Static Public Member Functions | |
| static KPointStencil | from_grid (const std::array< int, 3 > &grid_dimensions, const std::vector< KPointNeighborDirection > &directions) |
| From a full grid and its neighbour shells: k + b resolved for every k and every direction. | |
| static KPointStencil | from_table (std::vector< std::vector< int > > neighbor_table, std::vector< Real > weights, std::vector< Vector3D > b_vectors={}) |
Definition at line 36 of file kpoint_stencil.hpp.
|
inline |
The b-vector of a direction, in whatever units the shells were solved in.
Definition at line 86 of file kpoint_stencil.hpp.
Referenced by q3::SpreadFunctional::evaluate(), and q3::SpreadFunctional::gradient().
|
inline |
Definition at line 90 of file kpoint_stencil.hpp.
|
inlinestatic |
From a full grid and its neighbour shells: k + b resolved for every k and every direction.
Definition at line 40 of file kpoint_stencil.hpp.
References grid_dimensions().
Referenced by q3::WannierConstructionInputs::WannierConstructionInputs().
|
inlinestatic |
From an explicit table – one row of neighbour indices per k-point, one entry per direction – and the weights; b-vectors may be omitted.
Definition at line 49 of file kpoint_stencil.hpp.
|
inline |
Definition at line 106 of file kpoint_stencil.hpp.
Referenced by from_grid().
|
inline |
Definition at line 99 of file kpoint_stencil.hpp.
References has_grid_steps().
Referenced by q3::MaximallyLocalizedGaugeChoice::require_supported().
|
inline |
Definition at line 82 of file kpoint_stencil.hpp.
Referenced by q3::SpreadFunctional::SpreadFunctional().
|
inline |
Whether the stencil was built from a grid, so its directions carry integer steps.
Definition at line 96 of file kpoint_stencil.hpp.
Referenced by grid_step().
|
inline |
The k-point that k + b lands on.
Definition at line 63 of file kpoint_stencil.hpp.
Referenced by q3::BlochOverlaps::restricted_to(), and q3::BlochOverlaps::transformed_by().
|
inline |
Definition at line 58 of file kpoint_stencil.hpp.
Referenced by q3::SpreadFunctional::evaluate(), and q3::SpreadFunctional::gradient().
|
inline |
Definition at line 55 of file kpoint_stencil.hpp.
Referenced by q3::SubspaceDisentangler::SubspaceDisentangler(), q3::SpreadFunctional::evaluate(), q3::SpreadFunctional::gradient(), and q3::SubspaceDisentangler::run().
|
inline |
Definition at line 74 of file kpoint_stencil.hpp.
References weight().
Referenced by q3::SpreadMinimizer::run().
|
inline |
The first direction whose step reaches the same k-point as its opposite, if there is one. A Wannier centre is a finite-difference Berry phase, and it needs b and -b to be different k-points. On an axis with two grid points they are the SAME point: k+b and k-b coincide, so the two directions carry one shared overlap block and two opposite b-vectors, and the terms [Im ln M_nn + b . r_n]^2 they contribute cannot both be small whatever r_n is. Omega_D is then bounded away from zero by the mesh rather than by the physics, and the centres along that axis are noise. Only a stencil built from a grid knows its steps; one built from a table has no answer to give.
Definition at line 122 of file kpoint_stencil.hpp.
References q3::KPointNeighborShells::neighbor_kpoint_index(), q3::IntegerVector3D::x, q3::IntegerVector3D::y, and q3::IntegerVector3D::z.
|
inline |
Definition at line 68 of file kpoint_stencil.hpp.
Referenced by q3::SpreadFunctional::evaluate(), q3::SpreadFunctional::gradient(), and total_weight().
|
inline |
Definition at line 71 of file kpoint_stencil.hpp.