Struct lattice3D¶
Defined in File lattice3D.hpp
Struct Documentation¶
-
struct lattice3D¶
used to represent the basis of a lattice
The use of a “working lattice” (e.g. Cartesian) is assumed throughout, and all vectors of the lattice object are expressed as integer combinations of this working basis. It is very similar to the basis3D class, except that its basis vectors have integer components
Public Functions
-
inline lattice3D()¶
-
lattice3D(vector<int64_t> _e)¶
-
void read(istream &fin)¶
reads the superlattice vectors from a stream and completes the initialization
- Parameters:
fin – input stream
-
void trivial()¶
Defines a default lattice in dimension D.
-
void init()¶
Completes the initialization of the basis.
-
std::pair<vector3D<int64_t>, vector3D<int64_t>> fold(const vector3D<int64_t> &r)¶
folds a position in the superlattice : r = R + S R belongs to the superlattice, and S is a remainder that belongs to the original lattice’s unit cell.
- Parameters:
r – [in] integer position, in the working basis
- Returns:
a pair (R, S) where R is the integer position in the superlattice and S the remainder in the unit cell, both in the working basis
-
void dual(basis3D &x)¶
constructs a basis3D, 2PI dual of the basis of the current superlattice
- Parameters:
x – reference to the basis to be constructed
Public Members
-
size_t D¶
dimension of the lattice (0, 1, 2 or 3)
-
int64_t vol¶
Volume of the unit cell (or equivalent measure in dimension D)
Friends
-
friend std::ostream &operator<<(std::ostream &flux, lattice3D &latt)
-
inline lattice3D()¶