triqs.lattice.lattice_tools.BravaisLattice

class triqs.lattice.lattice_tools.BravaisLattice

Bases: object

A 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

n_orbitals

Get the number of atomic orbitals in the unit cell.

ndim

Get the number of dimensions of the Bravais lattice.

orbital_names

Get the list of orbital names.

orbital_positions

Get the list of atomic orbital positions \(\{\mathbf{r}_1, \dots, \mathbf{r}_m\}\).

units

Get the matrix \(\mathbf{A}^T\) containing basis vectors as its rows.

Methods

contains

Check if a given vector \(\mathbf{r}\) is part of the domain.

lattice_to_real_coordinates

Transform a vector \(\mathbf{v}\) from the lattice basis \(\{ \mathbf{a}_1, \dots, \mathbf{a}_d \}\)