triqs.lattice.lattice_tools.BravaisLattice
- class triqs.lattice.lattice_tools.BravaisLattice
Bases:
objectA Bravais lattice class.
A Bravais lattice in \(d\) dimensions is defined by - a set of linear independent d-dimensional basis vectors \(\{ \mathbf{a}_1, \dots, \mathbf{a}_d \}\) and - the positions, \(\{ \mathbf{r}_1, \dots, \mathbf{r}_m \}\), of atomic orbitals within each unit cell.
Optionally, the atomic orbitals can be named.
The infinite lattice points \(\mathbf{R}^{\mathbf{n}}\) (see bravais_lattice::point_t) are generated by
\[\mathbf{R}^{\mathbf{n}} = \sum_{i=1}^{d} \mathbf{a}_i n_i = \mathbf{A} \mathbf{n} \; ,\]where \(\mathbf{n} = (n_1, \dots, n_d) \in \mathbb{Z}^d\) is an index vector (or more formally the vector \(\mathbf{R}^{\mathbf{n}}\) in the lattice basis) and \(\mathbf{A} = \big( \mathbf{a}_1 \cdots \mathbf{a}_d \big)\) is the matrix with the basis vectors as its columns.
Note
Although the supported dimensions are 1, 2 and 3, the index vectors are always 3-dimensional, i.e. \(\mathbf{n} = (n_1, n_2, n_3)\) . Indices \(n_j\) with \(j > d\) are simply ignored when computing the corresponding lattice vector.
Dispatched C++ constructor(s).
[1] () [2] (units: ndarray[float, 2], orbital_positions: [ndarray[float, 1]] = <unprintable>, atom_orb_name: [str] = <unprintable>)
[1] Construct a simple cubic lattice with lattice constant \(a = 1\).
The only atomic orbital is placed at the origin with no name.
[2] Construct a Bravais Lattice with given basis vectors and positions of atomic orbitals with optional names.
The matrix \(\mathbf{A}^T\) containing the basis vectors as its rows is required to be square. The number of dimensions of the Bravais lattices is determined by the size of the matrix.
- Parameters:
- unitsndarray[float, 2]
Matrix with the basis vectors \(\{ \mathbf{a}_1, \dots, \mathbf{a}_d \}\) as its rows.
- orbital_positions[ndarray[float, 1]]
Atomic orbital positions \(\{ \mathbf{r}_1, \dots, \mathbf{r}_m \}\) in the unit cell.
- atom_orb_name[str]
Optional names for the atomic orbitals.
Attributes
Get the number of atomic orbitals in the unit cell.
Get the number of dimensions of the Bravais lattice.
Get the list of orbital names.
Get the list of atomic orbital positions \(\{\mathbf{r}_1, \dots, \mathbf{r}_m\}\).
Get the matrix \(\mathbf{A}^T\) containing basis vectors as its rows.
Methods
Check if a given vector \(\mathbf{r}\) is part of the domain.
Transform a vector \(\mathbf{v}\) from the lattice basis \(\{ \mathbf{a}_1, \dots, \mathbf{a}_d \}\)