#include <wigner_seitz_supercell.hpp>
Public Member Functions | |
| void | compute (const Matrix3x3 &lattice_vectors, int grid_dimension_x, int grid_dimension_y, int grid_dimension_z, Real distance_tolerance=1e-6) |
| const std::vector< WignerSeitzLatticeVector > & | lattice_vectors () const |
| int | number_of_lattice_vectors () const |
| Real | total_weight () const |
Definition at line 81 of file wigner_seitz_supercell.hpp.
|
inline |
Build the R set for a grid_dimension_x x ..._y x ..._z k-mesh.
lattice_vectors rows are the primitive real-space vectors a1, a2, a3; the supercell is grid_dimension_i * a_i.
distance_tolerance decides when two distances count as equal, i.e. when a point is on the boundary. It is relative to the shortest superlattice vector so it transfers across cell sizes.
The longest body diagonal of the superlattice parallelepiped. The sign of the first vector is fixed by inversion symmetry, so four diagonals cover all eight.
Candidate box: lattice vectors whose norm can be at most D/2. The bound is on the superlattice coefficient, so it scales by the grid dimension to become a bound on the lattice index.
Image box: every superlattice point that can be as close to some candidate as the origin is. The larger of the two bounds covers both the nearest-image argument and the tie argument.
Definition at line 93 of file wigner_seitz_supercell.hpp.
References q3::Matrix3x3::determinant(), q3::Matrix3x3::inverse(), lattice_vectors(), q3::Vector3D::norm(), q3::Vector3D::norm2(), and total_weight().
|
inline |
Definition at line 250 of file wigner_seitz_supercell.hpp.
Referenced by compute().
|
inline |
Definition at line 254 of file wigner_seitz_supercell.hpp.
|
inline |
Sum of 1/degeneracy over the retained set. For a correct Wigner-Seitz construction this equals the number of k-points exactly: each of the N_k cells of the supercell is covered once, with boundary points sharing their coverage. compute() refuses to return a set for which it does not hold; callers may still use it to check that a supercell was built for the mesh they are about to transform over.
Definition at line 266 of file wigner_seitz_supercell.hpp.
Referenced by compute().