mirror of
https://github.com/triqs/dft_tools
synced 2024-11-01 03:33:50 +01:00
edd1ff4529
A first general restructuration of the doc according to the pattern [tour|tutorial|reference]. In the reference part, objects are documented per topic. In each topic, [definition|c++|python|hdf5] (not yet implemented)
75 lines
2.9 KiB
ReStructuredText
75 lines
2.9 KiB
ReStructuredText
The BravaisLattice and TightBinding classes: definitions and example
|
|
====================================================================
|
|
|
|
|
|
The following example is aimed at demonstrating the use of **TRIQS
|
|
Lattice tools**.
|
|
|
|
BravaisLattice
|
|
--------------
|
|
|
|
A ``BravaisLattice`` is constructed as
|
|
``BravaisLattice(units, orbital_positions )`` where
|
|
|
|
- ``units`` is the list the coordinates (given as triplets) of the
|
|
basis vectors :math:`\lbrace \mathbf{e}_i \rbrace _{i=1\dots d}`
|
|
(:math:`d` is the dimension)
|
|
- ``orbital_positions`` is a dictionary of the atoms forming the basis
|
|
of the Bravais Lattice: the key is the name of the atom/orbital, the
|
|
value is the triplet of its coordinates.
|
|
|
|
TightBinding
|
|
------------
|
|
|
|
A tight-binding lattice is defined by the relation:
|
|
|
|
.. math:: \mathbf{t}_k = \sum_{\mathbf{R}\in \mathrm{BL}} e^{i \mathbf{k}\cdot \mathbf{R}} \mathbf{t}_\mathbf{R}
|
|
|
|
where :math:`\mathbf{t}_i` is the matrix of the hoppings from a
|
|
reference unit cell (:math:`\mathbf{R}=O`\ ) to a unit cell indexed by
|
|
:math:`\mathbf{R}`\ . :math:`(\mathbf{t}_\mathbf{R})_{n,m}` is the
|
|
tight-binding integral between atom :math:`n` of site :math:`O` and atom
|
|
:math:`m` of site :math:`\mathbf{R}`\ , ie
|
|
|
|
.. math:: (\mathbf{t}_\mathbf{R})_{n,m} \equiv \int d^3\mathbf{r} \phi_n(\mathbf{r})^{*} V(\mathbf{r}) \phi_m(\mathbf{r}-\mathbf{R})
|
|
|
|
where :math:`\phi_n(\mathbf{r}-\mathbf{R})` is the Wannier orbital of
|
|
atom :math:`n` centered at site :math:`\mathbf{R}`\ . The corresponding
|
|
class in **Lattice Tools** is the ``TightBinding`` class. Its instances
|
|
are constructed as follows:
|
|
|
|
``TightBinding ( bravais_lattice, hopping_dictionary)`` where
|
|
|
|
- ``bravais_lattice`` is an instance of ``BravaisLattice``
|
|
- ``hopping_dictionary`` is a dictionary of the hoppings
|
|
:math:`\mathbf{t}_\mathbf{R}`\ , where the keys correspond to the
|
|
coordinates of :math:`\mathbf{R}` in the unitary basis
|
|
:math:`\lbrace \mathbf{e}_i \rbrace _{i=1\dots d}`\ , and the values
|
|
to the corresponding matrix: :math:`(\mathbf{t}_\mathbf{R})_{n,m}`
|
|
|
|
energies_on_bz_path
|
|
-------------------
|
|
|
|
The function ``energies_on_bz_path (TB, start, end, n_pts)`` returns a
|
|
:math:`n_{at} \times n_{pts}` matrix :math:`E` such that
|
|
|
|
``E[n,k]``:math:`= \epsilon_n(\mathbf{k})`
|
|
|
|
where ``k`` indexes the ``n_pts`` :math:`\mathbf{k}`\ -points of the
|
|
line joining ``start`` and ``end``, and :math:`\epsilon_n(k)` is the
|
|
:math:`n`\ th eigenvector of :math:`t_\mathbf{k}`\ .
|
|
|
|
Example
|
|
-------
|
|
|
|
The following example illustrates the usage of the above tools for the
|
|
case of a two-dimensional, square lattice with various unit cells. We
|
|
successively construct three Bravais lattices ``BL_1``, ``BL_2`` and
|
|
``BL_4`` with, respectively, 1, 2 and 4 atoms per unit cell, as well as
|
|
three tight-binding models with hopping dictionaries ``hop_1``,
|
|
``hop_2`` and ``hop_4``
|
|
|
|
.. plot:: reference/lattice_tools/ex2.py
|
|
:include-source:
|
|
:scale: 70
|